blob: 2835b1ffa7cab5271de9153a1134c441074fe6ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
if (NOT CLANG_ROOT)
set(CLANG_ROOT $ENV{CLANG_ROOT})
endif ()
if (NOT LLVM_CONFIG)
set(LLVM_CONFIG $ENV{LLVM_CONFIG})
if (NOT LLVM_CONFIG)
set(llvm_config_names llvm-config)
foreach(minor RANGE 9 1)
list(APPEND llvm_config_names "llvm-config3${minor}" "llvm-config-3.${minor}" "llvm-config-mp-3.${minor}")
endforeach ()
find_program(LLVM_CONFIG NAMES ${llvm_config_names})
endif ()
endif ()
if (LLVM_CONFIG)
message(STATUS "llvm-config found at: ${LLVM_CONFIG}")
else ()
message(FATAL_ERROR "Could NOT find llvm-config executable.")
endif ()
if (NOT EXISTS ${CLANG_INCLUDEDIR})
execute_process(COMMAND ${LLVM_CONFIG} --includedir OUTPUT_VARIABLE CLANG_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
if (NOT EXISTS ${CLANG_INCLUDEDIR})
message(FATAL_ERROR "Could NOT find clang includedir. You can fix this by setting CLANG_INCLUDEDIR in your shell or as a cmake variable.")
endif ()
endif ()
if (NOT EXISTS ${CLANG_LIBDIR})
execute_process(COMMAND ${LLVM_CONFIG} --libdir OUTPUT_VARIABLE CLANG_LIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
if (NOT EXISTS ${CLANG_LIBDIR})
message(FATAL_ERROR "Could NOT find clang libdir. You can fix this by setting CLANG_LIBDIR in your shell or as a cmake variable.")
endif ()
endif ()
if (NOT CLANG_LIBS)
find_library(CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT NAMES clang libclang ${CLANG_ROOT}/lib ${CLANG_LIBDIR} NO_DEFAULT_PATH)
if (NOT EXISTS ${CLANG_CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT})
find_library(CLANG_LIBS NAMES clang libclang)
if (NOT EXISTS ${CLANG_LIBS})
set (CLANG_LIBS "-L${CLANG_LIBDIR}" "-lclang" "-Wl,-rpath,${CLANG_LIBDIR}")
endif ()
else ()
set(CLANG_LIBS "${CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT}")
endif ()
endif ()
execute_process(COMMAND ${LLVM_CONFIG} --version OUTPUT_VARIABLE CLANG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
message("-- Using Clang ${CLANG_VERSION} from ${CLANG_LIBDIR} with LIBS ${CLANG_LIBS} and CXXFLAGS ${CLANG_CXXFLAGS}")
|