diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2021-04-29 12:47:52 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2021-05-11 18:57:17 +0200 |
commit | 471ff20f33677fe5dd598b1fbd27d10fdb4056a6 (patch) | |
tree | dc44b917cc8cc038b5476c8137b0af05461e11e3 /cmake/QtPlatformTargetHelpers.cmake | |
parent | b70a4da4f7c7f47c35ccfe64f533cdeccf8701c1 (diff) | |
download | qtbase-471ff20f33677fe5dd598b1fbd27d10fdb4056a6.tar.gz |
CMake: Make qt_internal_walk_libs available in public projects
Needed for the upcoming static plugin mechanism, where we have to
extract the list of Qt module dependencies of a target and then extract
the plugins associated with those modules.
To do that we need to recursively collect the dependencies of a given
target.
Rename the moved functions to contain the __qt_internal prefix.
Also rename the existing QtPublicTargetsHelpers.cmake into
QtPlatformTargetHelpers.cmake to avoid confusion with the newly
introduced QtPublicTargetHelpers.cmake.
Task-number: QTBUG-92933
Change-Id: I48b5b6a8718a3424f59ca60f11fc9e97a809765d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake/QtPlatformTargetHelpers.cmake')
-rw-r--r-- | cmake/QtPlatformTargetHelpers.cmake | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/cmake/QtPlatformTargetHelpers.cmake b/cmake/QtPlatformTargetHelpers.cmake new file mode 100644 index 0000000000..68ff8a3ea0 --- /dev/null +++ b/cmake/QtPlatformTargetHelpers.cmake @@ -0,0 +1,33 @@ +# Defines the public Qt::Platform target, which serves as a dependency for all internal Qt target +# as well as user projects consuming Qt. +function(qt_internal_setup_public_platform_target) + ## QtPlatform Target: + add_library(Platform INTERFACE) + add_library(Qt::Platform ALIAS Platform) + add_library(${INSTALL_CMAKE_NAMESPACE}::Platform ALIAS Platform) + target_include_directories(Platform + INTERFACE + $<BUILD_INTERFACE:${QT_PLATFORM_DEFINITION_DIR_ABSOLUTE}> + $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> + $<INSTALL_INTERFACE:${QT_PLATFORM_DEFINITION_DIR}> + $<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}> + ) + target_compile_definitions(Platform INTERFACE ${QT_PLATFORM_DEFINITIONS}) + + # When building on android we need to link against the logging library + # in order to satisfy linker dependencies. Both of these libraries are part of + # the NDK. + if (ANDROID) + target_link_libraries(Platform INTERFACE log) + endif() + + qt_set_msvc_cplusplus_options(Platform INTERFACE) + + # Propagate minimum C++ 17 via Platform to Qt consumers (apps), after the global features + # are computed. + qt_set_language_standards_interface_compile_features(Platform) + + # By default enable utf8 sources for both Qt and Qt consumers. Can be opted out. + qt_enable_utf8_sources(Platform) + +endfunction() |