summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBuild.cmake35
-rw-r--r--cmake/QtBuildInternals/QtBuildInternalsConfig.cmake35
-rw-r--r--cmake/QtPostProcess.cmake4
3 files changed, 64 insertions, 10 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index a18a858e0c..afcd165f0e 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -36,9 +36,17 @@ set(INSTALL_SYSCONFDIR "etc/xdg" CACHE PATH
set(INSTALL_EXAMPLESDIR "examples" CACHE PATH "Examples [PREFIX/examples]")
set(INSTALL_TESTSDIR "tests" CACHE PATH "Tests [PREFIX/tests]")
-set(INSTALL_CMAKE_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}" CACHE STRING "CMake namespace [Qt${PROJECT_VERSION_MAJOR}]")
+# The variables might have already been set in QtBuildInternalsExtra.cmake if the file is included
+# while building a new module and not QtBase. In that case, stop overriding the value.
+if(NOT INSTALL_CMAKE_NAMESPACE)
+ set(INSTALL_CMAKE_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}"
+ CACHE STRING "CMake namespace [Qt${PROJECT_VERSION_MAJOR}]")
+endif()
+if(NOT QT_CMAKE_EXPORT_NAMESPACE)
+ set(QT_CMAKE_EXPORT_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}"
+ CACHE STRING "CMake namespace used when exporting targets [Qt${PROJECT_VERSION_MAJOR}]")
+endif()
-set(QT_CMAKE_EXPORT_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}" CACHE STRING "CMake namespace used when exporting targets [Qt${PROJECT_VERSION_MAJOR}]")
set(QT_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}")
# the default RPATH to be used when installing, but only if it's not a system directory
@@ -1837,3 +1845,26 @@ function(qt_install_3rdparty_library target)
qt_install_3rdparty_config_files(${target} EXPORT ${target} ${ARGN})
endfunction()
+macro(qt_find_apple_system_frameworks)
+ if(APPLE)
+ find_library(FWAppKit AppKit)
+ find_library(FWApplicationServices ApplicationServices)
+ find_library(FWCarbon Carbon)
+ find_library(FWCoreFoundation CoreFoundation)
+ find_library(FWCoreServices CoreServices)
+ find_library(FWCoreVideo CoreVideo)
+ find_library(FWcups cups)
+ find_library(FWDiskArbitration DiskArbitration)
+ find_library(FWFoundation Foundation)
+ find_library(FWIOKit IOKit)
+ find_library(FWIOSurface IOSurface)
+ find_library(FWImageIO ImageIO)
+ find_library(FWMetal Metal)
+ find_library(FWMobileCoreServices MobileCoreServices)
+ find_library(FWQuartzCore QuartzCore)
+ find_library(FWSecurity Security)
+ find_library(FWSystemConfiguration SystemConfiguration)
+ find_library(FWUIKit UIKit)
+ find_library(FWWatchKit WatchKit)
+ endif()
+endmacro()
diff --git a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
index 767a9dc45f..6f0708bd80 100644
--- a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
+++ b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
@@ -12,18 +12,22 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/QtBuildInternalsExtra.cmake")
include(${CMAKE_CURRENT_LIST_DIR}/QtBuildInternalsExtra.cmake)
endif()
+macro(qt_set_up_build_internals_paths)
+ # Set up the paths for the modules.
+ set(QT_CMAKE_MODULE_PATH "${QT_BUILD_INTERNALS_PATH}/../${QT_CMAKE_EXPORT_NAMESPACE}")
+ list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_MODULE_PATH})
+
+ # If the repo has its own cmake modules, include those in the module path.
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+ endif()
+endmacro()
+
macro(qt_build_repo_begin)
if(${ARGC} EQUAL 1 AND "${ARGV0}" STREQUAL "SKIP_CMAKE_MODULE_PATH_ADDITION")
# No-op.
else()
- # Set up the paths for the modules.
- set(QT_CMAKE_MODULE_PATH "${QT_BUILD_INTERNALS_PATH}/../${QT_CMAKE_EXPORT_NAMESPACE}")
- list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_MODULE_PATH})
-
- # If the repo has its own cmake modules, include those in the module path.
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- endif()
+ qt_set_up_build_internals_paths()
endif()
# Qt specific setup common for all modules:
@@ -73,3 +77,18 @@ macro(qt_build_repo)
qt_build_repo_end()
endmacro()
+
+macro(qt_set_up_standalone_tests_build)
+ qt_set_up_build_internals_paths()
+ include(QtSetup)
+ qt_find_apple_system_frameworks()
+endmacro()
+
+macro(qt_build_tests)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/auto/CMakeLists.txt")
+ add_subdirectory(auto)
+ endif()
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/CMakeLists.txt")
+ add_subdirectory(benchmarks)
+ endif()
+endmacro()
diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake
index b1fb07c394..b43af42eec 100644
--- a/cmake/QtPostProcess.cmake
+++ b/cmake/QtPostProcess.cmake
@@ -174,6 +174,10 @@ option(BUILD_SHARED_LIBS \"Build Qt statically or dynamically\" ${BUILD_SHARED_L
string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE "
set(QT_CMAKE_EXPORT_NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE})")
string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE "
+set(INSTALL_CMAKE_NAMESPACE ${INSTALL_CMAKE_NAMESPACE})")
+ string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE "
+set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE})")
+ string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE "
set(QT_BUILD_INTERNALS_PATH \"\${CMAKE_CURRENT_LIST_DIR}\")")
# Propagate the original install prefix, so that a developer building a child module can