toolchain: Add spirv-tools to update_external_sources.sh
diff --git a/spirv-tools_revision b/spirv-tools_revision
new file mode 100644
index 0000000..30a447d
--- /dev/null
+++ b/spirv-tools_revision
@@ -0,0 +1 @@
+a3d0d3c719771e9b81bcd69a739c3d08af37469b
diff --git a/update_external_sources.sh b/update_external_sources.sh
index 4c093f8..ae4cd6f 100755
--- a/update_external_sources.sh
+++ b/update_external_sources.sh
@@ -1,12 +1,14 @@
#!/bin/bash
-# Update source for glslang and LLVM
+# Update source for glslang, LunarGLASS, spirv-tools
set -e
LUNARGLASS_REVISION=$(cat $PWD/LunarGLASS_revision)
GLSLANG_REVISION=$(cat $PWD/glslang_revision)
+SPIRV_TOOLS_REVISION=$(cat $PWD/spirv-tools_revision)
echo "LUNARGLASS_REVISION=$LUNARGLASS_REVISION"
echo "GLSLANG_REVISION=$GLSLANG_REVISION"
+echo "SPIRV_TOOLS_REVISION=$SPIRV_TOOLS_REVISION"
LUNARGLASS_REVISION_R32=$(cat $PWD/LunarGLASS_revision_R32)
echo "LUNARGLASS_REVISION_R32=$LUNARGLASS_REVISION_R32"
@@ -65,6 +67,22 @@
svn revert -R .
}
+function create_spirv-tools () {
+ rm -rf $BASEDIR/spirv-tools
+ echo "Creating local spirv-tools repository ($BASEDIR/spirv-tools)."
+ mkdir -p $BASEDIR/spirv-tools
+ cd $BASEDIR/spirv-tools
+ git clone git@gitlab.khronos.org:spirv/spirv-tools.git .
+ git checkout $SPIRV_TOOLS_REVISION
+}
+
+function update_spirv-tools () {
+ echo "Updating $BASEDIR/spirv-tools"
+ cd $BASEDIR/spirv-tools
+ git fetch --all
+ git checkout $SPIRV_TOOLS_REVISION
+}
+
function build_glslang () {
echo "Building $BASEDIR/glslang"
cd $BASEDIR/glslang
@@ -94,6 +112,15 @@
make install
}
+function build_spirv-tools () {
+ echo "Building $BASEDIR/spirv-tools"
+ cd $BASEDIR/spirv-tools
+ mkdir -p build
+ cd build
+ cmake -D CMAKE_BUILD_TYPE=Release ..
+ make -j $(nproc)
+}
+
# Parse options
while [[ $# > 0 ]]
do
@@ -121,14 +148,19 @@
if [ ! -d "$BASEDIR/LunarGLASS" -o ! -d "$BASEDIR/LunarGLASS/.git" ]; then
create_LunarGLASS
fi
+ if [ ! -d "$BASEDIR/spirv-tools" -o ! -d "$BASEDIR/spirv-tools/.git" ]; then
+ create_spirv-tools
+ fi
fi
update_glslang
if [ ! $GLSLANG_ONLY ]; then
update_LunarGLASS
+ update_spirv-tools
fi
build_glslang
if [ ! $GLSLANG_ONLY ]; then
build_LunarGLASS
+ build_spirv-tools
fi