77a03ebd8d
This way the target will be created and have its properties populated only one time. I tried wrapping the whole file in an 'include guard', but that broke the unit test in tests/auto/cmake/pass1 (and the qt5_use_module function), because the function causes the variables in the Config file to not exist outside of the scope (eg for include directories), and yet, Qt5${Module}_FOUND is still true even when the find_package was previously called in a function, so it is not found and processed again. The change in Qt5CoreConfigExtras.cmake does not need to be guarded as it is only ever included from Qt5CoreConfig. Change-Id: Iaa016563db5eb61294360ac9e003c9c923393d8c Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
169 lines
6.6 KiB
CMake
169 lines
6.6 KiB
CMake
|
|
get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
|
|
|
|
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})
|
|
|
|
!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
|
|
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\")
|
|
!!ELSE
|
|
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\")
|
|
!!ENDIF
|
|
|
|
string(TOUPPER "$${CMAKE_MODULE_NAME}" _CMAKE_MODULE_NAME_UPPER)
|
|
set(Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS -DQT_\${_CMAKE_MODULE_NAME_UPPER}_LIB)
|
|
set(Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS QT_\${_CMAKE_MODULE_NAME_UPPER}_LIB)
|
|
|
|
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()
|
|
|
|
foreach(_module_dep ${_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES})
|
|
if (NOT Qt5${_module_dep}_FOUND)
|
|
find_package(Qt5${_module_dep}
|
|
${_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}_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}_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)
|
|
# For static builds, we also list the dependencies of
|
|
# Qt so that consumers can build.
|
|
|
|
!!IF isEqual(CMAKE_MODULE_NAME, Core)
|
|
|
|
set(_Qt5Core_LIB_DEPENDENCIES)
|
|
!!IF contains(QT_CONFIG, system-zlib)
|
|
find_package(ZLIB REQUIRED)
|
|
list(APPEND _Qt5Core_LIB_DEPENDENCIES ${ZLIB_LIBRARIES})
|
|
!!ENDIF
|
|
|
|
!!IF contains(QT_CONFIG, glib)
|
|
find_library(QT_GLIB_LIBRARY NAMES glib-2.0 )
|
|
find_library(QT_GTHREAD_LIBRARY NAMES gthread-2.0 )
|
|
mark_as_advanced(QT_GLIB_LIBRARY)
|
|
mark_as_advanced(QT_GTHREAD_LIBRARY)
|
|
list(APPEND _Qt5Core_LIB_DEPENDENCIES ${QT_GTHREAD_LIBRARY} ${QT_GLIB_LIBRARY})
|
|
!!ENDIF
|
|
|
|
!!IF contains(QT_CONFIG, clock-monotonic)
|
|
find_library(QT_RT_LIBRARY NAMES rt)
|
|
mark_as_advanced(QT_RT_LIBRARY)
|
|
list(APPEND _Qt5Core_LIB_DEPENDENCIES ${QT_RT_LIBRARY})
|
|
!!ENDIF
|
|
|
|
set(CMAKE_THREAD_PREFER_PTHREADS 1)
|
|
find_package(Threads)
|
|
if(CMAKE_USE_PTHREADS_INIT)
|
|
list(APPEND _Qt5Core_LIB_DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS})
|
|
endif()
|
|
|
|
!!ENDIF # Core
|
|
|
|
!!IF isEqual(CMAKE_MODULE_NAME, Gui)
|
|
|
|
set(_Qt5Gui_LIB_DEPENDENCIES)
|
|
|
|
!!IF contains(QT_CONFIG, system-png)
|
|
find_package(PNG REQUIRED)
|
|
list(APPEND _Qt5Gui_LIB_DEPENDENCIES ${PNG_LIBRARIES})
|
|
!!ENDIF
|
|
|
|
!!IF contains(QT_CONFIG, system-jpeg)
|
|
find_package(JPEG REQUIRED)
|
|
list(APPEND _Qt5Gui_LIB_DEPENDENCIES ${JPEG_LIBRARIES})
|
|
!!ENDIF
|
|
|
|
!!ENDIF # Gui
|
|
|
|
!!ENDIF # Static
|
|
|
|
if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
|
|
!!IF !isEmpty(CMAKE_STATIC_TYPE)
|
|
add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED)
|
|
!!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_DEBUG_TYPE)
|
|
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
|
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
|
|
IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\"
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
IMPORTED_LOCATION_DEBUG \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
|
|
!!ELSE
|
|
IMPORTED_LOCATION_DEBUG \"$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
|
|
!!ENDIF
|
|
)
|
|
!!IF !isEmpty(CMAKE_IMPLIB_FILE_LOCATION_DEBUG)
|
|
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
|
|
IMPORTED_IMPLIB_DEBUG \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\"
|
|
)
|
|
!!ENDIF
|
|
!!ENDIF
|
|
|
|
!!IF !isEmpty(CMAKE_RELEASE_TYPE)
|
|
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
|
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
|
|
IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\"
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
IMPORTED_LOCATION_RELEASE \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
|
|
!!ELSE
|
|
IMPORTED_LOCATION_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
|
|
!!ENDIF
|
|
)
|
|
!!IF !isEmpty(CMAKE_IMPLIB_FILE_LOCATION_RELEASE)
|
|
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
|
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
|
IMPORTED_IMPLIB_RELEASE \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\"
|
|
!!ELSE
|
|
IMPORTED_IMPLIB_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\"
|
|
!!ENDIF
|
|
)
|
|
!!ENDIF
|
|
!!ENDIF
|
|
|
|
endif()
|
|
|
|
!!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
|