aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Findllvm.cmake32
1 files changed, 11 insertions, 21 deletions
diff --git a/cmake/Findllvm.cmake b/cmake/Findllvm.cmake
index 60a52056d8..d866203457 100644
--- a/cmake/Findllvm.cmake
+++ b/cmake/Findllvm.cmake
@@ -79,7 +79,11 @@ if(ZIG_USE_LLVM_CONFIG)
OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")
- function(NEED_TARGET TARGET_NAME)
+
+ set(ZIG_LLVM_REQUIRED_TARGETS "AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;Mips;MSP430;NVPTX;PowerPC;RISCV;Sparc;SystemZ;VE;WebAssembly;X86;XCore")
+
+ set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED TRUE)
+ foreach(TARGET_NAME IN LISTS ZIG_LLVM_REQUIRED_TARGETS)
list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)
if (${_index} EQUAL -1)
# Save the error message, in case this is the last llvm-config we find
@@ -87,27 +91,13 @@ if(ZIG_USE_LLVM_CONFIG)
# Ignore this directory and try the search again
list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}")
- continue()
+ set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED FALSE)
+ break()
endif()
- endfunction(NEED_TARGET)
- NEED_TARGET("AArch64")
- NEED_TARGET("AMDGPU")
- NEED_TARGET("ARM")
- NEED_TARGET("AVR")
- NEED_TARGET("BPF")
- NEED_TARGET("Hexagon")
- NEED_TARGET("Lanai")
- NEED_TARGET("Mips")
- NEED_TARGET("MSP430")
- NEED_TARGET("NVPTX")
- NEED_TARGET("PowerPC")
- NEED_TARGET("RISCV")
- NEED_TARGET("Sparc")
- NEED_TARGET("SystemZ")
- NEED_TARGET("VE")
- NEED_TARGET("WebAssembly")
- NEED_TARGET("X86")
- NEED_TARGET("XCore")
+ endforeach()
+ if (NOT ZIG_LLVM_REQUIRED_TARGETS_ENABLED)
+ continue()
+ endif()
# Got it!
break()