Skip to content

Commit

Permalink
CMake: make compile options consistent for Qt created libraries
Browse files Browse the repository at this point in the history
Currently some libraries created by Qt are lacking some compile
definitions and compile options, and this issue is causing us
troubles when building Qt statically. This patch tries to reduce
the parameter difference when compiling Qt's own libraries.

Change-Id: I3842943a874fab32ef90980e8aa29f5beb01feeb
Reviewed-by: Alexey Edelev <[email protected]>
  • Loading branch information
wangwenx190 committed May 31, 2023
1 parent fb86c5a commit 389507a
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 16 deletions.
3 changes: 0 additions & 3 deletions cmake/QtModuleHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -487,8 +487,6 @@ function(qt_internal_add_module target)
endif()
endif()

qt_internal_library_deprecation_level(deprecation_define)

if(NOT arg_HEADER_MODULE)
qt_autogen_tools_initial_setup(${target})
endif()
Expand Down Expand Up @@ -578,7 +576,6 @@ function(qt_internal_add_module target)
QT_DEPRECATED_WARNINGS
QT_BUILDING_QT
QT_BUILD_${module_define_infix}_LIB ### FIXME: use QT_BUILD_ADDON for Add-ons or remove if we don't have add-ons anymore
${deprecation_define}
)
list(APPEND arg_LIBRARIES Qt::PlatformModuleInternal)
endif()
Expand Down
4 changes: 4 additions & 0 deletions cmake/QtPlatformTargetHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ function(qt_internal_setup_public_platform_target)

# Generate a pkgconfig for Qt::Platform.
qt_internal_generate_pkg_config_file(Platform)

# Make sure Qt users use the same symbols as how we build Qt.
qt_internal_library_deprecation_level(deprecation_defines)
target_compile_definitions(Platform INTERFACE ${deprecation_defines})
endfunction()

function(qt_internal_get_platform_definition_include_dir install_interface build_interface)
Expand Down
18 changes: 6 additions & 12 deletions qmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ qt_add_library(QtLibraryInfo OBJECT
qmakelibraryinfo.cpp qmakelibraryinfo.h
)

# Make sure we use same parameters when building QtLibraryInfo and other Qt libraries,
# otherwise some compilers may have compilation errors, such as clang-cl.
target_link_libraries(QtLibraryInfo PUBLIC PlatformCommonInternal)

target_link_libraries(QtLibraryInfo PUBLIC Qt::CorePrivate)

qt_internal_add_sync_header_dependencies(QtLibraryInfo Core)

set_target_properties(QtLibraryInfo PROPERTIES
COMPILE_OPTIONS $<TARGET_PROPERTY:Qt::Core,INTERFACE_COMPILE_OPTIONS>
COMPILE_DEFINITIONS $<TARGET_PROPERTY:Qt::Core,INTERFACE_COMPILE_DEFINITIONS>
INCLUDE_DIRECTORIES $<TARGET_PROPERTY:Qt::Core,INTERFACE_INCLUDE_DIRECTORIES>
INCLUDE_DIRECTORIES $<TARGET_PROPERTY:Qt::CorePrivate,INTERFACE_INCLUDE_DIRECTORIES>
)
target_include_directories(QtLibraryInfo PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/library"
Expand All @@ -35,18 +35,13 @@ if("${hostdatadir}" STREQUAL "")
set(hostdatadir ".")
endif()

qt_internal_library_deprecation_level(deprecation_define)

target_compile_definitions(QtLibraryInfo PUBLIC
PROEVALUATOR_FULL
QT_BUILD_QMAKE
QT_USE_QSTRINGBUILDER
QT_NO_FOREACH
QT_VERSION_STR="${PROJECT_VERSION}"
QT_HOST_MKSPEC="${QT_QMAKE_HOST_MKSPEC}"
QT_TARGET_MKSPEC="${QT_QMAKE_TARGET_MKSPEC}"
QT_HOST_DATADIR="${hostdatadir}"
${deprecation_define}
)

qt_internal_set_exceptions_flags(QtLibraryInfo OFF)
Expand Down Expand Up @@ -99,7 +94,6 @@ qt_internal_add_tool(${target_name}
PRECOMPILED_HEADER
"qmake_pch.h"
LIBRARIES
Qt::CorePrivate
QtLibraryInfo
)
qt_internal_return_unless_building_tools()
Expand Down
1 change: 0 additions & 1 deletion src/tools/qtpaths/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ qt_internal_return_unless_building_tools()
qt_internal_extend_target(${target_name} CONDITION QT_FEATURE_settings
LIBRARIES
QtLibraryInfo
Qt::CorePrivate
)

if(WIN32 AND TARGET ${target_name})
Expand Down

0 comments on commit 389507a

Please sign in to comment.