1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#!/bin/bash
PLATFORM=$1
OUT=$2
set -ex
# Freshly clone repositories
rm -rf glslang SPIRV-Cross
git clone https://github.com/KhronosGroup/glslang
git clone https://github.com/KhronosGroup/SPIRV-Cross
GENERATOR="Unix Makefiles"
if [ "$PLATFORM" == "win64" ]; then
GENERATOR="Visual Studio 15 2017 Win64";
elif [ "$PLATFORM" == "win32" ]; then
GENERATOR="Visual Studio 15 2017";
else
export CC=clang CXX=clang++ CFLAGS="-fPIC -fvisibility=hidden -stdlib=libc++" LDFLAGS="-nostdlib++ -Wl,--start-group /usr/lib/libc++.a /usr/lib/libc++abi.a -lpthread"
export CXXFLAGS="${CFLAGS}"
export PATH=$(pwd)/cmake-3.26.2-linux-x86_64/bin:$PATH
fi
##### SPIRV-Cross
pushd SPIRV-Cross
mkdir build
pushd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${OUT}"
if [ "${PLATFORM:0:3}" == "win" ]; then
cmake --build . --config Release --target install
else
make -j$(nproc) install
strip --strip-unneeded $(ls ${OUT}/bin/* | grep -v .sh)
fi
popd #build
popd # SPIRV-Cross
##### glslang (and bonus SPIRV-Tools for free)
pushd glslang
# Update external sources
python update_glslang_sources.py
# Now build
mkdir build
pushd build
cmake .. -DSPIRV_ALLOW_TIMERS=OFF -DSPIRV_SKIP_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${OUT}"
if [ "${PLATFORM:0:3}" == "win" ]; then
cmake --build . --config Release --target install
else
make -j$(nproc) install
strip --strip-unneeded $(ls ${OUT}/bin/* | grep -v .sh)
fi
popd #build
popd # glslang
|