diff options
-rw-r--r-- | modules/FindSharedMimeInfo.cmake | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/modules/FindSharedMimeInfo.cmake b/modules/FindSharedMimeInfo.cmake index f8db49c9..fda55162 100644 --- a/modules/FindSharedMimeInfo.cmake +++ b/modules/FindSharedMimeInfo.cmake @@ -33,18 +33,21 @@ endif(NOT SharedMimeInfo_FIND_VERSION) find_program (UPDATE_MIME_DATABASE_EXECUTABLE NAMES update-mime-database) -if (UPDATE_MIME_DATABASE_EXECUTABLE) +# 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}") -endif (UPDATE_MIME_DATABASE_EXECUTABLE) + + set(SHAREDMIMEINFO_VERSION "${smiVersion}" CACHE STRING "Version number of SharedMimeInfo") +endif (UPDATE_MIME_DATABASE_EXECUTABLE AND NOT SHAREDMIMEINFO_VERSION) # Use the new FPHSA() syntax: include(FindPackageHandleStandardArgs.cmake) find_package_handle_standard_args(SharedMimeInfo REQUIRED_VARS UPDATE_MIME_DATABASE_EXECUTABLE - VERSION_VAR smiVersion ) + VERSION_VAR SHAREDMIMEINFO_VERSION ) # For backward compatiblity: set(SHARED_MIME_INFO_FOUND ${SHAREDMIMEINFO_FOUND} ) |