blob: 567133773ce77c2e087531e492e93a6920dc3dc7 [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)
12GLSLANG_REVISION_R32=$(cat $PWD/glslang_revision_R32)
13echo "LUNARGLASS_REVISION_R32=$LUNARGLASS_REVISION_R32"
14echo "GLSLANG_REVISION_R32=$GLSLANG_REVISION_R32"
15
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060016BUILDDIR=$PWD
17BASEDIR=$BUILDDIR/..
18
19function create_glslang () {
20 rm -rf $BASEDIR/glslang
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070021 echo "Creating local glslang repository ($BASEDIR/glslang)."
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060022 mkdir -p $BASEDIR/glslang
23 cd $BASEDIR/glslang
Cody Northropf91add82015-07-02 11:33:41 -060024 git clone https://github.com/KhronosGroup/glslang.git .
25 git checkout $GLSLANG_REVISION
GregF251f0582015-09-22 17:07:37 -060026 svn checkout --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/glslang/ .
27 svn update -r $GLSLANG_REVISION_R32
28 svn revert -R .
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060029}
30
31function update_glslang () {
32 echo "Updating $BASEDIR/glslang"
33 cd $BASEDIR/glslang
Cody Northrop5a4883b2015-07-08 09:53:03 -060034 git fetch --all
GregF251f0582015-09-22 17:07:37 -060035 git checkout -f .
Cody Northropf91add82015-07-02 11:33:41 -060036 git checkout $GLSLANG_REVISION
GregF251f0582015-09-22 17:07:37 -060037 if [ ! -d "$BASEDIR/glslang/.svn" ]; then
38 svn checkout --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/glslang/ .
39 fi
40 svn update -r $GLSLANG_REVISION_R32
41 svn revert -R .
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060042}
43
44function create_LunarGLASS () {
45 rm -rf $BASEDIR/LunarGLASS
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070046 echo "Creating local LunarGLASS repository ($BASEDIR/LunarGLASS)."
GregF13977eb2015-09-21 17:53:57 -060047 mkdir -p $BASEDIR/LunarGLASS
48 cd $BASEDIR/LunarGLASS
49 git clone https://github.com/LunarG/LunarGLASS.git .
50 mkdir -p Core/LLVM
51 cd Core/LLVM
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060052 wget http://llvm.org/releases/3.4/llvm-3.4.src.tar.gz
53 tar --gzip -xf llvm-3.4.src.tar.gz
GregF13977eb2015-09-21 17:53:57 -060054 git checkout -f . # put back the LunarGLASS versions of some LLVM files
55 git checkout $LUNARGLASS_REVISION
GregF251f0582015-09-22 17:07:37 -060056 svn checkout --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/LunarGLASS/ .
57 svn update -r $LUNARGLASS_REVISION_R32
58 svn revert -R .
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060059}
60
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060061function update_LunarGLASS () {
62 echo "Updating $BASEDIR/LunarGLASS"
63 cd $BASEDIR/LunarGLASS
GregF13977eb2015-09-21 17:53:57 -060064 git fetch
GregF251f0582015-09-22 17:07:37 -060065 git checkout -f .
66 git checkout $LUNARGLASS_REVISION
GregF13977eb2015-09-21 17:53:57 -060067 # Figure out how to do this with git
GregF251f0582015-09-22 17:07:37 -060068 #git checkout $LUNARGLASS_REVISION |& tee gitout
GregF13977eb2015-09-21 17:53:57 -060069 #if grep --quiet LLVM gitout ; then
70 # rm -rf $BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4/build
71 #fi
GregF251f0582015-09-22 17:07:37 -060072 #rm -rf gitout
73 if [ ! -d "$BASEDIR/LunarGLASS/.svn" ]; then
74 svn checkout --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/LunarGLASS/ .
75 fi
76 svn update -r $LUNARGLASS_REVISION_R32
77 svn revert -R .
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060078}
79
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060080function build_glslang () {
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070081 echo "Building $BASEDIR/glslang"
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060082 cd $BASEDIR/glslang
83 mkdir -p build
84 cd build
85 cmake -D CMAKE_BUILD_TYPE=Release ..
86 cmake -D CMAKE_BUILD_TYPE=Release ..
87 make
88 make install
89}
90
91function build_LunarGLASS () {
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -070092 echo "Building $BASEDIR/LunarGLASS"
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -060093 cd $BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4
94 if [ ! -d "$BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4/build" ]; then
95 mkdir -p build
96 cd build
97 ../configure --enable-terminfo=no --enable-curses=no
98 REQUIRES_RTTI=1 make -j $(nproc) && make install DESTDIR=`pwd`/install
99 fi
100 cd $BASEDIR/LunarGLASS
101 mkdir -p build
102 cd build
103 cmake -D CMAKE_BUILD_TYPE=Release ..
104 cmake -D CMAKE_BUILD_TYPE=Release ..
105 make
106 make install
107}
108
Courtney Goeltzenleuchter37a74cc2015-07-15 11:15:37 -0600109if [ ! -d "$BASEDIR/glslang" -o ! -d "$BASEDIR/glslang/.git" ]; then
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600110 create_glslang
111fi
GregF13977eb2015-09-21 17:53:57 -0600112if [ ! -d "$BASEDIR/LunarGLASS" -o ! -d "$BASEDIR/LunarGLASS/.git" ]; then
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600113 create_LunarGLASS
114fi
Courtney Goeltzenleuchterf000ccf2015-01-07 13:35:32 -0700115
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600116update_glslang
117update_LunarGLASS
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600118
Courtney Goeltzenleuchter7f0a7be2014-10-17 18:21:42 -0600119build_glslang
Courtney Goeltzenleuchter5120b842014-10-29 17:50:15 -0600120build_LunarGLASS