4dacf1488d
This way find_package(Qt5Svg 5.1.0) will require Qt5Core 5.1.0 or later, for example. Additionally, forward the EXACT keyword to find_package dependencies so that find_package(Qt5Svg 5.1.0 EXACT) will reject Qt5Core 5.2.0, for example. Change-Id: I302f5a3a683e6c36ef42f1e81c5f7e6258cf5624 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
201 lines
9.5 KiB
CMake
201 lines
9.5 KiB
CMake
|
|
if (CMAKE_VERSION VERSION_LESS 2.8.3)
|
|
message(FATAL_ERROR \"Qt 5 requires at least CMake version 2.8.3\")
|
|
endif()
|
|
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
|
|
!!ELSE
|
|
set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
|
|
!!ENDIF
|
|
|
|
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MAJOR "$$eval(QT.$${MODULE}.MAJOR_VERSION)")
|
|
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MINOR "$$eval(QT.$${MODULE}.MINOR_VERSION)")
|
|
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_PATCH "$$eval(QT.$${MODULE}.PATCH_VERSION)")
|
|
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)")
|
|
|
|
set(Qt5$${CMAKE_MODULE_NAME}_LIBRARIES Qt5::$${CMAKE_MODULE_NAME})
|
|
|
|
macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION)
|
|
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
|
|
|
|
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
|
|
\"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\"
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
\"IMPORTED_LOCATION_${Configuration}\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${LIB_LOCATION}\"
|
|
!!ELSE
|
|
\"IMPORTED_LOCATION_${Configuration}\" \"$${CMAKE_LIB_DIR}${LIB_LOCATION}\"
|
|
!!ENDIF
|
|
!!IF !isEmpty(CMAKE_LIB_SONAME)
|
|
\"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\"
|
|
!!ENDIF
|
|
)
|
|
!!IF !isEmpty(CMAKE_WINDOWS_BUILD)
|
|
if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\")
|
|
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
\"IMPORTED_IMPLIB_${Configuration}\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\"
|
|
!!ELSE
|
|
\"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\"
|
|
!!ENDIF
|
|
)
|
|
endif()
|
|
!!ENDIF
|
|
endmacro()
|
|
|
|
if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
|
|
|
|
!!IF !no_module_headers
|
|
!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
|
|
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
|
|
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
|
|
\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
|
|
\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
|
|
)
|
|
!!ELSE
|
|
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\")
|
|
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
|
|
\"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
|
|
\"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
|
|
)
|
|
!!ENDIF
|
|
!!ELSE
|
|
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS)
|
|
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
|
|
!!ENDIF
|
|
|
|
set(Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS -D$${MODULE_DEFINE})
|
|
set(Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS $${MODULE_DEFINE})
|
|
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES \"$${CMAKE_MODULE_DEPS}\")
|
|
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED)
|
|
if (Qt5$${CMAKE_MODULE_NAME}_FIND_REQUIRED)
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED REQUIRED)
|
|
endif()
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_QUIET)
|
|
if (Qt5$${CMAKE_MODULE_NAME}_FIND_QUIETLY)
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET QUIET)
|
|
endif()
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT)
|
|
if (Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT)
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT EXACT)
|
|
endif()
|
|
|
|
foreach(_module_dep ${_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES})
|
|
if (NOT Qt5${_module_dep}_FOUND)
|
|
find_package(Qt5${_module_dep}
|
|
${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING} ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT}
|
|
${_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET}
|
|
${_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED}
|
|
PATHS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}\" NO_DEFAULT_PATH
|
|
)
|
|
endif()
|
|
|
|
if (NOT Qt5${_module_dep}_FOUND)
|
|
set(Qt5$${CMAKE_MODULE_NAME}_FOUND False)
|
|
return()
|
|
endif()
|
|
|
|
list(APPEND Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${Qt5${_module_dep}_INCLUDE_DIRS}\")
|
|
list(APPEND Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}\")
|
|
list(APPEND Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS})
|
|
list(APPEND Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS})
|
|
list(APPEND Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS})
|
|
endforeach()
|
|
list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS)
|
|
list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
|
|
list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS)
|
|
list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS)
|
|
if (Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS)
|
|
list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS)
|
|
endif()
|
|
|
|
set(_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_QT5_MODULE_DEPS}\")
|
|
|
|
!!IF !isEmpty(CMAKE_STATIC_TYPE)
|
|
add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED)
|
|
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
|
|
!!ELSE
|
|
add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED)
|
|
!!ENDIF
|
|
!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
|
|
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1)
|
|
!!ENDIF
|
|
|
|
!!IF !isEmpty(CMAKE_RELEASE_TYPE)
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" )
|
|
!!ELSE
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
|
|
!!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
|
|
!!IF isEmpty(CMAKE_DEBUG_TYPE)
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
|
|
!!ELSE
|
|
if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" AND EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
!!ELSE
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
|
|
!!ELSE
|
|
if (EXISTS \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" AND EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
!!ENDIF
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" )
|
|
!!ELSE
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
endif()
|
|
!!ENDIF // CMAKE_DEBUG_TYPE
|
|
!!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD
|
|
|
|
!!ENDIF // CMAKE_RELEASE_TYPE
|
|
|
|
!!IF !isEmpty(CMAKE_DEBUG_TYPE)
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" )
|
|
!!ELSE
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
|
|
!!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
|
|
!!IF isEmpty(CMAKE_RELEASE_TYPE)
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
|
|
!!ELSE
|
|
if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" AND EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
!!ELSE
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
|
|
!!ELSE
|
|
if (EXISTS \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" AND EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
!!ENDIF
|
|
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" )
|
|
!!ELSE
|
|
_populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
|
|
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
|
|
endif()
|
|
!!ENDIF // CMAKE_RELEASE_TYPE
|
|
!!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD
|
|
|
|
!!ENDIF // CMAKE_DEBUG_TYPE
|
|
|
|
!!IF !isEmpty(CMAKE_MODULE_EXTRAS)
|
|
include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\")
|
|
!!ENDIF
|
|
|
|
!!IF !isEmpty(CMAKE_MODULE_MACROS)
|
|
include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake\")
|
|
!!ENDIF
|
|
|
|
endif()
|