Warning, /frameworks/extra-cmake-modules/find-modules/FindSharedMimeInfo.cmake is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2013-2014 Alex Merry <alex.merry@kdemail.net>
0002 # SPDX-FileCopyrightText: 2007 Pino Toscano <toscano.pino@tiscali.it>
0003 #
0004 # SPDX-License-Identifier: BSD-3-Clause
0005 
0006 #[=======================================================================[.rst:
0007 FindSharedMimeInfo
0008 ------------------
0009 
0010 Try to find the shared-mime-info package.
0011 
0012 This will define the following variables:
0013 
0014 ``SharedMimeInfo_FOUND``
0015     True if system has the shared-mime-info package
0016 ``UPDATE_MIME_DATABASE_EXECUTABLE``
0017     The update-mime-database executable
0018 
0019 and the following imported targets:
0020 
0021 ``SharedMimeInfo::UpdateMimeDatabase``
0022     The update-mime-database executable
0023 
0024 The follow macro is available::
0025 
0026   update_xdg_mimetypes(<path>)
0027 
0028 Updates the XDG mime database at install time (unless the ``$DESTDIR``
0029 environment variable is set, in which case it is up to package managers to
0030 perform this task).
0031 
0032 Since pre-1.0.0.
0033 #]=======================================================================]
0034 
0035 include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake)
0036 
0037 ecm_find_package_version_check(SharedMimeInfo)
0038 
0039 find_program (UPDATE_MIME_DATABASE_EXECUTABLE NAMES update-mime-database)
0040 
0041 if (UPDATE_MIME_DATABASE_EXECUTABLE)
0042     execute_process(
0043         COMMAND "${UPDATE_MIME_DATABASE_EXECUTABLE}" -v
0044         OUTPUT_VARIABLE _smiVersionRaw
0045         ERROR_VARIABLE _smiVersionRaw)
0046 
0047     string(REGEX REPLACE "update-mime-database \\([a-zA-Z\\-]+\\) ([0-9]\\.[0-9]+).*"
0048            "\\1" SharedMimeInfo_VERSION_STRING "${_smiVersionRaw}")
0049 endif()
0050 
0051 include(FindPackageHandleStandardArgs)
0052 find_package_handle_standard_args(SharedMimeInfo
0053     FOUND_VAR
0054         SharedMimeInfo_FOUND
0055     REQUIRED_VARS
0056         UPDATE_MIME_DATABASE_EXECUTABLE
0057     VERSION_VAR
0058         SharedMimeInfo_VERSION_STRING)
0059 
0060 if(SharedMimeInfo_FOUND AND NOT TARGET SharedMimeInfo::UpdateMimeDatabase)
0061     add_executable(SharedMimeInfo::UpdateMimeDatabase IMPORTED)
0062     set_target_properties(SharedMimeInfo::UpdateMimeDatabase PROPERTIES
0063         IMPORTED_LOCATION "${UPDATE_MIME_DATABASE_EXECUTABLE}"
0064     )
0065 endif()
0066 
0067 mark_as_advanced(UPDATE_MIME_DATABASE_EXECUTABLE)
0068 
0069 function(UPDATE_XDG_MIMETYPES _path)
0070     get_filename_component(_xdgmimeDir "${_path}" NAME)
0071     if("${_xdgmimeDir}" STREQUAL packages )
0072         get_filename_component(_xdgmimeDir "${_path}" PATH)
0073     else()
0074         set(_xdgmimeDir "${_path}")
0075     endif()
0076 
0077     # Note that targets and most variables are not available to install code
0078     install(CODE "
0079 set(DESTDIR_VALUE \"\$ENV{DESTDIR}\")
0080 if (NOT DESTDIR_VALUE)
0081     # under Windows relative paths are used, that's why it runs from CMAKE_INSTALL_PREFIX
0082     message(STATUS \"Updating MIME database at \${CMAKE_INSTALL_PREFIX}/${_xdgmimeDir}\")
0083     execute_process(COMMAND \"${UPDATE_MIME_DATABASE_EXECUTABLE}\" -n \"${_xdgmimeDir}\"
0084                     WORKING_DIRECTORY \"\${CMAKE_INSTALL_PREFIX}\")
0085 endif (NOT DESTDIR_VALUE)
0086 ")
0087 endfunction()
0088 
0089 include(FeatureSummary)
0090 set_package_properties(SharedMimeInfo PROPERTIES
0091     URL https://freedesktop.org/wiki/Software/shared-mime-info/
0092     DESCRIPTION "A database of common MIME types")