diff options
49 files changed, 484 insertions, 279 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e2ae4ca29..ba0fd2d106 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,7 +169,4 @@ qt_build_repo_end() if(NOT QT_BUILD_STANDALONE_TESTS AND QT_BUILD_EXAMPLES) add_subdirectory(examples) - if(NOT QT_BUILD_EXAMPLES_BY_DEFAULT) - set_property(DIRECTORY examples PROPERTY EXCLUDE_FROM_ALL TRUE) - endif() endif() diff --git a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake index a173c0bcbc..1de583ac2d 100644 --- a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake +++ b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake @@ -466,10 +466,10 @@ macro(qt_build_repo_end) endif() endif() + qt_build_internals_add_toplevel_targets() + if(NOT QT_SUPERBUILD) qt_print_build_instructions() - else() - qt_build_internals_add_toplevel_targets() endif() endmacro() @@ -521,13 +521,10 @@ macro(qt_build_repo_impl_tests) endmacro() macro(qt_build_repo_impl_examples) - if(QT_BUILD_EXAMPLES AND BUILD_SHARED_LIBS + if(QT_BUILD_EXAMPLES AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/examples/CMakeLists.txt" AND NOT QT_BUILD_STANDALONE_TESTS) add_subdirectory(examples) - if(NOT QT_BUILD_EXAMPLES_BY_DEFAULT) - set_property(DIRECTORY examples PROPERTY EXCLUDE_FROM_ALL TRUE) - endif() endif() endmacro() @@ -659,6 +656,58 @@ macro(qt_internal_set_up_build_dir_package_paths) endmacro() macro(qt_examples_build_begin) + set(options EXTERNAL_BUILD) + set(singleOpts "") + set(multiOpts DEPENDS) + + cmake_parse_arguments(arg "${options}" "${singleOpts}" "${multiOpts}" ${ARGN}) + + # FIXME: Support prefix builds as well + if(arg_EXTERNAL_BUILD AND NOT QT_WILL_INSTALL) + # Examples will be built using ExternalProject. + # We always depend on all plugins so as to prevent opportunities for + # weird errors associated with loading out-of-date plugins from + # unrelated Qt modules. We also depend on all targets from this repo + # to ensure that we've built anything that a find_package() call within + # an example might use. Projects can add further dependencies if needed, + # but that should rarely be necessary. + set(QT_EXAMPLE_DEPENDENCIES qt_plugins ${qt_repo_targets_name} ${arg_DEPENDS}) + set(QT_EXAMPLE_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + + string(TOLOWER ${PROJECT_NAME} project_name_lower) + if(NOT TARGET examples) + if(QT_BUILD_EXAMPLES_BY_DEFAULT) + add_custom_target(examples ALL) + else() + add_custom_target(examples) + endif() + endif() + if(NOT TARGET examples_${project_name_lower}) + add_custom_target(examples_${project_name_lower}) + add_dependencies(examples examples_${project_name_lower}) + endif() + + include(ExternalProject) + else() + # This repo has not yet been updated to build examples in a separate + # build from this main build, or we can't use that arrangement yet. + # Build them directly as part of the main build instead for backward + # compatibility. + if(NOT BUILD_SHARED_LIBS) + # Ordinarily, it would be an error to call return() from within a + # macro(), but in this case we specifically want to return from the + # caller's scope if we are doing a static build and the project + # isn't building examples in a separate build from the main build. + # Configuring static builds requires tools that are not available + # until build time. + return() + endif() + + if(NOT QT_BUILD_EXAMPLES_BY_DEFAULT) + set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE) + endif() + endif() + # Examples that are built as part of the Qt build need to use the CMake config files from the # build dir, because they are not installed yet in a prefix build. # Appending to CMAKE_PREFIX_PATH helps find the initial Qt6Config.cmake. @@ -677,16 +726,28 @@ macro(qt_examples_build_begin) endmacro() macro(qt_examples_build_end) - # We use AUTOMOC/UIC/RCC in the examples. Make sure to not fail on a fresh Qt build, that e.g. the moc binary does not exist yet. + # We use AUTOMOC/UIC/RCC in the examples. When the examples are part of the + # main build rather than being built in their own separate project, make + # sure we do not fail on a fresh Qt build (e.g. the moc binary won't exist + # yet because it is created at build time). - # This function gets all targets below this directory + # This function gets all targets below this directory (excluding custom targets and aliases) function(get_all_targets _result _dir) get_property(_subdirs DIRECTORY "${_dir}" PROPERTY SUBDIRECTORIES) foreach(_subdir IN LISTS _subdirs) get_all_targets(${_result} "${_subdir}") endforeach() get_property(_sub_targets DIRECTORY "${_dir}" PROPERTY BUILDSYSTEM_TARGETS) - set(${_result} ${${_result}} ${_sub_targets} PARENT_SCOPE) + set(_real_targets "") + if(_sub_targets) + foreach(__target IN LISTS _sub_targets) + get_target_property(target_type ${__target} TYPE) + if(NOT target_type STREQUAL "UTILITY" AND NOT target_type STREQUAL "ALIAS") + list(APPEND _real_targets ${__target}) + endif() + endforeach() + endif() + set(${_result} ${${_result}} ${_real_targets} PARENT_SCOPE) endfunction() get_all_targets(targets "${CMAKE_CURRENT_SOURCE_DIR}") @@ -701,6 +762,156 @@ macro(qt_examples_build_end) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ${BACKUP_CMAKE_FIND_ROOT_PATH_MODE_PACKAGE}) endmacro() +function(qt_internal_add_example subdir) + # FIXME: Support building examples externally for prefix builds as well. + if(QT_WILL_INSTALL) + # Use old non-external approach + add_subdirectory(${subdir} ${ARGN}) + return() + endif() + + set(options "") + set(singleOpts NAME) + set(multiOpts "") + + cmake_parse_arguments(PARSE_ARGV 1 arg "${options}" "${singleOpts}" "${multiOpts}") + + if(NOT arg_NAME) + file(RELATIVE_PATH rel_path ${QT_EXAMPLE_BASE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}) + string(REPLACE "/" "_" arg_NAME "${rel_path}") + endif() + + if(QtBase_BINARY_DIR) + # Always use the copy in the build directory, even for prefix builds. + # We may build examples without installing, so we can't use the + # install or staging area. + set(qt_cmake_dir ${QtBase_BINARY_DIR}/lib/cmake/${QT_CMAKE_EXPORT_NAMESPACE}) + else() + # This is a per-repo build that isn't the qtbase repo, so we know that + # qtbase was found via find_package() and Qt6_DIR must be set + set(qt_cmake_dir ${${QT_CMAKE_EXPORT_NAMESPACE}_DIR}) + endif() + + set(vars_to_pass_if_defined) + set(var_defs) + if(QT_HOST_PATH OR CMAKE_CROSSCOMPILING) + # Android NDK forces CMAKE_FIND_ROOT_PATH_MODE_PACKAGE to ONLY, so we + # can't rely on this setting here making it through to the example + # project. + # TODO: We should probably leave CMAKE_FIND_ROOT_PATH_MODE_PACKAGE + # alone. It may be a leftover from earlier methods that are no + # longer used or that no longer need this. + list(APPEND var_defs + -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${qt_cmake_dir}/qt.toolchain.cmake + -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE:STRING=BOTH + ) + else() + get_filename_component(prefix_dir ${qt_cmake_dir}/../../.. ABSOLUTE) + list(PREPEND CMAKE_PREFIX_PATH ${prefix_dir}) + + # Setting CMAKE_SYSTEM_NAME affects CMAKE_CROSSCOMPILING, even if it is + # set to the same as the host, so it should only be set if it is different. + # See https://gitlab.kitware.com/cmake/cmake/-/issues/21744 + if(NOT DEFINED CMAKE_TOOLCHAIN_FILE AND + NOT CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME) + list(APPEND vars_to_pass_if_defined CMAKE_SYSTEM_NAME:STRING) + endif() + endif() + + list(APPEND vars_to_pass_if_defined + CMAKE_BUILD_TYPE:STRING + CMAKE_PREFIX_PATH:STRING + CMAKE_FIND_ROOT_PATH:STRING + CMAKE_FIND_ROOT_PATH_MODE_PACKAGE:STRING + BUILD_SHARED_LIBS:BOOL + CMAKE_OSX_ARCHITECTURES:STRING + CMAKE_OSX_DEPLOYMENT_TARGET:STRING + CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED:BOOL + CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH:BOOL + CMAKE_C_COMPILER_LAUNCHER:STRING + CMAKE_CXX_COMPILER_LAUNCHER:STRING + CMAKE_OBJC_COMPILER_LAUNCHER:STRING + CMAKE_OBJCXX_COMPILER_LAUNCHER:STRING + ) + + foreach(var_with_type IN LISTS vars_to_pass_if_defined) + string(REPLACE ":" ";" key_as_list "${var_with_type}") + list(GET key_as_list 0 var) + if(NOT DEFINED ${var}) + continue() + endif() + + # Preserve lists + string(REPLACE ";" "$<SEMICOLON>" varForGenex "${${var}}") + + list(APPEND var_defs -D${var_with_type}=${varForGenex}) + endforeach() + + + set(deps "") + list(REMOVE_DUPLICATES QT_EXAMPLE_DEPENDENCIES) + foreach(dep IN LISTS QT_EXAMPLE_DEPENDENCIES) + if(TARGET ${dep}) + list(APPEND deps ${dep}) + endif() + endforeach() + + set(independent_args) + cmake_policy(PUSH) + if(POLICY CMP0114) + set(independent_args INDEPENDENT TRUE) + cmake_policy(SET CMP0114 NEW) + endif() + + # The USES_TERMINAL_BUILD setting forces the build step to the console pool + # when using Ninja. This has two benefits: + # + # - You see build output as it is generated instead of at the end of the + # build step. + # - Only one task can use the console pool at a time, so it effectively + # serializes all example build steps, thereby preventing CPU + # over-commitment. + # + # If the loss of interactivity is not so important, one can allow CPU + # over-commitment for Ninja builds. This may result in better throughput, + # but is not allowed by default because it can make a machine almost + # unusable while a compilation is running. + set(terminal_args USES_TERMINAL_BUILD TRUE) + if(CMAKE_GENERATOR MATCHES "Ninja") + option(QT_BUILD_EXAMPLES_WITH_CPU_OVERCOMMIT + "Allow CPU over-commitment when building examples (Ninja only)" + ) + if(QT_BUILD_EXAMPLES_WITH_CPU_OVERCOMMIT) + set(terminal_args) + endif() + endif() + + ExternalProject_Add(${arg_NAME} + EXCLUDE_FROM_ALL TRUE + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${subdir} + INSTALL_COMMAND "" + TEST_COMMAND "" + DEPENDS ${deps} + CMAKE_CACHE_ARGS ${var_defs} + ${terminal_args} + ) + + # Force configure step to re-run after we configure the main project + set(reconfigure_check_file ${CMAKE_CURRENT_BINARY_DIR}/reconfigure_${arg_NAME}.txt) + file(TOUCH ${reconfigure_check_file}) + ExternalProject_Add_Step(${arg_NAME} reconfigure-check + DEPENDERS configure + DEPENDS ${reconfigure_check_file} + ${independent_args} + ) + + cmake_policy(POP) + + string(TOLOWER ${PROJECT_NAME} project_name_lower) + add_dependencies(examples_${project_name_lower} ${arg_NAME}) + +endfunction() + if ("STANDALONE_TEST" IN_LIST Qt6BuildInternals_FIND_COMPONENTS) include(${CMAKE_CURRENT_LIST_DIR}/QtStandaloneTestTemplateProject/Main.cmake) if (NOT PROJECT_VERSION_MAJOR) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a48879d447..a4fb347ba5 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,6 +1,4 @@ -# Generated from examples.pro. - -qt_examples_build_begin() +qt_examples_build_begin(EXTERNAL_BUILD) add_subdirectory(corelib) add_subdirectory(embedded) diff --git a/examples/corelib/ipc/CMakeLists.txt b/examples/corelib/ipc/CMakeLists.txt index 29a8d4f592..214fa4c553 100644 --- a/examples/corelib/ipc/CMakeLists.txt +++ b/examples/corelib/ipc/CMakeLists.txt @@ -4,9 +4,9 @@ if(NOT TARGET Qt::Widgets) return() endif() if(QT_FEATURE_sharedmemory) - add_subdirectory(sharedmemory) + qt_internal_add_example(sharedmemory) endif() if(QT_FEATURE_localserver AND TARGET Qt::Network) - add_subdirectory(localfortuneserver) - add_subdirectory(localfortuneclient) + qt_internal_add_example(localfortuneserver) + qt_internal_add_example(localfortuneclient) endif() diff --git a/examples/corelib/mimetypes/CMakeLists.txt b/examples/corelib/mimetypes/CMakeLists.txt index ac06659362..3124006aaa 100644 --- a/examples/corelib/mimetypes/CMakeLists.txt +++ b/examples/corelib/mimetypes/CMakeLists.txt @@ -1,5 +1,5 @@ # Generated from mimetypes.pro. if(TARGET Qt::Widgets) - add_subdirectory(mimetypebrowser) + qt_internal_add_example(mimetypebrowser) endif() diff --git a/examples/corelib/serialization/CMakeLists.txt b/examples/corelib/serialization/CMakeLists.txt index a64b5130d2..486f5d0c14 100644 --- a/examples/corelib/serialization/CMakeLists.txt +++ b/examples/corelib/serialization/CMakeLists.txt @@ -1,5 +1,5 @@ # Generated from serialization.pro. -add_subdirectory(cbordump) -add_subdirectory(convert) -add_subdirectory(savegame) +qt_internal_add_example(cbordump) +qt_internal_add_example(convert) +qt_internal_add_example(savegame) diff --git a/examples/corelib/threads/CMakeLists.txt b/examples/corelib/threads/CMakeLists.txt index f84700fdb4..848880d076 100644 --- a/examples/corelib/threads/CMakeLists.txt +++ b/examples/corelib/threads/CMakeLists.txt @@ -1,8 +1,8 @@ # Generated from threads.pro. -add_subdirectory(semaphores) -add_subdirectory(waitconditions) +qt_internal_add_example(semaphores) +qt_internal_add_example(waitconditions) if(TARGET Qt::Widgets) - add_subdirectory(mandelbrot) - add_subdirectory(queuedcustomtype) + qt_internal_add_example(mandelbrot) + qt_internal_add_example(queuedcustomtype) endif() diff --git a/examples/corelib/tools/CMakeLists.txt b/examples/corelib/tools/CMakeLists.txt index a9f82dfab5..27e7699f26 100644 --- a/examples/corelib/tools/CMakeLists.txt +++ b/examples/corelib/tools/CMakeLists.txt @@ -3,6 +3,6 @@ if(NOT TARGET Qt::Widgets) return() endif() -add_subdirectory(contiguouscache) -add_subdirectory(customtype) -add_subdirectory(customtypesending) +qt_internal_add_example(contiguouscache) +qt_internal_add_example(customtype) +qt_internal_add_example(customtypesending) diff --git a/examples/dbus/CMakeLists.txt b/examples/dbus/CMakeLists.txt index 065cc76022..ac941a3218 100644 --- a/examples/dbus/CMakeLists.txt +++ b/examples/dbus/CMakeLists.txt @@ -3,12 +3,12 @@ if(NOT TARGET Qt::DBus) return() endif() -add_subdirectory(listnames) -add_subdirectory(pingpong) +qt_internal_add_example(listnames) +qt_internal_add_example(pingpong) if(QT_FEATURE_process) - add_subdirectory(complexpingpong) + qt_internal_add_example(complexpingpong) endif() if(TARGET Qt::Widgets) - add_subdirectory(chat) + qt_internal_add_example(chat) add_subdirectory(remotecontrolledcar) endif() diff --git a/examples/dbus/remotecontrolledcar/CMakeLists.txt b/examples/dbus/remotecontrolledcar/CMakeLists.txt index 4d41919962..86f9f03ccc 100644 --- a/examples/dbus/remotecontrolledcar/CMakeLists.txt +++ b/examples/dbus/remotecontrolledcar/CMakeLists.txt @@ -1,4 +1,4 @@ # Generated from remotecontrolledcar.pro. -add_subdirectory(car) -add_subdirectory(controller) +qt_internal_add_example(car) +qt_internal_add_example(controller) diff --git a/examples/embedded/CMakeLists.txt b/examples/embedded/CMakeLists.txt index 84292edccc..5f4bcc5628 100644 --- a/examples/embedded/CMakeLists.txt +++ b/examples/embedded/CMakeLists.txt @@ -3,9 +3,9 @@ if(NOT TARGET Qt::Gui OR (NOT embedded AND NOT x11)) return() endif() -add_subdirectory(styleexample) -add_subdirectory(raycasting) -add_subdirectory(flickable) -add_subdirectory(digiflip) -add_subdirectory(lightmaps) -add_subdirectory(flightinfo) +qt_internal_add_example(styleexample) +qt_internal_add_example(raycasting) +qt_internal_add_example(flickable) +qt_internal_add_example(digiflip) +qt_internal_add_example(lightmaps) +qt_internal_add_example(flightinfo) diff --git a/examples/gui/CMakeLists.txt b/examples/gui/CMakeLists.txt index 7631777ef4..d952899f55 100644 --- a/examples/gui/CMakeLists.txt +++ b/examples/gui/CMakeLists.txt @@ -3,5 +3,5 @@ if(NOT TARGET Qt::Gui) return() endif() -add_subdirectory(analogclock) -add_subdirectory(rasterwindow) +qt_internal_add_example(analogclock) +qt_internal_add_example(rasterwindow) diff --git a/examples/network/CMakeLists.txt b/examples/network/CMakeLists.txt index c28c951b69..fd61e75aef 100644 --- a/examples/network/CMakeLists.txt +++ b/examples/network/CMakeLists.txt @@ -3,36 +3,36 @@ if(NOT TARGET Qt::Network) return() endif() -add_subdirectory(download) -add_subdirectory(downloadmanager) +qt_internal_add_example(download) +qt_internal_add_example(downloadmanager) if(NOT INTEGRITY) - add_subdirectory(dnslookup) + qt_internal_add_example(dnslookup) endif() if(TARGET Qt::Widgets) - add_subdirectory(blockingfortuneclient) - add_subdirectory(broadcastreceiver) - add_subdirectory(broadcastsender) - add_subdirectory(http) - add_subdirectory(loopback) - add_subdirectory(threadedfortuneserver) - add_subdirectory(googlesuggest) - add_subdirectory(torrent) - add_subdirectory(multicastreceiver) - add_subdirectory(multicastsender) - add_subdirectory(fortuneclient) - add_subdirectory(fortuneserver) + qt_internal_add_example(blockingfortuneclient) + qt_internal_add_example(broadcastreceiver) + qt_internal_add_example(broadcastsender) + qt_internal_add_example(http) + qt_internal_add_example(loopback) + qt_internal_add_example(threadedfortuneserver) + qt_internal_add_example(googlesuggest) + qt_internal_add_example(torrent) + qt_internal_add_example(multicastreceiver) + qt_internal_add_example(multicastsender) + qt_internal_add_example(fortuneclient) + qt_internal_add_example(fortuneserver) endif() if(QT_FEATURE_processenvironment AND TARGET Qt::Widgets) - add_subdirectory(network-chat) + qt_internal_add_example(network-chat) endif() if(QT_FEATURE_ssl AND TARGET Qt::Widgets) - add_subdirectory(securesocketclient) + qt_internal_add_example(securesocketclient) endif() if(QT_FEATURE_dtls AND TARGET Qt::Widgets) - add_subdirectory(secureudpserver) - add_subdirectory(secureudpclient) + qt_internal_add_example(secureudpserver) + qt_internal_add_example(secureudpclient) endif() if(QT_FEATURE_sctp AND TARGET Qt::Widgets) - add_subdirectory(multistreamserver) - add_subdirectory(multistreamclient) + qt_internal_add_example(multistreamserver) + qt_internal_add_example(multistreamclient) endif() diff --git a/examples/opengl/CMakeLists.txt b/examples/opengl/CMakeLists.txt index 3d5b055b1a..af1792edd0 100644 --- a/examples/opengl/CMakeLists.txt +++ b/examples/opengl/CMakeLists.txt @@ -1,17 +1,17 @@ # Generated from opengl.pro. -add_subdirectory(hellowindow) -add_subdirectory(paintedwindow) -add_subdirectory(openglwindow) -add_subdirectory(qopenglwindow) +qt_internal_add_example(hellowindow) +qt_internal_add_example(paintedwindow) +qt_internal_add_example(openglwindow) +qt_internal_add_example(qopenglwindow) if(TARGET Qt::Widgets) - add_subdirectory(contextinfo) - add_subdirectory(threadedqopenglwidget) - add_subdirectory(2dpainting) - add_subdirectory(hellogl2) - add_subdirectory(qopenglwidget) - add_subdirectory(cube) - add_subdirectory(textures) - add_subdirectory(hellogles3) - add_subdirectory(computegles31) + qt_internal_add_example(contextinfo) + qt_internal_add_example(threadedqopenglwidget) + qt_internal_add_example(2dpainting) + qt_internal_add_example(hellogl2) + qt_internal_add_example(qopenglwidget) + qt_internal_add_example(cube) + qt_internal_add_example(textures) + qt_internal_add_example(hellogles3) + qt_internal_add_example(computegles31) endif() diff --git a/examples/qpa/CMakeLists.txt b/examples/qpa/CMakeLists.txt index 6768aa052d..a5043f2407 100644 --- a/examples/qpa/CMakeLists.txt +++ b/examples/qpa/CMakeLists.txt @@ -3,5 +3,5 @@ if(NOT TARGET Qt::Gui) return() endif() -add_subdirectory(windows) -add_subdirectory(qrasterwindow) +qt_internal_add_example(windows) +qt_internal_add_example(qrasterwindow) diff --git a/examples/qtconcurrent/CMakeLists.txt b/examples/qtconcurrent/CMakeLists.txt index ed1be7ec4d..0cf2bee39c 100644 --- a/examples/qtconcurrent/CMakeLists.txt +++ b/examples/qtconcurrent/CMakeLists.txt @@ -4,11 +4,11 @@ if(NOT TARGET Qt::Concurrent) return() endif() if(TARGET Qt::Widgets) - add_subdirectory(imagescaling) - add_subdirectory(progressdialog) - add_subdirectory(runfunction) - add_subdirectory(wordcount) + qt_internal_add_example(imagescaling) + qt_internal_add_example(progressdialog) + qt_internal_add_example(runfunction) + qt_internal_add_example(wordcount) endif() if(TARGET Qt::Gui) - add_subdirectory(map) + qt_internal_add_example(map) endif() diff --git a/examples/qtestlib/CMakeLists.txt b/examples/qtestlib/CMakeLists.txt index a3ffcd2481..84fd46acf9 100644 --- a/examples/qtestlib/CMakeLists.txt +++ b/examples/qtestlib/CMakeLists.txt @@ -3,8 +3,8 @@ if(NOT TARGET Qt::Widgets) return() endif() -add_subdirectory(tutorial1) -add_subdirectory(tutorial2) -add_subdirectory(tutorial3) -add_subdirectory(tutorial4) -add_subdirectory(tutorial5) +qt_internal_add_example(tutorial1) +qt_internal_add_example(tutorial2) +qt_internal_add_example(tutorial3) +qt_internal_add_example(tutorial4) +qt_internal_add_example(tutorial5) diff --git a/examples/sql/CMakeLists.txt b/examples/sql/CMakeLists.txt index e54fc0860f..b45fd6f7cc 100644 --- a/examples/sql/CMakeLists.txt +++ b/examples/sql/CMakeLists.txt @@ -3,17 +3,17 @@ if(NOT TARGET Qt::Widgets) return() endif() -add_subdirectory(books) -add_subdirectory(drilldown) -add_subdirectory(cachedtable) -add_subdirectory(querymodel) -add_subdirectory(relationaltablemodel) -add_subdirectory(sqlwidgetmapper) -add_subdirectory(tablemodel) +qt_internal_add_example(books) +qt_internal_add_example(drilldown) +qt_internal_add_example(cachedtable) +qt_internal_add_example(querymodel) +qt_internal_add_example(relationaltablemodel) +qt_internal_add_example(sqlwidgetmapper) +qt_internal_add_example(tablemodel) if(TARGET Qt::Xml) - add_subdirectory(masterdetail) + qt_internal_add_example(masterdetail) endif() if(NOT CMAKE_CROSSCOMPILING) # special case - add_subdirectory(sqlbrowser) + qt_internal_add_example(sqlbrowser) endif() diff --git a/examples/vulkan/CMakeLists.txt b/examples/vulkan/CMakeLists.txt index b00a40447a..2320faaeb3 100644 --- a/examples/vulkan/CMakeLists.txt +++ b/examples/vulkan/CMakeLists.txt @@ -1,11 +1,11 @@ # Generated from vulkan.pro. -add_subdirectory(hellovulkanwindow) -add_subdirectory(hellovulkantriangle) -add_subdirectory(hellovulkantexture) +qt_internal_add_example(hellovulkanwindow) +qt_internal_add_example(hellovulkantriangle) +qt_internal_add_example(hellovulkantexture) if(TARGET Qt::Widgets) - add_subdirectory(hellovulkanwidget) + qt_internal_add_example(hellovulkanwidget) endif() if(TARGET Qt::Concurrent AND TARGET Qt::Widgets) - add_subdirectory(hellovulkancubes) + qt_internal_add_example(hellovulkancubes) endif() diff --git a/examples/widgets/CMakeLists.txt b/examples/widgets/CMakeLists.txt index 5026a40a80..753e3b8499 100644 --- a/examples/widgets/CMakeLists.txt +++ b/examples/widgets/CMakeLists.txt @@ -9,7 +9,7 @@ endif() add_subdirectory(desktop) add_subdirectory(dialogs) add_subdirectory(effects) -add_subdirectory(gallery) +qt_internal_add_example(gallery) add_subdirectory(gestures) add_subdirectory(graphicsview) add_subdirectory(itemviews) @@ -28,5 +28,5 @@ if(QT_FEATURE_cursor) # special case add_subdirectory(mainwindows) endif() if(QT_FEATURE_opengl AND TARGET Qt::Gui) - add_subdirectory(windowcontainer) + qt_internal_add_example(windowcontainer) endif() diff --git a/examples/widgets/animation/CMakeLists.txt b/examples/widgets/animation/CMakeLists.txt index e3382787aa..70f484a778 100644 --- a/examples/widgets/animation/CMakeLists.txt +++ b/examples/widgets/animation/CMakeLists.txt @@ -1,3 +1,3 @@ # Generated from animation.pro. -add_subdirectory(easing) +qt_internal_add_example(easing) diff --git a/examples/widgets/desktop/CMakeLists.txt b/examples/widgets/desktop/CMakeLists.txt index a50d3c2f0a..b317205c43 100644 --- a/examples/widgets/desktop/CMakeLists.txt +++ b/examples/widgets/desktop/CMakeLists.txt @@ -1,4 +1,4 @@ # Generated from desktop.pro. -add_subdirectory(screenshot) -add_subdirectory(systray) +qt_internal_add_example(screenshot) +qt_internal_add_example(systray) diff --git a/examples/widgets/dialogs/CMakeLists.txt b/examples/widgets/dialogs/CMakeLists.txt index 354424bf1f..32f8bc29a8 100644 --- a/examples/widgets/dialogs/CMakeLists.txt +++ b/examples/widgets/dialogs/CMakeLists.txt @@ -1,13 +1,13 @@ # Generated from dialogs.pro. if(QT_FEATURE_wizard) - add_subdirectory(classwizard) - add_subdirectory(trivialwizard) + qt_internal_add_example(classwizard) + qt_internal_add_example(trivialwizard) endif() -add_subdirectory(extension) -add_subdirectory(findfiles) -add_subdirectory(standarddialogs) -add_subdirectory(tabdialog) +qt_internal_add_example(extension) +qt_internal_add_example(findfiles) +qt_internal_add_example(standarddialogs) +qt_internal_add_example(tabdialog) if(QT_FEATURE_wizard AND TARGET Qt::PrintSupport) - add_subdirectory(licensewizard) + qt_internal_add_example(licensewizard) endif() diff --git a/examples/widgets/draganddrop/CMakeLists.txt b/examples/widgets/draganddrop/CMakeLists.txt index fbad523a73..87ba702aca 100644 --- a/examples/widgets/draganddrop/CMakeLists.txt +++ b/examples/widgets/draganddrop/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from draganddrop.pro. -add_subdirectory(draggableicons) -add_subdirectory(draggabletext) -add_subdirectory(dropsite) -add_subdirectory(fridgemagnets) -add_subdirectory(puzzle) +qt_internal_add_example(draggableicons) +qt_internal_add_example(draggabletext) +qt_internal_add_example(dropsite) +qt_internal_add_example(fridgemagnets) +qt_internal_add_example(puzzle) diff --git a/examples/widgets/effects/CMakeLists.txt b/examples/widgets/effects/CMakeLists.txt index 6e8a892de1..1f62945f76 100644 --- a/examples/widgets/effects/CMakeLists.txt +++ b/examples/widgets/effects/CMakeLists.txt @@ -1,4 +1,4 @@ # Generated from effects.pro. -add_subdirectory(blurpicker) -add_subdirectory(fademessage) +qt_internal_add_example(blurpicker) +qt_internal_add_example(fademessage) diff --git a/examples/widgets/gestures/CMakeLists.txt b/examples/widgets/gestures/CMakeLists.txt index eb02ee41a9..34fb6d0202 100644 --- a/examples/widgets/gestures/CMakeLists.txt +++ b/examples/widgets/gestures/CMakeLists.txt @@ -3,4 +3,4 @@ if(NOT TARGET Qt::Widgets) return() endif() -add_subdirectory(imagegestures) +qt_internal_add_example(imagegestures) diff --git a/examples/widgets/graphicsview/CMakeLists.txt b/examples/widgets/graphicsview/CMakeLists.txt index a60ba190ef..961807eb55 100644 --- a/examples/widgets/graphicsview/CMakeLists.txt +++ b/examples/widgets/graphicsview/CMakeLists.txt @@ -1,15 +1,15 @@ # Generated from graphicsview.pro. -add_subdirectory(chip) -add_subdirectory(elasticnodes) -add_subdirectory(embeddeddialogs) -add_subdirectory(collidingmice) -add_subdirectory(basicgraphicslayouts) -add_subdirectory(diagramscene) -add_subdirectory(flowlayout) -add_subdirectory(anchorlayout) -add_subdirectory(simpleanchorlayout) -add_subdirectory(weatheranchorlayout) +qt_internal_add_example(chip) +qt_internal_add_example(elasticnodes) +qt_internal_add_example(embeddeddialogs) +qt_internal_add_example(collidingmice) +qt_internal_add_example(basicgraphicslayouts) +qt_internal_add_example(diagramscene) +qt_internal_add_example(flowlayout) +qt_internal_add_example(anchorlayout) +qt_internal_add_example(simpleanchorlayout) +qt_internal_add_example(weatheranchorlayout) if(QT_FEATURE_cursor AND QT_FEATURE_draganddrop) - add_subdirectory(dragdroprobot) + qt_internal_add_example(dragdroprobot) endif() diff --git a/examples/widgets/itemviews/CMakeLists.txt b/examples/widgets/itemviews/CMakeLists.txt index 96f03a2e61..10d77c43c8 100644 --- a/examples/widgets/itemviews/CMakeLists.txt +++ b/examples/widgets/itemviews/CMakeLists.txt @@ -1,27 +1,27 @@ # Generated from itemviews.pro. -add_subdirectory(addressbook) -add_subdirectory(basicsortfiltermodel) -add_subdirectory(chart) -add_subdirectory(coloreditorfactory) -add_subdirectory(combowidgetmapper) -add_subdirectory(customsortfiltermodel) -add_subdirectory(dirview) -add_subdirectory(editabletreemodel) -add_subdirectory(fetchmore) -add_subdirectory(flattreeview) -add_subdirectory(frozencolumn) -add_subdirectory(interview) -add_subdirectory(pixelator) -add_subdirectory(simpletreemodel) -add_subdirectory(simplewidgetmapper) -add_subdirectory(spinboxdelegate) -add_subdirectory(spreadsheet) -add_subdirectory(stardelegate) -add_subdirectory(storageview) +qt_internal_add_example(addressbook) +qt_internal_add_example(basicsortfiltermodel) +qt_internal_add_example(chart) +qt_internal_add_example(coloreditorfactory) +qt_internal_add_example(combowidgetmapper) +qt_internal_add_example(customsortfiltermodel) +qt_internal_add_example(dirview) +qt_internal_add_example(editabletreemodel) +qt_internal_add_example(fetchmore) +qt_internal_add_example(flattreeview) +qt_internal_add_example(frozencolumn) +qt_internal_add_example(interview) +qt_internal_add_example(pixelator) +qt_internal_add_example(simpletreemodel) +qt_internal_add_example(simplewidgetmapper) +qt_internal_add_example(spinboxdelegate) +qt_internal_add_example(spreadsheet) +qt_internal_add_example(stardelegate) +qt_internal_add_example(storageview) if(QT_FEATURE_draganddrop) - add_subdirectory(puzzle) + qt_internal_add_example(puzzle) endif() if(TARGET Qt::Xml) - add_subdirectory(simpledommodel) + qt_internal_add_example(simpledommodel) endif() diff --git a/examples/widgets/layouts/CMakeLists.txt b/examples/widgets/layouts/CMakeLists.txt index eaca669248..656b602650 100644 --- a/examples/widgets/layouts/CMakeLists.txt +++ b/examples/widgets/layouts/CMakeLists.txt @@ -1,6 +1,6 @@ # Generated from layouts.pro. -add_subdirectory(basiclayouts) -add_subdirectory(borderlayout) -add_subdirectory(dynamiclayouts) -add_subdirectory(flowlayout) +qt_internal_add_example(basiclayouts) +qt_internal_add_example(borderlayout) +qt_internal_add_example(dynamiclayouts) +qt_internal_add_example(flowlayout) diff --git a/examples/widgets/mainwindows/CMakeLists.txt b/examples/widgets/mainwindows/CMakeLists.txt index 8bb5f52f92..ba87029ef8 100644 --- a/examples/widgets/mainwindows/CMakeLists.txt +++ b/examples/widgets/mainwindows/CMakeLists.txt @@ -1,8 +1,8 @@ # Generated from mainwindows.pro. -add_subdirectory(application) -add_subdirectory(dockwidgets) -add_subdirectory(mainwindow) -add_subdirectory(mdi) -add_subdirectory(menus) -add_subdirectory(sdi) +qt_internal_add_example(application) +qt_internal_add_example(dockwidgets) +qt_internal_add_example(mainwindow) +qt_internal_add_example(mdi) +qt_internal_add_example(menus) +qt_internal_add_example(sdi) diff --git a/examples/widgets/painting/CMakeLists.txt b/examples/widgets/painting/CMakeLists.txt index 8a106982cf..40ebafdc31 100644 --- a/examples/widgets/painting/CMakeLists.txt +++ b/examples/widgets/painting/CMakeLists.txt @@ -1,14 +1,14 @@ # Generated from painting.pro. -add_subdirectory(shared) # special case -add_subdirectory(basicdrawing) -add_subdirectory(concentriccircles) -add_subdirectory(affine) -# add_subdirectory(composition) # special case FIXME: Seems buggy wrt. usesOpenGL function -add_subdirectory(deform) -add_subdirectory(gradients) -add_subdirectory(pathstroke) -add_subdirectory(imagecomposition) -add_subdirectory(painterpaths) -add_subdirectory(transformations) -add_subdirectory(fontsampler) +#add_subdirectory(shared) # special case pulled in by other subdirs as needed +qt_internal_add_example(basicdrawing) +qt_internal_add_example(concentriccircles) +qt_internal_add_example(affine) +# qt_internal_add_example(composition) # special case FIXME: Seems buggy wrt. usesOpenGL function +qt_internal_add_example(deform) +qt_internal_add_example(gradients) +qt_internal_add_example(pathstroke) +qt_internal_add_example(imagecomposition) +qt_internal_add_example(painterpaths) +qt_internal_add_example(transformations) +qt_internal_add_example(fontsampler) diff --git a/examples/widgets/richtext/CMakeLists.txt b/examples/widgets/richtext/CMakeLists.txt index adb98e38f9..86bbcccea5 100644 --- a/examples/widgets/richtext/CMakeLists.txt +++ b/examples/widgets/richtext/CMakeLists.txt @@ -1,6 +1,6 @@ # Generated from richtext.pro. -add_subdirectory(calendar) -add_subdirectory(orderform) -add_subdirectory(syntaxhighlighter) -add_subdirectory(textedit) +qt_internal_add_example(calendar) +qt_internal_add_example(orderform) +qt_internal_add_example(syntaxhighlighter) +qt_internal_add_example(textedit) diff --git a/examples/widgets/scroller/CMakeLists.txt b/examples/widgets/scroller/CMakeLists.txt index f663cd9890..37ee7ea08f 100644 --- a/examples/widgets/scroller/CMakeLists.txt +++ b/examples/widgets/scroller/CMakeLists.txt @@ -1,3 +1,3 @@ # Generated from scroller.pro. -add_subdirectory(graphicsview) +qt_internal_add_example(graphicsview) diff --git a/examples/widgets/tools/CMakeLists.txt b/examples/widgets/tools/CMakeLists.txt index 72bc4cc44b..0056518f1e 100644 --- a/examples/widgets/tools/CMakeLists.txt +++ b/examples/widgets/tools/CMakeLists.txt @@ -1,22 +1,22 @@ # Generated from tools.pro. -add_subdirectory(completer) -add_subdirectory(customcompleter) +qt_internal_add_example(completer) +qt_internal_add_example(customcompleter) if(QT_FEATURE_translation) # special case - add_subdirectory(i18n) + qt_internal_add_example(i18n) endif() -add_subdirectory(regularexpression) -add_subdirectory(settingseditor) -add_subdirectory(styleplugin) -add_subdirectory(treemodelcompleter) -add_subdirectory(undo) -add_subdirectory(undoframework) +qt_internal_add_example(regularexpression) +qt_internal_add_example(settingseditor) +qt_internal_add_example(styleplugin) +qt_internal_add_example(treemodelcompleter) +qt_internal_add_example(undo) +qt_internal_add_example(undoframework) if(QT_FEATURE_library) # special case add_subdirectory(echoplugin) # special case begin if(QT_FEATURE_inputdialog) - add_subdirectory(plugandpaint) + qt_internal_add_example(plugandpaint) endif() # special case end endif() diff --git a/examples/widgets/tools/echoplugin/CMakeLists.txt b/examples/widgets/tools/echoplugin/CMakeLists.txt index b848e08e72..380cfcae8e 100644 --- a/examples/widgets/tools/echoplugin/CMakeLists.txt +++ b/examples/widgets/tools/echoplugin/CMakeLists.txt @@ -1,4 +1,4 @@ # Generated from echoplugin.pro. -add_subdirectory(echowindow) -add_subdirectory(plugin) +qt_internal_add_example(echowindow) +qt_internal_add_example(plugin) diff --git a/examples/widgets/touch/CMakeLists.txt b/examples/widgets/touch/CMakeLists.txt index d2c3152ad8..ca6ef7fcb8 100644 --- a/examples/widgets/touch/CMakeLists.txt +++ b/examples/widgets/touch/CMakeLists.txt @@ -3,7 +3,7 @@ if(NOT TARGET Qt::Widgets) return() endif() -add_subdirectory(pinchzoom) -add_subdirectory(fingerpaint) -add_subdirectory(knobs) -add_subdirectory(dials) +qt_internal_add_example(pinchzoom) +qt_internal_add_example(fingerpaint) +qt_internal_add_example(knobs) +qt_internal_add_example(dials) diff --git a/examples/widgets/tutorials/CMakeLists.txt b/examples/widgets/tutorials/CMakeLists.txt index c2fa4a81d7..733eb42151 100644 --- a/examples/widgets/tutorials/CMakeLists.txt +++ b/examples/widgets/tutorials/CMakeLists.txt @@ -4,4 +4,4 @@ add_subdirectory(addressbook) add_subdirectory(widgets) add_subdirectory(modelview) add_subdirectory(gettingStarted) -add_subdirectory(notepad) +qt_internal_add_example(notepad) diff --git a/examples/widgets/tutorials/addressbook/CMakeLists.txt b/examples/widgets/tutorials/addressbook/CMakeLists.txt index a8823d059a..cb00cbc084 100644 --- a/examples/widgets/tutorials/addressbook/CMakeLists.txt +++ b/examples/widgets/tutorials/addressbook/CMakeLists.txt @@ -1,9 +1,9 @@ # Generated from addressbook.pro. -add_subdirectory(part1) -add_subdirectory(part2) -add_subdirectory(part3) -add_subdirectory(part4) -add_subdirectory(part5) -add_subdirectory(part6) -add_subdirectory(part7) +qt_internal_add_example(part1) +qt_internal_add_example(part2) +qt_internal_add_example(part3) +qt_internal_add_example(part4) +qt_internal_add_example(part5) +qt_internal_add_example(part6) +qt_internal_add_example(part7) diff --git a/examples/widgets/tutorials/gettingStarted/CMakeLists.txt b/examples/widgets/tutorials/gettingStarted/CMakeLists.txt index 2aa8163029..42cac47b96 100644 --- a/examples/widgets/tutorials/gettingStarted/CMakeLists.txt +++ b/examples/widgets/tutorials/gettingStarted/CMakeLists.txt @@ -1,2 +1 @@ -# Generated from gettingStarted.pro. - +add_subdirectory(gsQt) diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/CMakeLists.txt b/examples/widgets/tutorials/gettingStarted/gsQt/CMakeLists.txt index 7a9ade8511..8302fd7598 100644 --- a/examples/widgets/tutorials/gettingStarted/gsQt/CMakeLists.txt +++ b/examples/widgets/tutorials/gettingStarted/gsQt/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from gsqt.pro. -add_subdirectory(part1) -add_subdirectory(part2) -add_subdirectory(part3) -add_subdirectory(part4) -add_subdirectory(part5) +qt_internal_add_example(part1) +qt_internal_add_example(part2) +qt_internal_add_example(part3) +qt_internal_add_example(part4) +qt_internal_add_example(part5) diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part1/CMakeLists.txt b/examples/widgets/tutorials/gettingStarted/gsQt/part1/CMakeLists.txt index e2877a26ba..13ed19067b 100644 --- a/examples/widgets/tutorials/gettingStarted/gsQt/part1/CMakeLists.txt +++ b/examples/widgets/tutorials/gettingStarted/gsQt/part1/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from part1.pro. cmake_minimum_required(VERSION 3.14) -project(part1 LANGUAGES CXX) +project(getting_started_part1 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -19,20 +19,20 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS Widgets) -qt_add_executable(part1 +qt_add_executable(getting_started_part1 main.cpp ) -set_target_properties(part1 PROPERTIES +set_target_properties(getting_started_part1 PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -target_link_libraries(part1 PUBLIC +target_link_libraries(getting_started_part1 PUBLIC Qt::Core Qt::Gui Qt::Widgets ) -install(TARGETS part1 +install(TARGETS getting_started_part1 RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part2/CMakeLists.txt b/examples/widgets/tutorials/gettingStarted/gsQt/part2/CMakeLists.txt index 65a3ff3539..4f72a9ede8 100644 --- a/examples/widgets/tutorials/gettingStarted/gsQt/part2/CMakeLists.txt +++ b/examples/widgets/tutorials/gettingStarted/gsQt/part2/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from part2.pro. cmake_minimum_required(VERSION 3.14) -project(part2 LANGUAGES CXX) +project(getting_started_part2 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -19,20 +19,20 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS Widgets) -qt_add_executable(part2 +qt_add_executable(getting_started_part2 main.cpp ) -set_target_properties(part2 PROPERTIES +set_target_properties(getting_started_part2 PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -target_link_libraries(part2 PUBLIC +target_link_libraries(getting_started_part2 PUBLIC Qt::Core Qt::Gui Qt::Widgets ) -install(TARGETS part2 +install(TARGETS getting_started_part2 RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part3/CMakeLists.txt b/examples/widgets/tutorials/gettingStarted/gsQt/part3/CMakeLists.txt index 4a9b79b00b..d8a72abd59 100644 --- a/examples/widgets/tutorials/gettingStarted/gsQt/part3/CMakeLists.txt +++ b/examples/widgets/tutorials/gettingStarted/gsQt/part3/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from part3.pro. cmake_minimum_required(VERSION 3.14) -project(part3 LANGUAGES CXX) +project(getting_started_part3 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -19,20 +19,20 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS Widgets) -qt_add_executable(part3 +qt_add_executable(getting_started_part3 main.cpp ) -set_target_properties(part3 PROPERTIES +set_target_properties(getting_started_part3 PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -target_link_libraries(part3 PUBLIC +target_link_libraries(getting_started_part3 PUBLIC Qt::Core Qt::Gui Qt::Widgets ) -install(TARGETS part3 +install(TARGETS getting_started_part3 RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part4/CMakeLists.txt b/examples/widgets/tutorials/gettingStarted/gsQt/part4/CMakeLists.txt index b1b224c70d..3e42635ae4 100644 --- a/examples/widgets/tutorials/gettingStarted/gsQt/part4/CMakeLists.txt +++ b/examples/widgets/tutorials/gettingStarted/gsQt/part4/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from part4.pro. cmake_minimum_required(VERSION 3.14) -project(part4 LANGUAGES CXX) +project(getting_started_part4 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -19,20 +19,20 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS Widgets) -qt_add_executable(part4 +qt_add_executable(getting_started_part4 main.cpp ) -set_target_properties(part4 PROPERTIES +set_target_properties(getting_started_part4 PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -target_link_libraries(part4 PUBLIC +target_link_libraries(getting_started_part4 PUBLIC Qt::Core Qt::Gui Qt::Widgets ) -install(TARGETS part4 +install(TARGETS getting_started_part4 RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part5/CMakeLists.txt b/examples/widgets/tutorials/gettingStarted/gsQt/part5/CMakeLists.txt index 182c2e9a48..c92f60d535 100644 --- a/examples/widgets/tutorials/gettingStarted/gsQt/part5/CMakeLists.txt +++ b/examples/widgets/tutorials/gettingStarted/gsQt/part5/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from part5.pro. cmake_minimum_required(VERSION 3.14) -project(part5 LANGUAGES CXX) +project(getting_started_part5 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -19,20 +19,20 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS Widgets) -qt_add_executable(part5 +qt_add_executable(getting_started_part5 main.cpp ) -set_target_properties(part5 PROPERTIES +set_target_properties(getting_started_part5 PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -target_link_libraries(part5 PUBLIC +target_link_libraries(getting_started_part5 PUBLIC Qt::Core Qt::Gui Qt::Widgets ) -install(TARGETS part5 +install(TARGETS getting_started_part5 RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/widgets/tutorials/modelview/CMakeLists.txt b/examples/widgets/tutorials/modelview/CMakeLists.txt index 10f2cf6ecf..49ca672e48 100644 --- a/examples/widgets/tutorials/modelview/CMakeLists.txt +++ b/examples/widgets/tutorials/modelview/CMakeLists.txt @@ -1,9 +1,9 @@ # Generated from modelview.pro. -add_subdirectory(1_readonly) -add_subdirectory(2_formatting) -add_subdirectory(3_changingmodel) -add_subdirectory(4_headers) -add_subdirectory(5_edit) -add_subdirectory(6_treeview) -add_subdirectory(7_selections) +qt_internal_add_example(1_readonly) +qt_internal_add_example(2_formatting) +qt_internal_add_example(3_changingmodel) +qt_internal_add_example(4_headers) +qt_internal_add_example(5_edit) +qt_internal_add_example(6_treeview) +qt_internal_add_example(7_selections) diff --git a/examples/widgets/tutorials/widgets/CMakeLists.txt b/examples/widgets/tutorials/widgets/CMakeLists.txt index 1f4afee780..fcf0ed9ddd 100644 --- a/examples/widgets/tutorials/widgets/CMakeLists.txt +++ b/examples/widgets/tutorials/widgets/CMakeLists.txt @@ -1,6 +1,6 @@ # Generated from widgets.pro. -add_subdirectory(toplevel) -add_subdirectory(childwidget) -add_subdirectory(windowlayout) -add_subdirectory(nestedlayouts) +qt_internal_add_example(toplevel) +qt_internal_add_example(childwidget) +qt_internal_add_example(windowlayout) +qt_internal_add_example(nestedlayouts) diff --git a/examples/widgets/widgets/CMakeLists.txt b/examples/widgets/widgets/CMakeLists.txt index 8daf6a69ae..34d3d28b67 100644 --- a/examples/widgets/widgets/CMakeLists.txt +++ b/examples/widgets/widgets/CMakeLists.txt @@ -1,27 +1,27 @@ # Generated from widgets.pro. -add_subdirectory(analogclock) -add_subdirectory(calculator) -add_subdirectory(calendarwidget) -add_subdirectory(charactermap) -add_subdirectory(codeeditor) -add_subdirectory(digitalclock) -add_subdirectory(elidedlabel) -add_subdirectory(groupbox) -add_subdirectory(icons) -add_subdirectory(imageviewer) -add_subdirectory(lineedits) -add_subdirectory(movie) -add_subdirectory(mousebuttons) -add_subdirectory(scribble) -add_subdirectory(shapedclock) -add_subdirectory(sliders) -add_subdirectory(spinboxes) -add_subdirectory(styles) -add_subdirectory(stylesheet) -add_subdirectory(tablet) -add_subdirectory(tetrix) -add_subdirectory(tooltips) -add_subdirectory(validators) -add_subdirectory(wiggly) -add_subdirectory(windowflags) +qt_internal_add_example(analogclock) +qt_internal_add_example(calculator) +qt_internal_add_example(calendarwidget) +qt_internal_add_example(charactermap) +qt_internal_add_example(codeeditor) +qt_internal_add_example(digitalclock) +qt_internal_add_example(elidedlabel) +qt_internal_add_example(groupbox) +qt_internal_add_example(icons) +qt_internal_add_example(imageviewer) +qt_internal_add_example(lineedits) +qt_internal_add_example(movie) +qt_internal_add_example(mousebuttons) +qt_internal_add_example(scribble) +qt_internal_add_example(shapedclock) +qt_internal_add_example(sliders) +qt_internal_add_example(spinboxes) +qt_internal_add_example(styles) +qt_internal_add_example(stylesheet) +qt_internal_add_example(tablet) +qt_internal_add_example(tetrix) +qt_internal_add_example(tooltips) +qt_internal_add_example(validators) +qt_internal_add_example(wiggly) +qt_internal_add_example(windowflags) diff --git a/examples/xml/CMakeLists.txt b/examples/xml/CMakeLists.txt index 8e145b4ccb..f9fcacb31c 100644 --- a/examples/xml/CMakeLists.txt +++ b/examples/xml/CMakeLists.txt @@ -1,11 +1,11 @@ # Generated from xml.pro. -add_subdirectory(htmlinfo) -add_subdirectory(xmlstreamlint) +qt_internal_add_example(htmlinfo) +qt_internal_add_example(xmlstreamlint) if(TARGET Qt::Widgets) - add_subdirectory(dombookmarks) - add_subdirectory(streambookmarks) + qt_internal_add_example(dombookmarks) + qt_internal_add_example(streambookmarks) endif() if(TARGET Qt::Network AND TARGET Qt::Widgets) - add_subdirectory(rsslisting) + qt_internal_add_example(rsslisting) endif() |