From 6ca47f1d7d4f9fd34baeba86af67108ac0eaeffe Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 3 Apr 2016 07:40:06 +0000 Subject: [PATCH] Simplify cross-compilation. Don't use native-compiled llvm-config. Note: AddLLVM.cmake does not expose the LLVM source directory. So if you want to run the test suite, you need to either: 1) set LLVM_MAIN_SRC_DIR explicitly (to find lit.py) 2) change AddLLVM.cmake to point to an installed 'lit'. 3) add_subdirectory(compiler-rt/test) from clang instead of compiler-rt. https://us.codeaurora.org/patches/quic/llvm/50683/compiler-rt-cross-compilation.patch Signed-off-by: Greg Fitzgerald Signed-off-by: Khem Raj --- CMakeLists.txt | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c60c246..6f989bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,32 +85,12 @@ else() set(COMPILER_RT_TEST_COMPILER ${CMAKE_C_COMPILER} CACHE PATH "Compiler to use for testing") set(COMPILER_RT_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE PATH "C++ Compiler to use for testing") - if (NOT LLVM_CONFIG_PATH) - find_program(LLVM_CONFIG_PATH "llvm-config" - DOC "Path to llvm-config binary") - if (NOT LLVM_CONFIG_PATH) - message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH") - endif() - endif() - execute_process( - COMMAND ${LLVM_CONFIG_PATH} "--obj-root" "--bindir" "--libdir" "--src-root" - RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE CONFIG_OUTPUT) - if (HAD_ERROR) - message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}") - endif() - string(REGEX REPLACE "[ \t]*[\r\n]+[ \t]*" ";" CONFIG_OUTPUT ${CONFIG_OUTPUT}) - list(GET CONFIG_OUTPUT 0 LLVM_BINARY_DIR) - list(GET CONFIG_OUTPUT 1 LLVM_TOOLS_BINARY_DIR) - list(GET CONFIG_OUTPUT 2 LLVM_LIBRARY_DIR) - list(GET CONFIG_OUTPUT 3 LLVM_MAIN_SRC_DIR) - - # Make use of LLVM CMake modules. - file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE) - set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/share/llvm/cmake") - list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") - # Get some LLVM variables from LLVMConfig. - include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") + find_package(LLVM REQUIRED) + list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}") + + # Variables that AddLLVM.cmake depends on (included by AddCompilerRT) + set(LLVM_TOOLS_BINARY_DIR "${LLVM_INSTALL_PREFIX}/bin") + set(LLVM_LIBRARY_DIR "${LLVM_INSTALL_PREFIX}/lib") set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) -- 1.9.1