diff options
author | Kevin Funk <kevin.funk@kdab.com> | 2019-06-05 17:15:20 +0200 |
---|---|---|
committer | Kevin Funk <kevin.funk@kdab.com> | 2019-06-05 15:33:48 +0000 |
commit | af074c2c0dc73db5e7e6f167965fad80e1549427 (patch) | |
tree | cca52cfa1c2c36c7ac22702fdfb5ccd838846d76 | |
parent | aa548e09c78ee926231f68868f95e13737539e2f (diff) |
cmake: Generate QtBuildInternalsExtra at conftime
... using configure_file.
Change-Id: Ibe3522c33e20a86c454b23919547775624f84755
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r-- | cmake/QtBuildInternalsExtra.cmake.in | 17 | ||||
-rw-r--r-- | cmake/QtPostProcess.cmake | 33 |
2 files changed, 22 insertions, 28 deletions
diff --git a/cmake/QtBuildInternalsExtra.cmake.in b/cmake/QtBuildInternalsExtra.cmake.in new file mode 100644 index 0000000000..028cfe2717 --- /dev/null +++ b/cmake/QtBuildInternalsExtra.cmake.in @@ -0,0 +1,17 @@ +# Propagate common variables via BuildInternals package. +set(QT_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) +option(BUILD_SHARED_LIBS "Build Qt statically or dynamically" @BUILD_SHARED_LIBS@) +set(QT_CMAKE_EXPORT_NAMESPACE @QT_CMAKE_EXPORT_NAMESPACE@) +set(INSTALL_CMAKE_NAMESPACE @INSTALL_CMAKE_NAMESPACE@) +set(CMAKE_BUILD_TYPE @CMAKE_BUILD_TYPE@) +set(QT_BUILD_INTERNALS_PATH "${CMAKE_CURRENT_LIST_DIR}") + +# Propagate the original install prefix, so that a developer building a child module can +# specify CMAKE_PREFIX_PATH for finding the Qt modules instead of CMAKE_INSTALL_PREFIX. +set(CMAKE_INSTALL_PREFIX @CMAKE_INSTALL_PREFIX@ CACHE PATH + "Install path prefix, prepended onto install directories." FORCE) + +# Propagate developer builds to other modules via BuildInternals package. +if(@FEATURE_developer_build@) + set(FEATURE_developer_build ON CACHE BOOL "Developer build." FORCE) +endif() diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake index d619aebdad..24f0621fc4 100644 --- a/cmake/QtPostProcess.cmake +++ b/cmake/QtPostProcess.cmake @@ -258,37 +258,14 @@ endfunction() function(qt_generate_build_internals_extra_cmake_code) if(PROJECT_NAME STREQUAL "QtBase") - # Propagate common variables via BuildInternals package. - string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE - "set(QT_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})") - string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE " -option(BUILD_SHARED_LIBS \"Build Qt statically or dynamically\" ${BUILD_SHARED_LIBS})") - 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 - # specify CMAKE_PREFIX_PATH for finding the Qt modules instead of CMAKE_INSTALL_PREFIX. - string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE " -set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH -\"Install path prefix, prepended onto install directories.\" FORCE)") - - # Propagate developer builds to other modules via BuildInternals package. - if(FEATURE_developer_build) - string(APPEND QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE " -set(FEATURE_developer_build ON CACHE BOOL \"Developer build.\" FORCE)") - endif() - qt_path_join(extra_file_path ${QT_CONFIG_BUILD_DIR} ${INSTALL_CMAKE_NAMESPACE}BuildInternals/QtBuildInternalsExtra.cmake) - file(GENERATE OUTPUT "${extra_file_path}" - CONTENT "${QT_BUILD_INTERNALS_EXTRA_CMAKE_CODE}") + configure_file( + "${CMAKE_CURRENT_LIST_DIR}/QtBuildInternalsExtra.cmake.in" + "${extra_file_path}" + @ONLY + ) endif() endfunction() |