| ... | @@ -15,15 +15,51 @@ find_program(LLVM_CONFIG_EXE | ... | @@ -15,15 +15,51 @@ find_program(LLVM_CONFIG_EXE |
| 15 | "c:/msys64/mingw64/bin" | 15 | "c:/msys64/mingw64/bin" |
| 16 | "C:/Libraries/llvm-8.0.0/bin") | 16 | "C:/Libraries/llvm-8.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 | execute_process( | 22 | execute_process( |
| 19 | 	COMMAND ${LLVM_CONFIG_EXE} --version | 23 | 	COMMAND ${LLVM_CONFIG_EXE} --version |
| 20 | 	OUTPUT_VARIABLE LLVM_CONFIG_VERSION | 24 | 	OUTPUT_VARIABLE LLVM_CONFIG_VERSION |
| 21 | 	OUTPUT_STRIP_TRAILING_WHITESPACE) | 25 | 	OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 22 | | 26 | |
| 23 | if(LLVM_CONFIG_VERSION VERSION_LESS 7) | 27 | if("${LLVM_CONFIG_VERSION}" VERSION_LESS 7) |
| 24 | message(FATAL_ERROR "expected LLVM version >=7 but found ${LLVM_CONFIG_VERSION}") | 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 | endif() | 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 | if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug") OR ZIG_STATIC) | 63 | if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug") OR ZIG_STATIC) |
| 28 | execute_process( | 64 | execute_process( |
| 29 | COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static | 65 | COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static |