Crates.io | c3_clang_extensions |
lib.rs | c3_clang_extensions |
version | 0.3.9 |
source | src |
created_at | 2017-08-18 00:58:47.502872 |
updated_at | 2023-10-22 00:04:26.263239 |
description | Ugly hacks to get information hidden/malformed by libclang See C3 for usable interface. |
homepage | https://gitlab.com/citrus-rs/c3 |
repository | https://gitlab.com/citrus-rs/c3.git |
max_upload_size | |
id | 27943 |
size | 381,280 |
Internal for the C3 project.
cargo clean
if upgrading from a previous version of LLVM.libclang.a
is needed, and pre-built packages won't have it).llvm-config
to your PATH
, or set LLVM_CONFIG_PATH
env variable poiting to the llvm-config
executable file.LIBCLANG_INCLUDE_PATH
pointing to Clang's include directory (<clang install dir>/clang/include/
)This will require 20GB of disk space and 16GB of RAM. This method creates static binaries, which can be redistributed without hassle.
curl -LO http://releases.llvm.org/5.0.2/llvm-5.0.2.src.tar.xz
tar xf llvm-5.0.2.src.tar.xz
curl -LO http://releases.llvm.org/5.0.2/cfe-5.0.2.src.tar.xz
tar xf cfe-5.0.2.src.tar.xz
mv cfe-5.0.2.src llvm-5.0.2.src/tools/clang
cd llvm-5.0.2.src
mkdir build; cd build
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/llvm-5-c3 -DLIBCLANG_BUILD_STATIC=ON -DLLVM_BUILD_LLVM_DYLIB=OFF -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=MinSizeRel -DLLVM_POLLY_BUILD=OFF -DLLVM_ENABLE_LIBCXX=ON -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_RUNTIME=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_ENABLE_ZLIB=OFF -DLLVM_ENABLE_FFI=OFF ..
make -j8; make install
cp lib/libclang.a "$HOME/llvm-5-c3/lib/"
export LIBCLANG_INCLUDE_PATH="$HOME/llvm-5-c3/tools/clang/include/:$HOME/llvm-5-c3/include/"
export LIBCLANG_STATIC_PATH="$HOME/llvm-5-c3/lib/"
export LLVM_CONFIG_PATH="$HOME/llvm-5-c3/bin/llvm-config"