summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2019-06-11 15:46:31 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2019-06-12 14:19:34 +0000
commit6732fa3a291e77acad3ab6ba829d1026462dc139 (patch)
treeeae7522ffebf148907ff58421ea4681e7726f99a /src
parent82840d2660202c6d8f3c53ad1d620667901cb954 (diff)
Fix linking of examples
Provide add_qt_gui_executable() as function in our public API that takes care of automaticWinMain linkage. We can use this in the future to encapsulate similarplatform-specific behavior and adjustments, such as module generation onAndroid. In order for the examples to see the function in Qt5CoreMacros, three more additional fixes were required: * Do the build_repo_end() call _before_ attempting to build the examples, as we need the build_repo_end() to include QtPostProcess and complete the creation of all the target config files. Otherwise the find_package() calls in the examples see something incomplete. * Add more QT_NO_CREATE_TARGET guards * Always call find_dependency on the dependencies, regardless of the target creation mode. This way a find_package(Qt5 COMPONENTS Widgets) will still load Qt5CoreMacros. Change-Id: I03ce856e2f4312a050fe8043b8331cbe8a6c93e6 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/Qt5CoreMacros.cmake11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake
index bae1518375..8d4943aa3f 100644
--- a/src/corelib/Qt5CoreMacros.cmake
+++ b/src/corelib/Qt5CoreMacros.cmake
@@ -388,3 +388,14 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.9)
endforeach()
endmacro()
endif()
+
+function(add_qt_gui_executable target)
+ add_executable(${ARGV})
+ target_link_libraries("${target}" PRIVATE Qt::Core Qt::Gui)
+
+ list(FIND ARGV WIN32 WIN32_OPTION_IDX)
+ if(WIN32 AND NOT WIN32_OPTION_IDX EQUAL -1)
+ target_link_libraries("${target}" PRIVATE Qt::WinMain)
+ endif()
+endfunction()
+