From f50761f128950bfedbba7f9ab56d28e2b33f29dd Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Tue, 18 Oct 2016 23:54:28 +0000 Subject: [PATCH] [CMake] Don't include LLDB_TEST_COMPILER in cached variable Summary: CMake has no builtin mechanism for cache invalidation. As a general convention you want to not expand user-specified variables in other cached variables because they will not get updated when the user changes their specified value. This patch moves the "-C" option for dotest.py into the LLDB_TEST_COMMON_ARGS and out of the CMake cache. In order to prevent issues with out-of-date cache files on builders I've added code to scrub "-C ${LLDB_TEST_COMPILER}" out of the CMake caches, by Force writing the variable. This code can be removed in a few days once the change has trickled through CI systems. Reviewers: tfiala, labath, zturner Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D25751 llvm-svn: 284551 --- lldb/test/CMakeLists.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lldb/test/CMakeLists.txt b/lldb/test/CMakeLists.txt index 89b1c0e..b050175 100644 --- a/lldb/test/CMakeLists.txt +++ b/lldb/test/CMakeLists.txt @@ -43,10 +43,15 @@ set(LLDB_TEST_ARCH ${LLDB_DEFAULT_TEST_ARCH} CACHE STRING "Specify the architecture to run LLDB tests as (x86|x64). Determines whether tests are compiled with -m32 or -m64") +# Scrub LLDB_TEST_COMPILER out of the CMake caches +# TODO: remove the replace lines and the FORCE parameter in a few days once the +# change has made its way through bots to clean up their CMake caches. +string(REPLACE "-C;${LLDB_TEST_COMPILER}" "" LLDB_TEST_USER_ARGS_New "${LLDB_TEST_USER_ARGS}") + # Users can override LLDB_TEST_USER_ARGS to specify arbitrary arguments to pass to the script set(LLDB_TEST_USER_ARGS - -C ${LLDB_TEST_COMPILER} - CACHE STRING "Specify additional arguments to pass to test runner. For example: '-C gcc -C clang -A i386 -A x86_64'") + "${LLDB_TEST_USER_ARGS_New}" + CACHE STRING "Specify additional arguments to pass to test runner. For example: '-C gcc -C clang -A i386 -A x86_64'" FORCE) set(LLDB_TEST_COMMON_ARGS --arch=${LLDB_TEST_ARCH} @@ -56,6 +61,7 @@ set(LLDB_TEST_COMMON_ARGS -S nm -u CXXFLAGS -u CFLAGS + -C ${LLDB_TEST_COMPILER} ) if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) -- 2.7.4