Move the logic associated with platform definition directory
Since platform definition directory is used as an interface include path of the Qt::Platform target, it makes sense to define it for this target only. Also the definition of cached values that contain path to platform definition looks redundand. The definition of QT_PLATFORM_DEFINITION_DIR from command line doesn't make any sense since build procedure doesn't take it into account when installing mkspecs and the use if the user-provided QT_PLATFORM_DEFINITION_DIR value as a Qt::Platform include directory causes inconsistency in the prefixed builds. INSTALL_MKSPECSDIR and QT_QMAKE_TARGET_MKSPEC should be used instead. Change-Id: I3636c57b835cb84511a358a0910cc482c5fbd81e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
3c88e12beb
commit
adfb767bcc
@ -372,30 +372,6 @@ else()
|
|||||||
set(QT_QMAKE_HOST_MKSPEC "${QT_QMAKE_TARGET_MKSPEC}")
|
set(QT_QMAKE_HOST_MKSPEC "${QT_QMAKE_TARGET_MKSPEC}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Used by consumers of prefix builds via INSTALL_INTERFACE (relative path).
|
|
||||||
set(QT_DEFAULT_PLATFORM_DEFINITION_DIR "${INSTALL_MKSPECSDIR}/${QT_QMAKE_TARGET_MKSPEC}")
|
|
||||||
|
|
||||||
# Used by qtbase in prefix builds via BUILD_INTERFACE
|
|
||||||
set(QT_PLATFORM_DEFINITION_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(QT_PLATFORM_DEFINITION_BUILD_INTERFACE_BASE_DIR
|
|
||||||
"${QT_BUILD_DIR}/${INSTALL_MKSPECSDIR}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
get_filename_component(QT_PLATFORM_DEFINITION_BUILD_INTERFACE_DIR
|
|
||||||
"${QT_PLATFORM_DEFINITION_BUILD_INTERFACE_BASE_DIR}/${QT_QMAKE_TARGET_MKSPEC}"
|
|
||||||
ABSOLUTE
|
|
||||||
)
|
|
||||||
set(QT_PLATFORM_DEFINITION_BUILD_INTERFACE_DIR
|
|
||||||
"${QT_PLATFORM_DEFINITION_BUILD_INTERFACE_DIR}"
|
|
||||||
CACHE INTERNAL "Path to directory that contains qplatformdefs.h"
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT EXISTS "${QT_MKSPECS_DIR}/${QT_QMAKE_TARGET_MKSPEC}")
|
if(NOT EXISTS "${QT_MKSPECS_DIR}/${QT_QMAKE_TARGET_MKSPEC}")
|
||||||
file(GLOB known_platforms
|
file(GLOB known_platforms
|
||||||
LIST_DIRECTORIES true
|
LIST_DIRECTORIES true
|
||||||
@ -413,8 +389,6 @@ endif()
|
|||||||
|
|
||||||
set(QT_PLATFORM_DEFINITIONS ${QT_DEFAULT_PLATFORM_DEFINITIONS}
|
set(QT_PLATFORM_DEFINITIONS ${QT_DEFAULT_PLATFORM_DEFINITIONS}
|
||||||
CACHE STRING "Qt platform specific pre-processor defines")
|
CACHE STRING "Qt platform specific pre-processor defines")
|
||||||
set(QT_PLATFORM_DEFINITION_DIR "${QT_DEFAULT_PLATFORM_DEFINITION_DIR}"
|
|
||||||
CACHE PATH "Path to directory that contains qplatformdefs.h")
|
|
||||||
|
|
||||||
set(QT_NAMESPACE "" CACHE STRING "Qt Namespace")
|
set(QT_NAMESPACE "" CACHE STRING "Qt Namespace")
|
||||||
|
|
||||||
|
@ -1,15 +1,20 @@
|
|||||||
# Defines the public Qt::Platform target, which serves as a dependency for all internal Qt target
|
# Defines the public Qt::Platform target, which serves as a dependency for all internal Qt target
|
||||||
# as well as user projects consuming Qt.
|
# as well as user projects consuming Qt.
|
||||||
function(qt_internal_setup_public_platform_target)
|
function(qt_internal_setup_public_platform_target)
|
||||||
|
qt_internal_get_platform_definition_include_dir(
|
||||||
|
install_interface_definition_dir
|
||||||
|
build_interface_definition_dir
|
||||||
|
)
|
||||||
|
|
||||||
## QtPlatform Target:
|
## QtPlatform Target:
|
||||||
add_library(Platform INTERFACE)
|
add_library(Platform INTERFACE)
|
||||||
add_library(Qt::Platform ALIAS Platform)
|
add_library(Qt::Platform ALIAS Platform)
|
||||||
add_library(${INSTALL_CMAKE_NAMESPACE}::Platform ALIAS Platform)
|
add_library(${INSTALL_CMAKE_NAMESPACE}::Platform ALIAS Platform)
|
||||||
target_include_directories(Platform
|
target_include_directories(Platform
|
||||||
INTERFACE
|
INTERFACE
|
||||||
$<BUILD_INTERFACE:${QT_PLATFORM_DEFINITION_BUILD_INTERFACE_DIR}>
|
$<BUILD_INTERFACE:${build_interface_definition_dir}>
|
||||||
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
|
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
|
||||||
$<INSTALL_INTERFACE:${QT_PLATFORM_DEFINITION_DIR}>
|
$<INSTALL_INTERFACE:${install_interface_definition_dir}>
|
||||||
$<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}>
|
$<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}>
|
||||||
)
|
)
|
||||||
target_compile_definitions(Platform INTERFACE ${QT_PLATFORM_DEFINITIONS})
|
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.
|
# By default enable unicode on WIN32 platforms for both Qt and Qt consumers. Can be opted out.
|
||||||
qt_internal_enable_unicode_defines(Platform)
|
qt_internal_enable_unicode_defines(Platform)
|
||||||
endfunction()
|
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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user