blob: e763f635609d2274d66b30f123f3dd815326751f [file] [log] [blame]
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -06001#!/bin/bash
2# Update source for glslang and LLVM
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -06003
Cody Northrop5934a882015-05-12 16:23:59 -06004set -e
5
6LUNARGLASS_REVISION=$(cat $PWD/LunarGLASS_revision)
7GLSLANG_REVISION=$(cat $PWD/glslang_revision)
8echo "LUNARGLASS_REVISION=$LUNARGLASS_REVISION"
9echo "GLSLANG_REVISION=$GLSLANG_REVISION"
Courtney Goeltzenleuchter5120b842014-10-29 17:50:15 -060010
GregF251f0582015-09-22 17:07:37 -060011LUNARGLASS_REVISION_R32=$(cat $PWD/LunarGLASS_revision_R32)
GregF251f0582015-09-22 17:07:37 -060012echo "LUNARGLASS_REVISION_R32=$LUNARGLASS_REVISION_R32"
GregF251f0582015-09-22 17:07:37 -060013
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060014BUILDDIR=$PWD
15BASEDIR=$BUILDDIR/..
16
17function create_glslang () {
18 rm -rf $BASEDIR/glslang
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070019 echo "Creating local glslang repository ($BASEDIR/glslang)."
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060020 mkdir -p $BASEDIR/glslang
21 cd $BASEDIR/glslang
GregF6ee67122015-10-02 13:11:01 -060022 git clone git@gitlab.khronos.org:GLSL/glslang.git .
Courtney Goeltzenleuchtercd9f8742015-10-08 09:06:53 -060023 git checkout $GLSLANG_REVISION
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060024}
25
26function update_glslang () {
27 echo "Updating $BASEDIR/glslang"
28 cd $BASEDIR/glslang
Cody Northrop5a4883b2015-07-08 09:53:03 -060029 git fetch --all
Courtney Goeltzenleuchtercd9f8742015-10-08 09:06:53 -060030 git checkout $GLSLANG_REVISION
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060031}
32
33function create_LunarGLASS () {
34 rm -rf $BASEDIR/LunarGLASS
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070035 echo "Creating local LunarGLASS repository ($BASEDIR/LunarGLASS)."
GregF13977eb2015-09-21 17:53:57 -060036 mkdir -p $BASEDIR/LunarGLASS
37 cd $BASEDIR/LunarGLASS
38 git clone https://github.com/LunarG/LunarGLASS.git .
39 mkdir -p Core/LLVM
40 cd Core/LLVM
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060041 wget http://llvm.org/releases/3.4/llvm-3.4.src.tar.gz
42 tar --gzip -xf llvm-3.4.src.tar.gz
GregF13977eb2015-09-21 17:53:57 -060043 git checkout -f . # put back the LunarGLASS versions of some LLVM files
44 git checkout $LUNARGLASS_REVISION
Cody Northrop2bed4c32015-10-08 09:39:57 -060045 svn checkout -r $LUNARGLASS_REVISION_R32 --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/LunarGLASS/ .
GregF251f0582015-09-22 17:07:37 -060046 svn revert -R .
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060047}
48
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060049function update_LunarGLASS () {
50 echo "Updating $BASEDIR/LunarGLASS"
51 cd $BASEDIR/LunarGLASS
GregF13977eb2015-09-21 17:53:57 -060052 git fetch
GregF251f0582015-09-22 17:07:37 -060053 git checkout -f .
54 git checkout $LUNARGLASS_REVISION
GregF13977eb2015-09-21 17:53:57 -060055 # Figure out how to do this with git
GregF251f0582015-09-22 17:07:37 -060056 #git checkout $LUNARGLASS_REVISION |& tee gitout
GregF13977eb2015-09-21 17:53:57 -060057 #if grep --quiet LLVM gitout ; then
58 # rm -rf $BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4/build
59 #fi
GregF251f0582015-09-22 17:07:37 -060060 #rm -rf gitout
61 if [ ! -d "$BASEDIR/LunarGLASS/.svn" ]; then
Cody Northrop2bed4c32015-10-08 09:39:57 -060062 svn checkout -r $LUNARGLASS_REVISION_R32 --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/LunarGLASS/ .
GregF251f0582015-09-22 17:07:37 -060063 fi
64 svn update -r $LUNARGLASS_REVISION_R32
65 svn revert -R .
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060066}
67
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060068function build_glslang () {
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070069 echo "Building $BASEDIR/glslang"
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060070 cd $BASEDIR/glslang
71 mkdir -p build
72 cd build
73 cmake -D CMAKE_BUILD_TYPE=Release ..
74 cmake -D CMAKE_BUILD_TYPE=Release ..
75 make
76 make install
77}
78
79function build_LunarGLASS () {
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070080 echo "Building $BASEDIR/LunarGLASS"
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060081 cd $BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4
82 if [ ! -d "$BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4/build" ]; then
83 mkdir -p build
84 cd build
85 ../configure --enable-terminfo=no --enable-curses=no
86 REQUIRES_RTTI=1 make -j $(nproc) && make install DESTDIR=`pwd`/install
87 fi
88 cd $BASEDIR/LunarGLASS
89 mkdir -p build
90 cd build
91 cmake -D CMAKE_BUILD_TYPE=Release ..
92 cmake -D CMAKE_BUILD_TYPE=Release ..
93 make
94 make install
95}
96
GregF6ee67122015-10-02 13:11:01 -060097if [ ! -d "$BASEDIR/glslang" -o ! -d "$BASEDIR/glslang/.git" -o -d "$BASEDIR/glslang/.svn" ]; then
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060098 create_glslang
99fi
GregF13977eb2015-09-21 17:53:57 -0600100if [ ! -d "$BASEDIR/LunarGLASS" -o ! -d "$BASEDIR/LunarGLASS/.git" ]; then
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600101 create_LunarGLASS
102fi
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -0700103
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600104update_glslang
105update_LunarGLASS
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600106
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600107build_glslang
Courtney Goeltzenleuchter5120b842014-10-29 17:50:15 -0600108build_LunarGLASS