@@ -15,15 +15,51 @@ find_program(LLVM_CONFIG_EXE
15
15
"c:/msys64/mingw64/bin"
16
16
"C:/Libraries/llvm-7.0.0/bin" )
17
17
18
+ if ("${LLVM_CONFIG_EXE} " STREQUAL "LLVM_CONFIG_EXE-NOTFOUND" )
19
+ message (FATAL_ERROR "unable to find llvm-config" )
20
+ endif ()
21
+
18
22
execute_process (
19
23
COMMAND ${LLVM_CONFIG_EXE} --version
20
24
OUTPUT_VARIABLE LLVM_CONFIG_VERSION
21
25
OUTPUT_STRIP_TRAILING_WHITESPACE)
22
26
23
- if (LLVM_CONFIG_VERSION VERSION_LESS 7)
24
- message (FATAL_ERROR "expected LLVM version >=7 but found ${LLVM_CONFIG_VERSION} " )
27
+ if ("${LLVM_CONFIG_VERSION} " VERSION_LESS 7)
28
+ message (FATAL_ERROR "expected LLVM 7.x but found ${LLVM_CONFIG_VERSION} " )
29
+ endif ()
30
+ if ("${LLVM_CONFIG_VERSION} " VERSION_EQUAL 8)
31
+ message (FATAL_ERROR "expected LLVM 7.x but found ${LLVM_CONFIG_VERSION} " )
32
+ endif ()
33
+ if ("${LLVM_CONFIG_VERSION} " VERSION_GREATER 8)
34
+ message (FATAL_ERROR "expected LLVM 7.x but found ${LLVM_CONFIG_VERSION} " )
25
35
endif ()
26
36
37
+ execute_process (
38
+ COMMAND ${LLVM_CONFIG_EXE} --targets-built
39
+ OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
40
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
41
+ string (REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES} " )
42
+ function (NEED_TARGET TARGET_NAME)
43
+ list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME} " _index)
44
+ if (${_index} EQUAL -1)
45
+ message (FATAL_ERROR "LLVM is missing target ${TARGET_NAME} . Zig requires LLVM to be built with all default targets enabled." )
46
+ endif ()
47
+ endfunction (NEED_TARGET)
48
+ NEED_TARGET("AArch64" )
49
+ NEED_TARGET("AMDGPU" )
50
+ NEED_TARGET("ARM" )
51
+ NEED_TARGET("BPF" )
52
+ NEED_TARGET("Hexagon" )
53
+ NEED_TARGET("Lanai" )
54
+ NEED_TARGET("Mips" )
55
+ NEED_TARGET("MSP430" )
56
+ NEED_TARGET("NVPTX" )
57
+ NEED_TARGET("PowerPC" )
58
+ NEED_TARGET("Sparc" )
59
+ NEED_TARGET("SystemZ" )
60
+ NEED_TARGET("X86" )
61
+ NEED_TARGET("XCore" )
62
+
27
63
if (NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" ) OR ZIG_STATIC)
28
64
execute_process (
29
65
COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
0 commit comments