Skip to content

Commit

Permalink
[CMake] Don't include LLDB_TEST_COMPILER in cached variable
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Chris Bieneman committed Oct 18, 2016
1 parent e80f007 commit f50761f
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions lldb/test/CMakeLists.txt
Expand Up @@ -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}
Expand All @@ -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" )
Expand Down

0 comments on commit f50761f

Please sign in to comment.