Skip to content

Instantly share code, notes, and snippets.

@inclyc
Created October 4, 2023 11:35
Show Gist options
  • Save inclyc/d952307bc266a6ed99f16d7ea614d3ba to your computer and use it in GitHub Desktop.
Save inclyc/d952307bc266a6ed99f16d7ea614d3ba to your computer and use it in GitHub Desktop.
LLVM compiling commands for developers, with some tweaks for debugging & ccache
#!/usr/bin/env bash
LLVM="$1"
# LLVMBaseDirectory="$LLVM"
# BuildMode="Release"
# BuildDirectory="build-release"
# BuildBase="${LLVMBaseDirectory}/${BuildDirectory}"
# LLVMEnableProjects="clang;mlir"
LLVMBaseDirectory="$LLVM"
BuildMode="Debug"
BuildDirectory="build"
BuildBase="${LLVMBaseDirectory}/${BuildDirectory}"
LLVMEnableProjects="clang;mlir;clang-tools-extra;"
# LLVMBaseDirectory="$LLVM"
# BuildMode="Debug"
# BuildDirectory="build-cir"
# BuildBase="${LLVMBaseDirectory}/${BuildDirectory}"
# LLVMEnableProjects="clang;mlir;cir"
# LLVMBaseDirectory="$LLVM"
# BuildMode="Release"
# BuildDirectory="build-cir-release"
# BuildBase="${LLVMBaseDirectory}/${BuildDirectory}"
# LLVMEnableProjects="clang;mlir;cir"
CMakeCommand=(
cmake
# For platforms without ninja, use the makefile
-G Ninja
-DBUILD_SHARED_LIBS:STRING=On
-DCMAKE_BUILD_TYPE:STRING=${BuildMode}
-DLLVM_APPEND_VC_REV:STRING=Off
-DLLVM_ENABLE_LLD:STRING=On
-DLLVM_ENABLE_PROJECTS:STRING="${LLVMEnableProjects}"
-DLLVM_LINK_LLVM_DYLIB:STRING=Off
-DLLVM_CCACHE_BUILD:BOOL=TRUE
-DLLVM_USE_SPLIT_DWARF=On
-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE
-DCMAKE_C_COMPILER:FILEPATH=${CC:-"clang"}
-DCMAKE_CXX_COMPILER:FILEPATH=${CXX:-"clang++"}
-S${LLVMBaseDirectory}/llvm
-B${BuildBase}
-DLLVM_TARGETS_TO_BUILD="host;RISCV;"
)
exec "${CMakeCommand[@]}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment