From 38f9c9240ab5ec9e0ab4581df1b4fb42ff95a198 Mon Sep 17 00:00:00 2001 From: Michal Gorny Date: Sat, 1 Oct 2016 09:28:05 +0000 Subject: [PATCH] [cmake] Make LIT_COMMAND configurable and improve fallback support Make LIT_COMMAND configurable, use source tree only when actually available and extend the default search to other common executable names 'lit.py' and 'lit', in order to increase uniformity between all LLVM projects and support using installed lit. Changing the conditional used to determine whether in-tree or external lit is being used covers the case when LLVM_MAIN_SRC_DIR is defined but does not exist (anymore). In this case, the functions falls back to looking for installed lit rather than attempting to use a non-existing path. The same conditional is used in clang already. Making LIT_COMMAND a cache variable in case the source tree variant is used serves two purposes. Firstly, it increases uniformity between the two branches since find_program() implicitly makes LIT_COMMAND a cache variable. Secondly, it allows overriding the lit executable used to run the tests when the LLVM source tree is provided. Gentoo is planning to use this to use installed (and byte-compiled) lit instead of re-compiling it in every LLVM project. Extending default search is meant to increase uniformity between different LLVM projects. The 'lit.py' name is already used by a few of them, and 'lit' is the name used by utils/lit/setup.py when installing. Differential Revision: https://reviews.llvm.org/D25076 llvm-svn: 283029 --- cmake/modules/AddLLVM.cmake | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 37b3b801912..81eccde633b 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -1083,10 +1083,11 @@ function(add_lit_target target comment) if (NOT CMAKE_CFG_INTDIR STREQUAL ".") list(APPEND LIT_ARGS --param build_mode=${CMAKE_CFG_INTDIR}) endif () - if (LLVM_MAIN_SRC_DIR) - set (LIT_COMMAND ${PYTHON_EXECUTABLE} ${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py) + if (EXISTS ${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py) + set (LIT_COMMAND "${PYTHON_EXECUTABLE} ${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py" + CACHE STRING "Command used to spawn llvm-lit") else() - find_program(LIT_COMMAND llvm-lit) + find_program(LIT_COMMAND NAMES llvm-lit lit.py lit) endif () list(APPEND LIT_COMMAND ${LIT_ARGS}) foreach(param ${ARG_PARAMS})