Fix architecture config tests values to be written only once

Every time the qtbase project was reconfigured, the list of
config tests results was appended to a cache variable which was
never reset, resulting in multiple copies of the same values
being written to QtBuildInternalsExtra.cmake.

Make sure to clean the cache variable before appending to it.

Also change the variable to be all upper-case, to be consistent
with other cache variables.

Change-Id: Ic12046730a080595e19377981a726bc330641dc1
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
Alexandru Croitor 2019-11-07 15:52:33 +01:00
parent 021c17c62f
commit 8ef64341c3
2 changed files with 7 additions and 6 deletions

View File

@ -1,6 +1,7 @@
include(CheckCXXSourceCompiles) include(CheckCXXSourceCompiles)
function(run_config_test_architecture) function(run_config_test_architecture)
set(qt_base_configure_tests_vars_to_export) set(QT_BASE_CONFIGURE_TESTS_VARS_TO_EXPORT
"" CACHE INTERNAL "Test variables that should be exported" FORCE)
# Test architecture # Test architecture
set(_arch_file "${CMAKE_CURRENT_BINARY_DIR}/architecture_test") set(_arch_file "${CMAKE_CURRENT_BINARY_DIR}/architecture_test")
set(saved_executable_suffix "${CMAKE_EXECUTABLE_SUFFIX}") set(saved_executable_suffix "${CMAKE_EXECUTABLE_SUFFIX}")
@ -49,16 +50,16 @@ function(run_config_test_architecture)
set(TEST_architecture 1 CACHE INTERNAL "Ran the architecture test") set(TEST_architecture 1 CACHE INTERNAL "Ran the architecture test")
set(TEST_architecture_arch "${_architecture}" CACHE INTERNAL "Target machine architecture") set(TEST_architecture_arch "${_architecture}" CACHE INTERNAL "Target machine architecture")
list(APPEND qt_base_configure_tests_vars_to_export TEST_architecture_arch) list(APPEND QT_BASE_CONFIGURE_TESTS_VARS_TO_EXPORT TEST_architecture_arch)
set(TEST_subarch 1 CACHE INTERNAL "Ran machine subArchitecture test") set(TEST_subarch 1 CACHE INTERNAL "Ran machine subArchitecture test")
foreach(it ${_sub_architecture}) foreach(it ${_sub_architecture})
# Equivalent to qmake's QT_CPU_FEATURES.$arch. # Equivalent to qmake's QT_CPU_FEATURES.$arch.
set(TEST_arch_${TEST_architecture_arch}_subarch_${it} 1 CACHE INTERNAL "Target sub architecture result") set(TEST_arch_${TEST_architecture_arch}_subarch_${it} 1 CACHE INTERNAL "Target sub architecture result")
list(APPEND qt_base_configure_tests_vars_to_export TEST_arch_${TEST_architecture_arch}_subarch_${it}) list(APPEND QT_BASE_CONFIGURE_TESTS_VARS_TO_EXPORT TEST_arch_${TEST_architecture_arch}_subarch_${it})
endforeach() endforeach()
set(TEST_buildAbi "${_build_abi}" CACHE INTERNAL "Target machine buildAbi") set(TEST_buildAbi "${_build_abi}" CACHE INTERNAL "Target machine buildAbi")
list(APPEND qt_base_configure_tests_vars_to_export TEST_buildAbi) list(APPEND QT_BASE_CONFIGURE_TESTS_VARS_TO_EXPORT TEST_buildAbi)
set(qt_base_configure_tests_vars_to_export ${qt_base_configure_tests_vars_to_export} CACHE INTERNAL "Test variables that should be exported") set(QT_BASE_CONFIGURE_TESTS_VARS_TO_EXPORT ${QT_BASE_CONFIGURE_TESTS_VARS_TO_EXPORT} CACHE INTERNAL "Test variables that should be exported")
endfunction() endfunction()

View File

@ -314,7 +314,7 @@ endfunction()
function(qt_generate_build_internals_extra_cmake_code) function(qt_generate_build_internals_extra_cmake_code)
if(PROJECT_NAME STREQUAL "QtBase") if(PROJECT_NAME STREQUAL "QtBase")
set(QT_EXTRA_BUILD_INTERNALS_VARS) set(QT_EXTRA_BUILD_INTERNALS_VARS)
foreach(var IN LISTS qt_base_configure_tests_vars_to_export) foreach(var IN LISTS QT_BASE_CONFIGURE_TESTS_VARS_TO_EXPORT)
string(APPEND QT_EXTRA_BUILD_INTERNALS_VARS "set(${var} \"${${var}}\" CACHE INTERNAL \"\")\n") string(APPEND QT_EXTRA_BUILD_INTERNALS_VARS "set(${var} \"${${var}}\" CACHE INTERNAL \"\")\n")
endforeach() endforeach()