From 015fb24be6ea304a6a59d61ccba7e62a92516df3 Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Tue, 3 Feb 2015 18:47:37 +0000 Subject: [PATCH] Don't assume LIT_EXECUTABLE points to a Python script, take 2 Before this patch, the CMake build assumed LIT_EXECUTABLE pointed to a Python script, not an executable. If you were to pass in an executable, such as the result of py2exe on lit.py, the build would fall over. With this patch, the CMake build assumes LIT_EXECUTABLE is an executable. You can continue setting it to lit.py, but it will now use its shebang to find a Python interpreter. Differential Revision: http://reviews.llvm.org/D7315 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@228005 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CMakeLists.txt | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 45c74e12..8f3763fe 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,20 +6,26 @@ macro(pythonize_bool var) endif() endmacro() -include(FindPythonInterp) -if(PYTHONINTERP_FOUND) - if(LIBCXX_BUILT_STANDALONE) - set(LIT_EXECUTABLE "" CACHE FILEPATH "Path to LLVM's lit.py.") - # Make sure we can use the console pool for recent cmake and ninja > 1.5 - if(CMAKE_VERSION VERSION_LESS 3.1.20141117) - set(cmake_3_2_USES_TERMINAL) - else() - set(cmake_3_2_USES_TERMINAL USES_TERMINAL) - endif() - else() - set(LIT_EXECUTABLE "${CMAKE_SOURCE_DIR}/utils/lit/lit.py") - endif() +set(LIT_EXECUTABLE "" CACHE FILEPATH "Path to LLVM's llvm-lit.") +if(LIBCXX_BUILT_STANDALONE) + # Make sure we can use the console pool for recent cmake and ninja > 1.5 + if(CMAKE_VERSION VERSION_LESS 3.1.20141117) + set(cmake_3_2_USES_TERMINAL) + else() + set(cmake_3_2_USES_TERMINAL USES_TERMINAL) + endif() +else() + include(FindPythonInterp) + if(PYTHONINTERP_FOUND) + set(LIT_EXECUTABLE + ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/utils/lit/lit.py) + else() + message(WARNING "Could not find Python, cannot set LIT_EXECUTABLE.") + endif() +endif() + +if (LIT_EXECUTABLE) set(LIT_ARGS_DEFAULT "-sv --show-unsupported --show-xfail") if (MSVC OR XCODE) set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") @@ -47,13 +53,13 @@ if(PYTHONINTERP_FOUND) @ONLY) add_custom_target(check-libcxx - COMMAND ${PYTHON_EXECUTABLE} - ${LIT_EXECUTABLE} + COMMAND ${LIT_EXECUTABLE} ${LIT_ARGS} ${CMAKE_CURRENT_BINARY_DIR} DEPENDS cxx COMMENT "Running libcxx tests" ${cmake_3_2_USES_TERMINAL}) else() - message(WARNING "Could not find Python, no check target will be available!") + message(WARNING + "LIT_EXECUTABLE not set, no check-libcxx target will be available!") endif()