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")