summaryrefslogtreecommitdiffstats
path: root/src/corelib/Qt5CoreConfigExtras.cmake.in
diff options
context:
space:
mode:
authorKevin Funk <kevin.funk@kdab.com>2019-02-12 12:21:56 +0100
committerKevin Funk <kevin.funk@kdab.com>2019-02-12 13:37:08 +0000
commit988162eaf8b2aeae61f820382021116bf4ee391d (patch)
treef2792622ac2ae52527d2801d1784be419f33be8f /src/corelib/Qt5CoreConfigExtras.cmake.in
parent05aeaed906cbec3654178d1438ae2ad361a35ddd (diff)
cmake: Start to use ConfigExtra.cmake files
Enables the use of e.g. QT_NO_DEBUG in compiler flags, -fPIC, passing on of QT_NAMESPACE, etc. pp. Dropping a lot of custom code which handled adding imported targets for the command-line tools (this is all being handled by CMake already). It needs to be investigated if we need to resurrect Qt5GuiConfigExtras.cmake.in in one way or the other. Change-Id: I4fa141b68fddaad4f33e628c59d5d0b3a7b3a096 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/corelib/Qt5CoreConfigExtras.cmake.in')
-rw-r--r--src/corelib/Qt5CoreConfigExtras.cmake.in177
1 files changed, 18 insertions, 159 deletions
diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
index e0652fdcf9..3775fc64b9 100644
--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
@@ -1,75 +1,18 @@
-
-if (NOT TARGET Qt5::qmake)
- add_executable(Qt5::qmake IMPORTED)
-
-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
-!!ELSE
- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
-!!ENDIF
- _qt5_Core_check_file_exists(${imported_location})
-
- set_target_properties(Qt5::qmake PROPERTIES
- IMPORTED_LOCATION ${imported_location}
- )
-endif()
-
-if (NOT TARGET Qt5::moc)
- add_executable(Qt5::moc IMPORTED)
-
-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
-!!ELSE
- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
-!!ENDIF
- _qt5_Core_check_file_exists(${imported_location})
-
- set_target_properties(Qt5::moc PROPERTIES
- IMPORTED_LOCATION ${imported_location}
- )
- # For CMake automoc feature
- get_target_property(QT_MOC_EXECUTABLE Qt5::moc LOCATION)
-endif()
-
-if (NOT TARGET Qt5::rcc)
- add_executable(Qt5::rcc IMPORTED)
-
-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
-!!ELSE
- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
-!!ENDIF
- _qt5_Core_check_file_exists(${imported_location})
-
- set_target_properties(Qt5::rcc PROPERTIES
- IMPORTED_LOCATION ${imported_location}
- )
-endif()
-
-set(Qt5Core_QMAKE_EXECUTABLE Qt5::qmake)
-set(Qt5Core_MOC_EXECUTABLE Qt5::moc)
-set(Qt5Core_RCC_EXECUTABLE Qt5::rcc)
-
-set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_MAJOR_VERSION 5)
-set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_COORD_TYPE $$QT_COORD_TYPE)
-set_property(TARGET Qt5::Core APPEND PROPERTY
+set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core PROPERTY INTERFACE_QT_MAJOR_VERSION @PROJECT_MAJOR_VERSION@)
+set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core PROPERTY INTERFACE_QT_COORD_TYPE $$QT_COORD_TYPE)
+set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core APPEND PROPERTY
COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION QT_COORD_TYPE
)
-include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5CoreConfigExtrasMkspecDir.cmake\")
+# include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5CoreConfigExtrasMkspecDir.cmake\")
+#
+# foreach(_dir ${_qt5_corelib_extra_includes})
+# _qt5_Core_check_file_exists(${_dir})
+# endforeach()
-foreach(_dir ${_qt5_corelib_extra_includes})
- _qt5_Core_check_file_exists(${_dir})
-endforeach()
-
-list(APPEND Qt5Core_INCLUDE_DIRS ${_qt5_corelib_extra_includes})
-set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5_corelib_extra_includes})
-set(_qt5_corelib_extra_includes)
-
-# Targets using Qt need to use the POSITION_INDEPENDENT_CODE property. The
-# Qt5_POSITION_INDEPENDENT_CODE variable is used in the # qt5_use_module
-# macro to add it.
-set(Qt5_POSITION_INDEPENDENT_CODE True)
+# list(APPEND Qt5Core_INCLUDE_DIRS ${_qt5_corelib_extra_includes})
+# set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5_corelib_extra_includes})
+# set(_qt5_corelib_extra_includes)
# On x86 and x86-64 systems with ELF binaries (especially Linux), due to
# a new optimization in GCC 5.x in combination with a recent version of
@@ -78,96 +21,12 @@ set(Qt5_POSITION_INDEPENDENT_CODE True)
# Applications now need to be compiled with the -fPIC option if the Qt option
# \"reduce relocations\" is active. For backward compatibility only, Qt accepts
# the use of -fPIE for GCC 4.x versions.
-set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP)
-
-# TODO Qt6: Remove
-set(Qt5Core_EXECUTABLE_COMPILE_FLAGS \"\")
-
-!!IF !isEmpty(QT_NAMESPACE)
-list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE)
-list(APPEND Qt5Core_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE)
-set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE)
-!!ENDIF
-
-!!IF !isEmpty(CMAKE_DISABLED_FEATURES)
-set(Qt5_DISABLED_FEATURES
- $$CMAKE_DISABLED_FEATURES
-)
-!!ENDIF
-
-set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>)
-
-set_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype)
-
-!!IF qtConfig(reduce_exports)
-set(QT_VISIBILITY_AVAILABLE \"True\")
-!!ENDIF
-
-!!IF !isEmpty(QT_LIBINFIX)
-set(QT_LIBINFIX \"$${QT_LIBINFIX}\")
-!!ENDIF
-
-!!IF !isEmpty(CMAKE_WINDOWS_BUILD)
-set(Qt5Core_QTMAIN_LIBRARIES Qt5::WinMain)
-
-if (NOT TARGET Qt5::WinMain)
- add_library(Qt5::WinMain STATIC IMPORTED)
-
-!!IF !isEmpty(CMAKE_RELEASE_TYPE)
- set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
-!!ELSE
- set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
-!!ENDIF
-
- set_target_properties(Qt5::WinMain PROPERTIES
- IMPORTED_LOCATION_RELEASE ${imported_location}
- )
-!!ENDIF
-
-!!IF !isEmpty(CMAKE_DEBUG_TYPE)
- set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
-!!ELSE
- set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
-!!ENDIF
-
- set_target_properties(Qt5::WinMain PROPERTIES
- IMPORTED_LOCATION_DEBUG ${imported_location}
- )
-!!ENDIF
-
- if (NOT Qt5_NO_LINK_QTMAIN)
- set(_isExe $<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>)
- set(_isWin32 $<BOOL:$<TARGET_PROPERTY:WIN32_EXECUTABLE>>)
- set(_isNotExcluded $<NOT:$<BOOL:$<TARGET_PROPERTY:Qt5_NO_LINK_QTMAIN>>>)
- set(_isPolicyNEW $<TARGET_POLICY:CMP0020>)
- get_target_property(_configs Qt5::Core IMPORTED_CONFIGURATIONS)
- set_property(TARGET Qt5::Core APPEND PROPERTY
- INTERFACE_LINK_LIBRARIES
- $<$<AND:${_isExe},${_isWin32},${_isNotExcluded},${_isPolicyNEW}>:Qt5::WinMain>
- )
- # For backward compatibility with CMake < 2.8.12
- foreach(_config ${_configs})
- set_property(TARGET Qt5::Core APPEND PROPERTY
- IMPORTED_LINK_INTERFACE_LIBRARIES_${_config}
- $<$<AND:${_isExe},${_isWin32},${_isNotExcluded},${_isPolicyNEW}>:Qt5::WinMain>
- )
- endforeach()
- unset(_configs)
- unset(_isExe)
- unset(_isWin32)
- unset(_isNotExcluded)
- unset(_isPolicyNEW)
- endif()
+if (CMAKE_CXX_COMPILER MATCHES "icc.*$" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS "-fPIC")
endif()
-!!ENDIF
-
-get_filename_component(_Qt5CoreConfigDir ${CMAKE_CURRENT_LIST_FILE} PATH)
-set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\")
-
-_qt5_Core_check_file_exists(${_Qt5CTestMacros})
+if (NOT "@QT_NAMESPACE@" STREQUAL "")
+ set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=@QT_NAMESPACE@)
+endif()
+set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>)
+set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype)