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()