diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtBuild.cmake | 35 | ||||
-rw-r--r-- | cmake/QtBuildInternals/QtBuildInternalsConfig.cmake | 35 | ||||
-rw-r--r-- | cmake/QtPostProcess.cmake | 4 |
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 |