summaryrefslogtreecommitdiffstats
path: root/cmake/QtPlatformTargetHelpers.cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2021-04-29 12:47:52 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2021-05-11 18:57:17 +0200
commit471ff20f33677fe5dd598b1fbd27d10fdb4056a6 (patch)
treedc44b917cc8cc038b5476c8137b0af05461e11e3 /cmake/QtPlatformTargetHelpers.cmake
parentb70a4da4f7c7f47c35ccfe64f533cdeccf8701c1 (diff)
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.cmake33
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()