diff --git a/build b/build index 26bfeab43..7fba2555f 100755 --- a/build +++ b/build @@ -111,7 +111,8 @@ cmake "$ROOTDIR/zig" \ -DZIG_TARGET_TRIPLE="$TARGET" \ -DZIG_TARGET_MCPU="$MCPU" \ -DZIG_EXECUTABLE="$ZIG" \ - -DZIG_VERSION="$ZIG_VERSION" + -DZIG_VERSION="$ZIG_VERSION" \ + -DZIG_PREFER_LLVM_CONFIG=OFF unset CC unset CXX make "$JOBS" install diff --git a/zig/CMakeLists.txt b/zig/CMakeLists.txt index 1c0218e30..be3a7e8d2 100644 --- a/zig/CMakeLists.txt +++ b/zig/CMakeLists.txt @@ -87,10 +87,13 @@ option(ZIG_TEST_COVERAGE "Build Zig with test coverage instrumentation" OFF) set(ZIG_TARGET_TRIPLE "native" CACHE STRING "arch-os-abi to output binaries for") set(ZIG_TARGET_MCPU "baseline" CACHE STRING "-mcpu parameter to output binaries for") set(ZIG_EXECUTABLE "" CACHE STRING "(when cross compiling) path to already-built zig binary") -set(ZIG_PREFER_LLVM_CONFIG off CACHE BOOL "(when cross compiling) use llvm-config to find target llvm dependencies if needed") set(ZIG_SINGLE_THREADED off CACHE BOOL "limit the zig compiler to use only 1 thread") set(ZIG_OMIT_STAGE2 off CACHE BOOL "omit the stage2 backend from stage1") +set(ZIG_PREFER_LLVM_CONFIG_DEFAULT ("${ZIG_TARGET_TRIPLE}" STREQUAL "native")) +set(ZIG_PREFER_LLVM_CONFIG ${ZIG_PREFER_LLVM_CONFIG_DEFAULT} CACHE BOOL + "(when cross compiling) use llvm-config to find target llvm dependencies if needed") + find_package(llvm) find_package(clang) find_package(lld) diff --git a/zig/cmake/Findllvm.cmake b/zig/cmake/Findllvm.cmake index 2ab2c23ad..78b539e97 100644 --- a/zig/cmake/Findllvm.cmake +++ b/zig/cmake/Findllvm.cmake @@ -63,7 +63,7 @@ if(ZIG_PREFER_CLANG_CPP_DYLIB) if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 13) message(FATAL_ERROR "expected LLVM 12.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}") endif() -elseif(("${ZIG_TARGET_TRIPLE}" STREQUAL "native") OR ZIG_PREFER_LLVM_CONFIG) +elseif(ZIG_PREFER_LLVM_CONFIG) find_program(LLVM_CONFIG_EXE NAMES llvm-config-12 llvm-config-12.0 llvm-config120 llvm-config12 llvm-config PATHS