diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-09-21 21:22:09 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-09-22 10:29:28 +0000 |
commit | fbddf745e9011abd2838b644cbc3258572721d95 (patch) | |
tree | e15e790d2248f3687425e0474c4810f445350bab | |
parent | 1144c08be878a09e7de497f7bdf2316df2592cdc (diff) |
Create module tools packages (config files) automatically
Previously you had to make sure to use DISABLE_TOOLS_EXPORT
in an add_qt_module call if the tools are built after the module,
as well as to manually call qt_export_tools after all associated
tools are built.
This was needlessly complex, especially for people that are porting
a repo with tools for the first time.
The tools package creation is now automatically done at QtPostProcess
step, so there is no need to use either DISABLE_TOOLS_EXPORT or
qt_export_tools() manually.
DISABLE_TOOLS_EXPORT is now a no-op, and will be removed once all repos
are updated not to use it.
Change-Id: I965b0d3a8a0cb908afae87b047083ed7bea9f02f
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | cmake/QtBuild.cmake | 7 | ||||
-rw-r--r-- | cmake/QtPostProcess.cmake | 8 | ||||
-rw-r--r-- | src/corelib/CMakeLists.txt | 1 |
4 files changed, 9 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a52bed4658..4b7803da43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,9 +58,6 @@ if (QT_WILL_BUILD_TOOLS) add_subdirectory(qmake) endif() -# Need to build qmake and other Core tools before exporting them. -qt_export_tools(Core) - # As long as we use the mkspecs (for qplatformdefs.h), we need to always # install it, especially when cross-compiling. set(mkspecs_install_dir "${INSTALL_DATADIR}") diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index 3316fc4c30..758af7ebfe 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -1589,16 +1589,11 @@ set(QT_CMAKE_EXPORT_NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE})") if(NOT ${arg_NO_PRIVATE_MODULE}) target_include_directories("${target_private}" INTERFACE ${interface_includes}) endif() - - if(NOT ${arg_DISABLE_TOOLS_EXPORT}) - qt_export_tools(${target}) - endif() endfunction() function(qt_export_tools module_name) # If no tools were defined belonging to this module, don't create a config and targets file. - # Guards against the case when doing a cross-build and the function is called manually and not - # by add_qt_module. + # Guards against the case when doing a cross-build. if(NOT "${module_name}" IN_LIST QT_KNOWN_MODULES_WITH_TOOLS OR CMAKE_CROSSCOMPILING) return() diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake index f0286b25f6..349d8e131b 100644 --- a/cmake/QtPostProcess.cmake +++ b/cmake/QtPostProcess.cmake @@ -332,6 +332,14 @@ function(qt_modules_process_android_dependencies) endforeach() endfunction() +function(qt_create_tools_config_files) + # Create packages like Qt6CoreTools/Qt6CoreToolsConfig.cmake. + foreach(module_name ${QT_KNOWN_MODULES_WITH_TOOLS}) + qt_export_tools("${module_name}") + endforeach() +endfunction() + +qt_create_tools_config_files() qt_internal_create_depends_files() qt_generate_build_internals_extra_cmake_code() qt_internal_create_plugins_files() diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index cbe87e406e..f4678562c6 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -253,7 +253,6 @@ add_qt_module(Core WrapDoubleConversion::WrapDoubleConversion # special case PUBLIC_LIBRARIES # special case: Qt::Platform # special case: - DISABLE_TOOLS_EXPORT # special case: # special case begin # Generated in QtBaseGlobalTargets EXTRA_CMAKE_FILES ${QT_CORE_RESOURCE_GENERATED_FILE_PATH} |