diff options
-rw-r--r-- | cmake/QtPostProcess.cmake | 5 | ||||
-rw-r--r-- | src/corelib/CMakeLists.txt | 11 | ||||
-rw-r--r-- | src/corelib/Qt5CoreMacros.cmake | 4 | ||||
-rw-r--r-- | src/winmain/CMakeLists.txt | 2 |
4 files changed, 16 insertions, 6 deletions
diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake index 24f0621fc4..dc16514825 100644 --- a/cmake/QtPostProcess.cmake +++ b/cmake/QtPostProcess.cmake @@ -59,6 +59,11 @@ function(qt_internal_create_module_depends_file target) get_target_property(target_deps "${target}" _qt_target_deps) set(target_deps_seen "") + get_target_property(extra_depends "${target}" QT_EXTRA_PACKAGE_DEPENDENCIES) + if(NOT extra_depends STREQUAL "${extra_depends}-NOTFOUND") + list(APPEND target_deps ${extra_depends}) + endif() + set(qtdeps "") set(third_party_deps "") set(third_party_deps_seen "") diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index 1932af8b6d..f6571df7c6 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -1080,6 +1080,17 @@ if(WIN32) endif() qt_internal_add_link_flags_gc_sections(Core PRIVATE) + +if(WIN32) + set(isExe $<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>) + set(isWin32 $<BOOL:$<TARGET_PROPERTY:WIN32_EXECUTABLE>>) + set(isNotExcluded $<NOT:$<BOOL:$<TARGET_PROPERTY:Qt5_NO_LINK_QTMAIN>>>) + set(isPolicyNEW $<TARGET_POLICY:CMP0020>) + + target_link_libraries(Core INTERFACE $<$<AND:${isExe},${isWin32},${isNotExcluded},${isPolicyNEW}>:Qt::WinMain>) + qt_internal_module_info(win_main_module WinMain) + set_property(TARGET Core APPEND PROPERTY QT_EXTRA_PACKAGE_DEPENDENCIES "${win_main_module_versioned}\\\;${PROJECT_VERSION}") +endif() # special case end qt_create_tracepoints(Core qtcore.tracepoints) diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake index 7b4c7e9d3b..738816ee4e 100644 --- a/src/corelib/Qt5CoreMacros.cmake +++ b/src/corelib/Qt5CoreMacros.cmake @@ -397,10 +397,6 @@ function(add_qt_gui_executable target) endif() target_link_libraries("${target}" PRIVATE Qt::Core Qt::Gui) - if(WIN32) - target_link_libraries("${target}" PRIVATE Qt::WinMain) - endif() - if(ANDROID) qt_android_generate_deployment_settings("${target}") endif() diff --git a/src/winmain/CMakeLists.txt b/src/winmain/CMakeLists.txt index 10c3252f43..1095a0e907 100644 --- a/src/winmain/CMakeLists.txt +++ b/src/winmain/CMakeLists.txt @@ -23,6 +23,4 @@ extend_target(WinMain CONDITION NOT WINRT extend_target(WinMain CONDITION MINGW DEFINES QT_NEEDS_QMAIN ) - -extend_target(Core LIBRARIES WinMain) # special case end |