Skip to content

Commit

Permalink
LLVMExtra: Dynamically pick a C++ standard version.
Browse files Browse the repository at this point in the history
  • Loading branch information
maleadt committed Oct 24, 2023
1 parent 217819a commit ed1a078
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
6 changes: 5 additions & 1 deletion deps/LLVMExtra/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ LANGUAGES
C
)

set(CMAKE_CXX_STANDARD 17)
if(NOT DEFINED CXX_STANDARD)
set(CXX_STANDARD 17)
endif()
set(CMAKE_CXX_STANDARD ${CXX_STANDARD})

set(CMAKE_CXX_STANDARD_REQUIRED ON)


Expand Down
9 changes: 8 additions & 1 deletion deps/build_local.jl
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,17 @@ else
end
LLVM_DIR = joinpath(LLVM.artifact_dir, "lib", "cmake", "llvm")

# LLVM 16 requires C++17
cxx_standard = if Base.libllvm_version >= v"16"
"17"
else
"14"
end

# build and install
@info "Building" source_dir scratch_dir build_dir LLVM_DIR
cmake() do cmake_path
config_opts = `-DLLVM_ROOT=$(LLVM_DIR) -DCMAKE_INSTALL_PREFIX=$(scratch_dir)`
config_opts = `-DLLVM_ROOT=$(LLVM_DIR) -DCXX_STANDARD=$(cxx_standard) -DCMAKE_INSTALL_PREFIX=$(scratch_dir)`
if Sys.iswindows()
# prevent picking up MSVC
config_opts = `$config_opts -G "MSYS Makefiles"`
Expand Down

0 comments on commit ed1a078

Please sign in to comment.