summaryrefslogtreecommitdiffstats
path: root/cmake/QtPublicTargetsHelpers.cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-10-12 10:55:18 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-10-12 13:36:01 +0200
commitacf9b3a68b98b806329dd92184e632e049441cec (patch)
treeab235d74450495ed642a3f1981265c5384226c13 /cmake/QtPublicTargetsHelpers.cmake
parent5b90b650a414c8088854e7ca84663aaa0f3528af (diff)
CMake: Split QtBaseGlobalTargets.cmake into multiple files
And wrap the various behaviors into separate functions. Change-Id: If940351af34e445de050f2b46301de7080b1555b Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'cmake/QtPublicTargetsHelpers.cmake')
-rw-r--r--cmake/QtPublicTargetsHelpers.cmake32
1 files changed, 32 insertions, 0 deletions
diff --git a/cmake/QtPublicTargetsHelpers.cmake b/cmake/QtPublicTargetsHelpers.cmake
new file mode 100644
index 0000000000..8d916535ac
--- /dev/null
+++ b/cmake/QtPublicTargetsHelpers.cmake
@@ -0,0 +1,32 @@
+# Defines the public Qt::Platform target, which is used by both internal Qt builds as well as
+# public Qt consuming projects.
+function(qt_internal_setup_public_platform_target)
+ ## QtPlatform Target:
+ add_library(Platform INTERFACE)
+ add_library(Qt::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_enable_msvc_cplusplus_define(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()