summaryrefslogtreecommitdiffstats
path: root/cmake/QtSingleRepoTargetSetBuildHelpers.cmake
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2021-05-06 16:27:48 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2021-05-20 12:08:33 +0200
commit4b09522c23e9efdf83ba8d4af436d8a700ccb66e (patch)
treeebe5576d0222bc7d60aa88d039518bf872bc676e /cmake/QtSingleRepoTargetSetBuildHelpers.cmake
parentdf022972b0860400449e3a6dabab63ea4e4656ac (diff)
Add support for building and installing repo target sets
Introduce the concept of repository target sets, which is a named set of targets within a Qt module repository. In a Qt repository, a repo target set 'qtfoo' can be defined in the top-level project file with qt_internal_define_repo_target_set(qtfoo DEPENDS Bar Baz) The DEPENDS argument specifies Qt components that need to be find_package'd when building the targets that belong to qtfoo. In subdirectory project files, use qt_internal_include_in_repo_target_set(qtfoo) to mark the file as belonging to the repo target set. To build and install a single repo target set, specify QT_BUILD_SINGLE_REPO_TARGET_SET=qtfoo when configuring the Qt repository. Change-Id: Ic9e6213e3225988fd561f315bc857ee44ff17420 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtSingleRepoTargetSetBuildHelpers.cmake')
-rw-r--r--cmake/QtSingleRepoTargetSetBuildHelpers.cmake11
1 files changed, 11 insertions, 0 deletions
diff --git a/cmake/QtSingleRepoTargetSetBuildHelpers.cmake b/cmake/QtSingleRepoTargetSetBuildHelpers.cmake
new file mode 100644
index 0000000000..789b23b6e6
--- /dev/null
+++ b/cmake/QtSingleRepoTargetSetBuildHelpers.cmake
@@ -0,0 +1,11 @@
+# Macro that checks for a single repo target set build, and returns from the current file, directory
+# or function. Use this at the top of project files to whitelist the file for the given package.
+macro(qt_internal_include_in_repo_target_set _repo_target_set_name)
+ if(DEFINED QT_BUILD_SINGLE_REPO_TARGET_SET)
+ if(NOT "${_repo_target_set_name}" STREQUAL QT_BUILD_SINGLE_REPO_TARGET_SET)
+ message(STATUS "Not part of repo target set ${QT_BUILD_SINGLE_REPO_TARGET_SET}: "
+ "${CMAKE_CURRENT_LIST_DIR}")
+ return()
+ endif()
+ endif()
+endmacro()