summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/QtBuildInternals/QtBuildInternalsConfig.cmake31
-rw-r--r--examples/CMakeLists.txt38
2 files changed, 33 insertions, 36 deletions
diff --git a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
index 79186ac046..6a1202ac2e 100644
--- a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
+++ b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
@@ -96,3 +96,34 @@ macro(qt_build_tests)
add_subdirectory(benchmarks)
endif()
endmacro()
+
+macro(qt_examples_build_begin)
+ # It is part of a Qt build => Use the CMake config files from the binary dir
+ list(APPEND CMAKE_PREFIX_PATH "${CMAKE_BINARY_DIR}")
+ # Also make sure the CMake config files do not recreate the already-existing targets
+ set(QT_NO_CREATE_TARGETS TRUE)
+ set(BACKUP_CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ${CMAKE_FIND_ROOT_PATH_MODE_PACKAGE})
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE "BOTH")
+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.
+
+ # This function gets all targets below this directory
+ 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)
+ endfunction()
+
+ get_all_targets(targets "${CMAKE_CURRENT_SOURCE_DIR}")
+
+ foreach(target ${targets})
+ qt_autogen_tools(${target} ENABLE_AUTOGEN_TOOLS "moc" "uic" "rcc")
+ endforeach()
+
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ${BACKUP_CMAKE_FIND_ROOT_PATH_MODE_PACKAGE})
+endmacro()
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 5f61a098bd..c9abbd8ec9 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -1,21 +1,6 @@
# special case begin
-cmake_minimum_required(VERSION 3.14.0)
+qt_examples_build_begin()
-project(QtBaseExamples LANGUAGES CXX C ASM)
-
-# Check whether this project is built as part of a Qt build
-if (CMAKE_PROJECT_NAME STREQUAL "QtBaseExamples")
- set(QT_STANDALONE_EXAMPLES_BUILD TRUE)
-endif()
-
-if (NOT QT_STANDALONE_EXAMPLES_BUILD)
- # It is part of a Qt build => Use the CMake config files from the binary dir
- list(APPEND CMAKE_PREFIX_PATH "${CMAKE_BINARY_DIR}")
- # Also make sure the CMake config files do not recreate the already-existing targets
- set(QT_NO_CREATE_TARGETS TRUE)
-endif()
-
-find_package(Qt5 COMPONENTS DBus Network Test Concurrent Sql Widgets Xml Gui)
# special case end
# Generated from examples.pro.
@@ -65,24 +50,5 @@ if(TARGET Qt::Gui)
endif()
# special case begin
-if (NOT QT_STANDALONE_EXAMPLES_BUILD)
- # 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.
-
- # This function gets all targets below this directory
- 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)
- endfunction()
-
- get_all_targets(targets "${CMAKE_CURRENT_SOURCE_DIR}")
-
- foreach(target ${targets})
- qt_autogen_tools(${target} ENABLE_AUTOGEN_TOOLS "moc" "uic" "rcc")
- endforeach()
-
-endif()
+qt_examples_build_end()
# special case end