qt5base-lts/examples/network/multistreamclient/CMakeLists.txt
Simon Hausmann 6732fa3a29 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>
2019-06-12 14:19:34 +00:00

34 lines
770 B
CMake

# Generated from multistreamclient.pro.
cmake_minimum_required(VERSION 3.14)
project(multistreamclient LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(INSTALL_EXAMPLEDIR "examples")
find_package(Qt5 COMPONENTS Network)
find_package(Qt5 COMPONENTS Widgets)
add_qt_gui_executable(multistreamclient WIN32 MACOSX_BUNDLE
chatconsumer.cpp chatconsumer.h
client.cpp client.h
consumer.h
main.cpp
movieconsumer.cpp movieconsumer.h
timeconsumer.cpp timeconsumer.h
)
target_link_libraries(multistreamclient PUBLIC
Qt::Network
Qt::Widgets
)
install(TARGETS multistreamclient
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
)