Fix static usage requirements for XcbQpa
In particular, Qt targets extended with other qt targets (eg. Qt::VulkanSupport or Qt::LinuxAccessibilitySupport) after the first add_qt_module were not taken into account when generating Depends files. Note that this patch updates the minimum required version to CMake 3.15 Change-Id: I747deedd4d59e385876bc1a834ef9bdb6078911b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
c220974ed8
commit
fecd9d90da
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.14.0)
|
cmake_minimum_required(VERSION 3.15.0)
|
||||||
|
|
||||||
project(QtBase
|
project(QtBase
|
||||||
VERSION 5.14.0
|
VERSION 5.14.0
|
||||||
|
@ -2,4 +2,7 @@ include(FindPkgConfig)
|
|||||||
|
|
||||||
if(NOT TARGET PkgConfig::ATSPI2)
|
if(NOT TARGET PkgConfig::ATSPI2)
|
||||||
pkg_check_modules(ATSPI2 atspi-2 IMPORTED_TARGET)
|
pkg_check_modules(ATSPI2 atspi-2 IMPORTED_TARGET)
|
||||||
|
if (NOT TARGET PkgConfig::ATSPI2)
|
||||||
|
set(ATSPI2_FOUND 0)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
include(FindPkgConfig)
|
include(FindPkgConfig)
|
||||||
|
|
||||||
pkg_check_modules(GTK3 "gtk+-3.0 >= 3.6" IMPORTED_TARGET)
|
pkg_check_modules(GTK3 "gtk+-3.0 >= 3.6" IMPORTED_TARGET)
|
||||||
|
|
||||||
|
if (NOT TARGET PkgConfig::GTK3)
|
||||||
|
set(GTK3_FOUND 0)
|
||||||
|
endif()
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
find_package(PkgConfig)
|
find_package(PkgConfig)
|
||||||
|
|
||||||
pkg_check_modules(Tslib tslib IMPORTED_TARGET)
|
pkg_check_modules(Tslib tslib IMPORTED_TARGET)
|
||||||
|
|
||||||
|
if (NOT TARGET PkgConfig::Tslib)
|
||||||
|
set(Tslib_FOUND 0)
|
||||||
|
endif()
|
||||||
|
7
cmake/FindXKB_COMMON_X11.cmake
Normal file
7
cmake/FindXKB_COMMON_X11.cmake
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
include(FindPkgConfig)
|
||||||
|
|
||||||
|
pkg_check_modules(XKB_COMMON_X11 "xkbcommon-x11>=0.4.1" IMPORTED_TARGET)
|
||||||
|
|
||||||
|
if (NOT TARGET PkgConfig::XKB_COMMON_X11)
|
||||||
|
set(XKB_COMMON_X11_FOUND 0)
|
||||||
|
endif()
|
@ -795,7 +795,6 @@ function(extend_target target)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Set-up the target
|
# Set-up the target
|
||||||
target_sources("${target}" PRIVATE ${arg_SOURCES} ${dbus_sources})
|
target_sources("${target}" PRIVATE ${arg_SOURCES} ${dbus_sources})
|
||||||
if (arg_COMPILE_FLAGS)
|
if (arg_COMPILE_FLAGS)
|
||||||
@ -811,6 +810,23 @@ function(extend_target target)
|
|||||||
AUTOMOC_MOC_OPTIONS "${arg_MOC_OPTIONS}"
|
AUTOMOC_MOC_OPTIONS "${arg_MOC_OPTIONS}"
|
||||||
_qt_target_deps "${target_deps}"
|
_qt_target_deps "${target_deps}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# When a public module depends on private, also make its private depend on the other's private
|
||||||
|
set(qt_libs_private "")
|
||||||
|
foreach(it ${QT_KNOWN_MODULES})
|
||||||
|
list(FIND arg_LIBRARIES "Qt::${it}Private" pos)
|
||||||
|
if(pos GREATER -1)
|
||||||
|
list(APPEND qt_libs_private "Qt::${it}Private")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(target_private "${target}Private")
|
||||||
|
if(TARGET "${target_private}")
|
||||||
|
target_link_libraries("${target_private}" INTERFACE "${target}" "${qt_libs_private}")
|
||||||
|
endif()
|
||||||
|
qt_register_target_dependencies("${target}" "${arg_PUBLIC_LIBRARIES}" "${qt_libs_private}")
|
||||||
|
|
||||||
|
|
||||||
qt_autogen_tools(${target}
|
qt_autogen_tools(${target}
|
||||||
ENABLE_AUTOGEN_TOOLS ${arg_ENABLE_AUTOGEN_TOOLS}
|
ENABLE_AUTOGEN_TOOLS ${arg_ENABLE_AUTOGEN_TOOLS}
|
||||||
DISABLE_AUTOGEN_TOOLS ${arg_DISABLE_AUTOGEN_TOOLS})
|
DISABLE_AUTOGEN_TOOLS ${arg_DISABLE_AUTOGEN_TOOLS})
|
||||||
@ -1045,7 +1061,8 @@ function(add_qt_module target)
|
|||||||
ARCHIVE_OUTPUT_DIRECTORY "${QT_BUILD_DIR}/${INSTALL_LIBDIR}"
|
ARCHIVE_OUTPUT_DIRECTORY "${QT_BUILD_DIR}/${INSTALL_LIBDIR}"
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${PROJECT_VERSION}
|
||||||
SOVERSION ${PROJECT_VERSION_MAJOR}
|
SOVERSION ${PROJECT_VERSION_MAJOR}
|
||||||
OUTPUT_NAME "${INSTALL_CMAKE_NAMESPACE}${target}")
|
OUTPUT_NAME "${INSTALL_CMAKE_NAMESPACE}${target}"
|
||||||
|
)
|
||||||
|
|
||||||
qt_internal_library_deprecation_level(deprecation_define)
|
qt_internal_library_deprecation_level(deprecation_define)
|
||||||
|
|
||||||
@ -1220,16 +1237,6 @@ set(QT_CMAKE_EXPORT_NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE})")
|
|||||||
# that belong to Qt.
|
# that belong to Qt.
|
||||||
qt_internal_add_link_flags_no_undefined("${target}")
|
qt_internal_add_link_flags_no_undefined("${target}")
|
||||||
|
|
||||||
# When a public module depends on private, also make its private depend on the other's private
|
|
||||||
set(qt_libs_private "")
|
|
||||||
foreach(it ${QT_KNOWN_MODULES})
|
|
||||||
list(FIND arg_LIBRARIES "Qt::${it}Private" pos)
|
|
||||||
if(pos GREATER -1)
|
|
||||||
list(APPEND qt_libs_private "Qt::${it}Private")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
target_link_libraries("${target_private}" INTERFACE "${target}" "${qt_libs_private}")
|
|
||||||
target_include_directories("${target_private}" INTERFACE
|
target_include_directories("${target_private}" INTERFACE
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
||||||
$<BUILD_INTERFACE:${module_include_dir}/${PROJECT_VERSION}>
|
$<BUILD_INTERFACE:${module_include_dir}/${PROJECT_VERSION}>
|
||||||
@ -1238,8 +1245,6 @@ set(QT_CMAKE_EXPORT_NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE})")
|
|||||||
$<INSTALL_INTERFACE:include/${module}/${PROJECT_VERSION}/${module}>
|
$<INSTALL_INTERFACE:include/${module}/${PROJECT_VERSION}/${module}>
|
||||||
)
|
)
|
||||||
|
|
||||||
qt_register_target_dependencies("${target}" "${arg_PUBLIC_LIBRARIES}" "${qt_libs_private}")
|
|
||||||
|
|
||||||
if(NOT ${arg_DISABLE_TOOLS_EXPORT})
|
if(NOT ${arg_DISABLE_TOOLS_EXPORT})
|
||||||
qt_export_tools(${target})
|
qt_export_tools(${target})
|
||||||
endif()
|
endif()
|
||||||
@ -1399,6 +1404,8 @@ function(add_qt_plugin target)
|
|||||||
set_property(TARGET "${qt_module}" APPEND PROPERTY QT_PLUGINS "${target}")
|
set_property(TARGET "${qt_module}" APPEND PROPERTY QT_PLUGINS "${target}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set_property(TARGET "${target}" APPEND PROPERTY EXPORT_PROPERTIES "QT_PLUGIN_CLASS_NAME;QT_MODULE")
|
||||||
|
|
||||||
extend_target("${target}"
|
extend_target("${target}"
|
||||||
SOURCES ${arg_SOURCES}
|
SOURCES ${arg_SOURCES}
|
||||||
INCLUDE_DIRECTORIES
|
INCLUDE_DIRECTORIES
|
||||||
|
@ -417,7 +417,7 @@ function(qt_feature_module_end)
|
|||||||
set(propertyPrefix "INTERFACE_")
|
set(propertyPrefix "INTERFACE_")
|
||||||
else()
|
else()
|
||||||
set(propertyPrefix "")
|
set(propertyPrefix "")
|
||||||
set_target_properties("${target}" PROPERTIES EXPORT_PROPERTIES "QT_ENABLED_PUBLIC_FEATURES;QT_DISABLED_PUBLIC_FEATURES;QT_ENABLED_PRIVATE_FEATURES;QT_DISABLED_PRIVATE_FEATURES")
|
set_target_properties("${target}" PROPERTIES EXPORT_PROPERTIES "QT_ENABLED_PUBLIC_FEATURES;QT_DISABLED_PUBLIC_FEATURES;QT_ENABLED_PRIVATE_FEATURES;QT_DISABLED_PRIVATE_FEATURES;MODULE_PLUGIN_TYPES;QT_PLUGINS")
|
||||||
endif()
|
endif()
|
||||||
foreach(visibility public private)
|
foreach(visibility public private)
|
||||||
string(TOUPPER "${visibility}" capitalVisibility)
|
string(TOUPPER "${visibility}" capitalVisibility)
|
||||||
|
@ -21,9 +21,7 @@ foreach(_target_dep ${_third_party_deps})
|
|||||||
list(APPEND find_package_args "COMPONENTS" ${components})
|
list(APPEND find_package_args "COMPONENTS" ${components})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT ${pkg}_FOUND)
|
find_dependency(${find_package_args})
|
||||||
find_dependency(${find_package_args})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT ${pkg}_FOUND)
|
if (NOT ${pkg}_FOUND)
|
||||||
set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
|
set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
|
||||||
@ -40,9 +38,7 @@ foreach(_target_dep ${_tool_deps})
|
|||||||
list(GET _target_dep 0 pkg)
|
list(GET _target_dep 0 pkg)
|
||||||
list(GET _target_dep 1 version)
|
list(GET _target_dep 1 version)
|
||||||
|
|
||||||
if (NOT ${pkg}_FOUND)
|
find_dependency(${pkg} ${version})
|
||||||
find_dependency(${pkg} ${version})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT ${pkg}_FOUND)
|
if (NOT ${pkg}_FOUND)
|
||||||
set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
|
set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
|
||||||
|
@ -1,8 +1,48 @@
|
|||||||
|
define_property(TARGET
|
||||||
|
PROPERTY
|
||||||
|
QT_PLUGINS
|
||||||
|
BRIEF_DOCS
|
||||||
|
"List of Qt plug-ins associated with a given Qt module."
|
||||||
|
FULL_DOCS
|
||||||
|
"This is a property on Qt modules.
|
||||||
|
For instance, sqlite;odbc for Sql"
|
||||||
|
)
|
||||||
|
|
||||||
|
define_property(TARGET
|
||||||
|
PROPERTY
|
||||||
|
MODULE_PLUGIN_TYPES
|
||||||
|
BRIEF_DOCS
|
||||||
|
"List of plugin categories associated to the Qt module"
|
||||||
|
FULL_DOCS
|
||||||
|
"This is a property on Qt modules.
|
||||||
|
For instance, sqldrivers for Sql."
|
||||||
|
)
|
||||||
|
|
||||||
define_property(TARGET
|
define_property(TARGET
|
||||||
PROPERTY
|
PROPERTY
|
||||||
QT_PLUGIN_CLASS_NAME
|
QT_PLUGIN_CLASS_NAME
|
||||||
BRIEF_DOCS
|
BRIEF_DOCS
|
||||||
"Class name of the Qt plug-in"
|
"Class name of the Qt plug-in"
|
||||||
FULL_DOCS
|
FULL_DOCS
|
||||||
"For instance, QICOPlugin for the qico plug-in"
|
"This is a property on Qt plug-ins.
|
||||||
|
For instance, QICOPlugin for the qico plug-in"
|
||||||
|
)
|
||||||
|
|
||||||
|
define_property(TARGET
|
||||||
|
PROPERTY
|
||||||
|
QT_MODULE
|
||||||
|
BRIEF_DOCS
|
||||||
|
"Qt module associated with a plug-in."
|
||||||
|
FULL_DOCS
|
||||||
|
"This is a property on Qt plug-ins.
|
||||||
|
For instance, Sql for qsqlite"
|
||||||
|
)
|
||||||
|
|
||||||
|
define_property(GLOBAL
|
||||||
|
PROPERTY
|
||||||
|
QT_KNOWN_PLUGINS
|
||||||
|
BRIEF_DOCS
|
||||||
|
""
|
||||||
|
FULL_DOCS
|
||||||
|
""
|
||||||
)
|
)
|
||||||
|
@ -103,7 +103,6 @@ if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
|
|||||||
qt_find_package(XRender PROVIDED_TARGETS PkgConfig::XRender)
|
qt_find_package(XRender PROVIDED_TARGETS PkgConfig::XRender)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
#### Tests
|
#### Tests
|
||||||
|
|
||||||
# angle_d3d11_qdtd
|
# angle_d3d11_qdtd
|
||||||
|
@ -1,16 +1,25 @@
|
|||||||
# Generated from xcb.pro.
|
# Generated from xcb.pro.
|
||||||
|
|
||||||
# begin special case:
|
# begin special case:
|
||||||
qt_find_package(X11_XCB)
|
qt_find_package(X11_XCB
|
||||||
qt_find_package(X11)
|
PROVIDED_TARGETS
|
||||||
|
X11::XCB
|
||||||
|
)
|
||||||
|
qt_find_package(X11
|
||||||
|
PROVIDED_TARGETS
|
||||||
|
X11::X11
|
||||||
|
)
|
||||||
qt_find_package(XCB)
|
qt_find_package(XCB)
|
||||||
qt_find_package(XKB)
|
qt_find_package(XKB)
|
||||||
qt_find_package(PkgConfig)
|
qt_find_package(PkgConfig)
|
||||||
qt_find_package(WrapFreetype)
|
qt_find_package(WrapFreetype)
|
||||||
qt_find_package(GLIB2)
|
qt_find_package(GLIB2
|
||||||
|
PROVIDED_TARGETS
|
||||||
|
GLIB2::GLIB2
|
||||||
|
)
|
||||||
qt_find_package(XRender PROVIDED_TARGETS PkgConfig::XRender)
|
qt_find_package(XRender PROVIDED_TARGETS PkgConfig::XRender)
|
||||||
|
qt_find_package(XKB_COMMON_X11 PROVIDED_TARGETS PkgConfig::XKB_COMMON_X11)
|
||||||
|
|
||||||
pkg_check_modules(XKB_COMMON_X11 xkbcommon-x11>=0.4.1 IMPORTED_TARGET) # special case
|
|
||||||
# end special case:
|
# end special case:
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
Loading…
Reference in New Issue
Block a user