diff options
Diffstat (limited to 'cmake/QtPlatformTargetHelpers.cmake')
-rw-r--r-- | cmake/QtPlatformTargetHelpers.cmake | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/cmake/QtPlatformTargetHelpers.cmake b/cmake/QtPlatformTargetHelpers.cmake index b98894829f..9c95c0883f 100644 --- a/cmake/QtPlatformTargetHelpers.cmake +++ b/cmake/QtPlatformTargetHelpers.cmake @@ -1,15 +1,20 @@ # 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) + qt_internal_get_platform_definition_include_dir( + install_interface_definition_dir + build_interface_definition_dir + ) + ## 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_BUILD_INTERFACE_DIR}> + $<BUILD_INTERFACE:${build_interface_definition_dir}> $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:${QT_PLATFORM_DEFINITION_DIR}> + $<INSTALL_INTERFACE:${install_interface_definition_dir}> $<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}> ) target_compile_definitions(Platform INTERFACE ${QT_PLATFORM_DEFINITIONS}) @@ -33,3 +38,26 @@ function(qt_internal_setup_public_platform_target) # By default enable unicode on WIN32 platforms for both Qt and Qt consumers. Can be opted out. qt_internal_enable_unicode_defines(Platform) endfunction() + +function(qt_internal_get_platform_definition_include_dir install_interface build_interface) + # Used by consumers of prefix builds via INSTALL_INTERFACE (relative path). + set(${install_interface} "${INSTALL_MKSPECSDIR}/${QT_QMAKE_TARGET_MKSPEC}" PARENT_SCOPE) + + # Used by qtbase in prefix builds via BUILD_INTERFACE + set(build_interface_base_dir + "${CMAKE_CURRENT_LIST_DIR}/../mkspecs" + ) + + # Used by qtbase and consumers in non-prefix builds via BUILD_INTERFACE + if(NOT QT_WILL_INSTALL) + set(build_interface_base_dir + "${QT_BUILD_DIR}/${INSTALL_MKSPECSDIR}" + ) + endif() + + get_filename_component(build_interface_dir + "${build_interface_base_dir}/${QT_QMAKE_TARGET_MKSPEC}" + ABSOLUTE + ) + set(${build_interface} "${build_interface_dir}" PARENT_SCOPE) +endfunction() |