cmake: Generate QtBuildInternalsExtra at conftime

... using configure_file.

Change-Id: Ibe3522c33e20a86c454b23919547775624f84755
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
bb10
Kevin Funk 2019-06-05 17:15:20 +02:00
parent aa548e09c7
commit af074c2c0d
2 changed files with 22 additions and 28 deletions

View File

@ -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()

View File

@ -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()