diff --git a/cmake/Findllvm.cmake b/cmake/Findllvm.cmake index 6e5784611..9ca86d0a4 100644 --- a/cmake/Findllvm.cmake +++ b/cmake/Findllvm.cmake @@ -9,26 +9,32 @@ find_path(LLVM_C_INCLUDE_DIR NAMES llvm-c/Core.h PATHS /usr/include/llvm-c-3.7/) find_path(LLVM_INCLUDE_DIR NAMES llvm/IR/IRBuilder.h PATHS /usr/include/llvm-3.7/) - -find_program(LLVM_CONFIG_EXE NAMES llvm-config llvm-config-3.7) - -execute_process( - COMMAND ${LLVM_CONFIG_EXE} --libs - OUTPUT_VARIABLE LLVM_LIBRARIES - OUTPUT_STRIP_TRAILING_WHITESPACE) - -execute_process( - COMMAND ${LLVM_CONFIG_EXE} --system-libs - OUTPUT_VARIABLE LLVM_SYSTEM_LIBS - OUTPUT_STRIP_TRAILING_WHITESPACE) - -execute_process( - COMMAND ${LLVM_CONFIG_EXE} --libdir - OUTPUT_VARIABLE LLVM_LIBDIRS - OUTPUT_STRIP_TRAILING_WHITESPACE) - set(LLVM_INCLUDE_DIRS ${LLVM_C_INCLUDE_DIR} ${LLVM_INCLUDE_DIR}) -set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) + +find_library(LLVM_LIBRARY NAMES LLVM) +if(LLVM_LIBRARY) + set(LLVM_LIBRARIES ${LLVM_LIBRARY}) + set(LLVM_LIBDIRS "") +else() + find_program(LLVM_CONFIG_EXE NAMES llvm-config llvm-config-3.7) + + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --libs + OUTPUT_VARIABLE LLVM_LIBRARIES + OUTPUT_STRIP_TRAILING_WHITESPACE) + + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --system-libs + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE) + + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --libdir + OUTPUT_VARIABLE LLVM_LIBDIRS + OUTPUT_STRIP_TRAILING_WHITESPACE) + + set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) +endif() include(FindPackageHandleStandardArgs)