diff options
| author | Alex Merry <kde@randomguy3.me.uk> | 2014-02-14 13:22:35 +0000 | 
|---|---|---|
| committer | Alex Merry <kde@randomguy3.me.uk> | 2014-02-15 12:12:58 +0000 | 
| commit | 3d931552b72972adb0cefe79cc4d9586671d5224 (patch) | |
| tree | afd633b95d1f533fad790c25cf2297d10621f563 | |
| parent | 3e0832bcbdf88156cefdf640582f7f9f0abbd63a (diff) | |
| download | extra-cmake-modules-3d931552b72972adb0cefe79cc4d9586671d5224.tar.gz extra-cmake-modules-3d931552b72972adb0cefe79cc4d9586671d5224.tar.bz2 | |
Add a cleaned up version of FindSharedMimeInfo.cmake
This is used by many projects (including any that install any extra mime
info).
REVIEW: 115749
| -rw-r--r-- | attic/modules/FindSharedMimeInfo.cmake | 78 | ||||
| -rw-r--r-- | find-modules/FindSharedMimeInfo.cmake | 88 | 
2 files changed, 88 insertions, 78 deletions
| diff --git a/attic/modules/FindSharedMimeInfo.cmake b/attic/modules/FindSharedMimeInfo.cmake deleted file mode 100644 index 16e335d1..00000000 --- a/attic/modules/FindSharedMimeInfo.cmake +++ /dev/null @@ -1,78 +0,0 @@ -# - Try to find the shared-mime-info package -# -# Once done this will define -# -#  SHAREDMIMEINFO_FOUND - system has the shared-mime-info package -#  UPDATE_MIME_DATABASE_EXECUTABLE - the update-mime-database executable -# -# The minimum required version of SharedMimeInfo can be specified using the -# standard syntax, e.g. find_package(SharedMimeInfo 0.20) -# -# For backward compatiblity, the following two variables are also supported: -#  SHARED_MIME_INFO_FOUND - same as SHAREDMIMEINFO_FOUND -#  SHARED_MIME_INFO_MINIMUM_VERSION - set to the minimum version you need, default is 0.18. -#    When both are used, i.e. the version is set in the find_package() call and -#   SHARED_MIME_INFO_MINIMUM_VERSION is set, the version specified in the find_package() -#   call takes precedence. - - -# Copyright (c) 2007, Pino Toscano, <toscano.pino@tiscali.it> -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -# Support SHARED_MIME_INFO_MINIMUM_VERSION for compatibility: -if(NOT SharedMimeInfo_FIND_VERSION) -  set(SharedMimeInfo_FIND_VERSION "${SHARED_MIME_INFO_MINIMUM_VERSION}") -endif(NOT SharedMimeInfo_FIND_VERSION) - -# the minimum version of shared-mime-database we require -if(NOT SharedMimeInfo_FIND_VERSION) -  set(SharedMimeInfo_FIND_VERSION "0.18") -endif(NOT SharedMimeInfo_FIND_VERSION) - -find_program (UPDATE_MIME_DATABASE_EXECUTABLE NAMES update-mime-database) - -# Store the version number in the cache, so we don't have to search the next time again: -if (UPDATE_MIME_DATABASE_EXECUTABLE  AND NOT  SHAREDMIMEINFO_VERSION) - -    exec_program (${UPDATE_MIME_DATABASE_EXECUTABLE} ARGS -v RETURN_VALUE _null OUTPUT_VARIABLE _smiVersionRaw) - -    string(REGEX REPLACE "update-mime-database \\([a-zA-Z\\-]+\\) ([0-9]\\.[0-9]+).*" -           "\\1" smiVersion "${_smiVersionRaw}") - -    set(SHAREDMIMEINFO_VERSION "${smiVersion}" CACHE STRING "Version number of SharedMimeInfo" FORCE) -endif (UPDATE_MIME_DATABASE_EXECUTABLE  AND NOT  SHAREDMIMEINFO_VERSION) - -# Use the new FPHSA() syntax: -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SharedMimeInfo REQUIRED_VARS UPDATE_MIME_DATABASE_EXECUTABLE -                                                 VERSION_VAR SHAREDMIMEINFO_VERSION ) - -# For backward compatiblity: -set(SHARED_MIME_INFO_FOUND ${SHAREDMIMEINFO_FOUND} ) - -# This should go into MacroLogFeature/FeatureSummary: -#            message(FATAL_ERROR "Could NOT find shared-mime-info. See http://freedesktop.org/wiki/Software/shared-mime-info.") - - -mark_as_advanced(UPDATE_MIME_DATABASE_EXECUTABLE) - - -macro(UPDATE_XDG_MIMETYPES _path) -   get_filename_component(_xdgmimeDir "${_path}" NAME) -   if("${_xdgmimeDir}" STREQUAL packages ) -      get_filename_component(_xdgmimeDir "${_path}" PATH) -   else("${_xdgmimeDir}" STREQUAL packages ) -      set(_xdgmimeDir "${_path}") -   endif("${_xdgmimeDir}" STREQUAL packages ) - -   install(CODE " -set(DESTDIR_VALUE \"\$ENV{DESTDIR}\") -if (NOT DESTDIR_VALUE) -  # under Windows relative paths are used, that's why it runs from CMAKE_INSTALL_PREFIX -  execute_process(COMMAND ${UPDATE_MIME_DATABASE_EXECUTABLE} ${_xdgmimeDir} -                  WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}\") -endif (NOT DESTDIR_VALUE) -") -endmacro (UPDATE_XDG_MIMETYPES) diff --git a/find-modules/FindSharedMimeInfo.cmake b/find-modules/FindSharedMimeInfo.cmake new file mode 100644 index 00000000..8dc6f1c4 --- /dev/null +++ b/find-modules/FindSharedMimeInfo.cmake @@ -0,0 +1,88 @@ +# Try to find the shared-mime-info package +# +# This will define +# +#   SharedMimeInfo_FOUND            - True if system has the shared-mime-info package +#   UPDATE_MIME_DATABASE_EXECUTABLE - The update-mime-database executable +# +# In addition, the following targets are defined: +# +#   SharedMimeInfo::UpdateMimeDatabase +# +# The follow macro is available: +# +#     update_xdg_mimetypes(path) +# +# Updates the XDG mime database at install time (unless the DESTDIR environment +# variable is set, in which case it is up to package managers to perform this +# task). +# + + +# Copyright (c) 2007, Pino Toscano, <toscano.pino@tiscali.it> +# Copyright (c) 2013-2014, Alex Merry, <alex.merry@kdemail.net> +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if(CMAKE_VERSION VERSION_LESS 2.8.12) +    message(FATAL_ERROR "CMake 2.8.12 is required by FindSharedMimeInfo.cmake") +endif() +if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12) +    message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use FindSharedMimeInfo.cmake") +endif() + +find_program (UPDATE_MIME_DATABASE_EXECUTABLE NAMES update-mime-database) + +if (UPDATE_MIME_DATABASE_EXECUTABLE) +    execute_process( +        COMMAND "${UPDATE_MIME_DATABASE_EXECUTABLE}" -v +        OUTPUT_VARIABLE _smiVersionRaw +        ERROR_VARIABLE _smiVersionRaw) + +    string(REGEX REPLACE "update-mime-database \\([a-zA-Z\\-]+\\) ([0-9]\\.[0-9]+).*" +           "\\1" SharedMimeInfo_VERSION_STRING "${_smiVersionRaw}") +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(SharedMimeInfo +    FOUND_VAR +        SharedMimeInfo_FOUND +    REQUIRED_VARS +        UPDATE_MIME_DATABASE_EXECUTABLE +    VERSION_VAR +        SharedMimeInfo_VERSION_STRING) + +if(SharedMimeInfo_FOUND AND NOT TARGET SharedMimeInfo::UpdateMimeDatabase) +    add_executable(SharedMimeInfo::UpdateMimeDatabase IMPORTED) +    set_target_properties(SharedMimeInfo::UpdateMimeDatabase PROPERTIES +        IMPORTED_LOCATION "${UPDATE_MIME_DATABASE_EXECUTABLE}" +    ) +endif() + +mark_as_advanced(UPDATE_MIME_DATABASE_EXECUTABLE) + +function(UPDATE_XDG_MIMETYPES _path) +    get_filename_component(_xdgmimeDir "${_path}" NAME) +    if("${_xdgmimeDir}" STREQUAL packages ) +        get_filename_component(_xdgmimeDir "${_path}" PATH) +    else("${_xdgmimeDir}" STREQUAL packages ) +        set(_xdgmimeDir "${_path}") +    endif("${_xdgmimeDir}" STREQUAL packages ) + +    # Note that targets and most variables are not available to install code +    install(CODE " +set(DESTDIR_VALUE \"\$ENV{DESTDIR}\") +if (NOT DESTDIR_VALUE) +    # under Windows relative paths are used, that's why it runs from CMAKE_INSTALL_PREFIX +    message(STATUS \"Updating MIME database at \${CMAKE_INSTALL_PREFIX}/${_xdgmimeDir}\") +    execute_process(COMMAND \"${UPDATE_MIME_DATABASE_EXECUTABLE}\" \"${_xdgmimeDir}\" +                    WORKING_DIRECTORY \"\${CMAKE_INSTALL_PREFIX}\") +endif (NOT DESTDIR_VALUE) +") +endfunction() + +include(FeatureSummary) +set_package_properties(SharedMimeInfo PROPERTIES +    URL http://freedesktop.org/wiki/Software/shared-mime-info/ +    DESCRIPTION "A database of common MIME types") | 
