SPIRV-LLVM-Translator is a tool and a library for bi-directional translation between SPIR-V and LLVM IR.
CMake-3.31.5, libxml2-2.13.6, LLVM-19.1.7 (with Clang), SPIRV-Headers-1.4.304.1, and SPIRV-Tools-1.4.304.1
Install SPIRV-LLVM-Translator by running the following commands:
mkdir build &&
cd build &&
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_SKIP_INSTALL_RPATH=ON \
-D BUILD_SHARED_LIBS=ON \
-D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \
-G Ninja .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
First clean the build directory:
rm -rf *
Install lib32-SPIRV-LLVM-Translator by running the following commands:
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_INSTALL_LIBDIR=lib32 \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_SKIP_INSTALL_RPATH=ON \
-D BUILD_SHARED_LIBS=ON \
-D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \
-G Ninja .. &&
ninja
Now, as the root user:
DESTDIR=$PWD/DESTDIR ninja install && cp -vr DESTDIR/usr/lib32/* /usr/lib32 && rm -rf DESTDIR && ldconfig
Inspect CMakeLists.txt and other
CMake related files for a full
list of options.
-D
CMAKE_SKIP_INSTALL_RPATH=ON: This switch makes
cmake remove
hardcoded library search paths (rpath) when installing a binary
executable file or a shared library. This package does not need
rpath once it's installed into the standard location, and rpath may
sometimes cause unwanted effects or even security issues.
-D BUILD_SHARED_LIBS=ON:
This switch forces the build system to install shared libraries
instead of static libraries.
-D
LLVM_EXTERNAL_SPIRV_HEADERS_*: These switches tells the
build system that SPIRV-Headers-1.4.304.1 is installed
in /usr. This is needed since the build system tries to download
and use the downloaded headers not on the system if the switch
isn't invoked.