summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Funk <kevin.funk@kdab.com>2019-06-05 17:15:20 +0200
committerKevin Funk <kevin.funk@kdab.com>2019-06-05 15:33:48 +0000
commitaf074c2c0dc73db5e7e6f167965fad80e1549427 (patch)
treecca52cfa1c2c36c7ac22702fdfb5ccd838846d76
parentaa548e09c78ee926231f68868f95e13737539e2f (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.in17
-rw-r--r--cmake/QtPostProcess.cmake33
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()