1 # Find LLVM libraries and headers
3 # LIBLLVM_INCLUDE_DIR - LLVM header files location
4 # LIBLLVM_LIBRARY - LLVM library to use
5 # LIBLLVM_VERSION - LLVM version
6 # LIBLLVM_FOUND - true if LLVM library was found
9 # llvm-config can have different names depending on the system
10 FIND_PROGRAM(LLVMCONFIG
11 NAMES "llvm-config-3.5" "llvm-config-3.4" "llvm-config" "llvm-config-64"
12 DOC "LLVM config utility"
16 IF (LIBLLVM_INCLUDE_DIR)
17 SET(LIBLLVM_FIND_QUIETLY TRUE)
20 MACRO (GET_LLVM_CONFIG cl_arg var)
22 COMMAND ${LLVMCONFIG} "--${cl_arg}"
23 OUTPUT_VARIABLE ${var}
24 OUTPUT_STRIP_TRAILING_WHITESPACE
26 ENDMACRO(GET_LLVM_CONFIG)
28 GET_LLVM_CONFIG(version LIBLLVM_VERSION)
30 IF (${LIBLLVM_VERSION} VERSION_LESS "3.4")
31 MESSAGE(STATUS "LLVM version 3.4 or later is required. Will not use LLVM.")
32 ELSE (${LIBLLVM_VERSION} VERSION_LESS "3.4")
34 GET_LLVM_CONFIG(includedir LIBLLVM_INCLUDE_DIR)
35 GET_LLVM_CONFIG(libdir LIBLLVM_LIBDIR)
37 FIND_LIBRARY(LIBLLVM_LIBRARY NAMES LLVM-${LIBLLVM_VERSION} LLVM PATHS ${LIBLLVM_LIBDIR} NO_DEFAULT_PATH)
38 INCLUDE(FindPackageHandleStandardArgs)
39 FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBLLVM DEFAULT_MSG LIBLLVM_LIBRARY LIBLLVM_INCLUDE_DIR)
41 MARK_AS_ADVANCED(LIBLLVM_LIBRARY LIBLLVM_INCLUDE_DIR)
46 MESSAGE(STATUS "Could not find llvm-config. Will not use LLVM for the build.")