Skip to content

Instantly share code, notes, and snippets.

@krystophny
Last active July 28, 2025 22:58
Show Gist options
  • Save krystophny/769a6a9af615910ce209ef38c0cf0db8 to your computer and use it in GitHub Desktop.
Save krystophny/769a6a9af615910ce209ef38c0cf0db8 to your computer and use it in GitHub Desktop.
Configure LLVM build on MacOS
cmake ../llvm \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/opt/llvm-git \
-DLLVM_ENABLE_PROJECTS="clang;lld;lldb;mlir;flang" \
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind;openmp" \
-DLLVM_TARGETS_TO_BUILD="AArch64" \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLDB_ENABLE_PYTHON=ON \
-DPython3_EXECUTABLE=$(which python) \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DLLDB_USE_SYSTEM_DEBUGSERVER=ON
@krystophny
Copy link
Author

krystophny commented Jul 28, 2025

# Set custom LLVM toolchain path
export LLVM=/opt/llvm-git

export PATH="$LLVM/bin:$PATH"
export LD_LIBRARY_PATH="$LLVM/lib:$LD_LIBRARY_PATH"       # Linux
export DYLD_FALLBACK_LIBRARY_PATH="$LLVM/lib"             # macOS
export LIBRARY_PATH="$LLVM/lib:$LIBRARY_PATH"
export C_INCLUDE_PATH="$LLVM/include:$C_INCLUDE_PATH"
export CPLUS_INCLUDE_PATH="$LLVM/include:$CPLUS_INCLUDE_PATH"

# Set clang/clang++/flang as default compilers
export CC="$LLVM/bin/clang"
export CXX="$LLVM/bin/clang++"
export FC="$LLVM/bin/flang"
export LD=ld.lld

export FPM_CC=$CC
export FPM_CXX=$CXX
export FPM_FC=$FC

# Prefer libc++ over libstdc++ (useful on Linux)
#export CXXFLAGS="--stdlib=libc++"
#export LDFLAGS="-fuse-ld=lld -L$LLVM/lib -Wl,-rpath,$LLVM/lib"

export FPM_CXXFLAGS=$CXXFLAGS
export FPM_LDFLAGS=$LDFLAGS

# LLDB Python bindings
export PYTHONPATH="$LLVM/lib/python3.13/site-packages:$PYTHONPATH"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment