blob: cade2b6dcd94623aa4f58fa0d1e101a4c014c0b4 [file] [log] [blame]
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -06001#!/bin/bash
2# Update source for glslang and LLVM
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -06003
Cody Northropa8ac1352015-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 Goeltzenleuchter90a6f4b2014-10-29 17:50:15 -060010
GregFf94b8382015-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 Goeltzenleuchter87094962014-10-17 18:21:42 -060016BUILDDIR=$PWD
17BASEDIR=$BUILDDIR/..
18
19function create_glslang () {
20 rm -rf $BASEDIR/glslang
Courtney Goeltzenleuchter4f572612015-01-07 13:35:32 -070021 echo "Creating local glslang repository ($BASEDIR/glslang)."
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060022 mkdir -p $BASEDIR/glslang
23 cd $BASEDIR/glslang
GregF9114f392015-10-02 13:11:01 -060024 git clone git@gitlab.khronos.org:GLSL/glslang.git .
25 git branch --track Rev32 origin/Rev32
26 git checkout Rev32
27 # git checkout $GLSLANG_REVISION
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060028}
29
30function update_glslang () {
31 echo "Updating $BASEDIR/glslang"
32 cd $BASEDIR/glslang
Cody Northrop139ec4f2015-07-08 09:53:03 -060033 git fetch --all
GregF9114f392015-10-02 13:11:01 -060034 git checkout Rev32
GregFf94b8382015-09-22 17:07:37 -060035 git checkout -f .
GregF9114f392015-10-02 13:11:01 -060036 # git checkout $GLSLANG_REVISION
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060037}
38
39function create_LunarGLASS () {
40 rm -rf $BASEDIR/LunarGLASS
Courtney Goeltzenleuchter4f572612015-01-07 13:35:32 -070041 echo "Creating local LunarGLASS repository ($BASEDIR/LunarGLASS)."
GregF425a7e02015-09-21 17:53:57 -060042 mkdir -p $BASEDIR/LunarGLASS
43 cd $BASEDIR/LunarGLASS
44 git clone https://github.com/LunarG/LunarGLASS.git .
45 mkdir -p Core/LLVM
46 cd Core/LLVM
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060047 wget http://llvm.org/releases/3.4/llvm-3.4.src.tar.gz
48 tar --gzip -xf llvm-3.4.src.tar.gz
GregF425a7e02015-09-21 17:53:57 -060049 git checkout -f . # put back the LunarGLASS versions of some LLVM files
50 git checkout $LUNARGLASS_REVISION
GregFf94b8382015-09-22 17:07:37 -060051 svn checkout --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/LunarGLASS/ .
52 svn update -r $LUNARGLASS_REVISION_R32
53 svn revert -R .
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060054}
55
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060056function update_LunarGLASS () {
57 echo "Updating $BASEDIR/LunarGLASS"
58 cd $BASEDIR/LunarGLASS
GregF425a7e02015-09-21 17:53:57 -060059 git fetch
GregFf94b8382015-09-22 17:07:37 -060060 git checkout -f .
61 git checkout $LUNARGLASS_REVISION
GregF425a7e02015-09-21 17:53:57 -060062 # Figure out how to do this with git
GregFf94b8382015-09-22 17:07:37 -060063 #git checkout $LUNARGLASS_REVISION |& tee gitout
GregF425a7e02015-09-21 17:53:57 -060064 #if grep --quiet LLVM gitout ; then
65 # rm -rf $BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4/build
66 #fi
GregFf94b8382015-09-22 17:07:37 -060067 #rm -rf gitout
68 if [ ! -d "$BASEDIR/LunarGLASS/.svn" ]; then
69 svn checkout --force https://cvs.khronos.org/svn/repos/SPIRV/trunk/LunarGLASS/ .
70 fi
71 svn update -r $LUNARGLASS_REVISION_R32
72 svn revert -R .
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060073}
74
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060075function build_glslang () {
Courtney Goeltzenleuchter4f572612015-01-07 13:35:32 -070076 echo "Building $BASEDIR/glslang"
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060077 cd $BASEDIR/glslang
78 mkdir -p build
79 cd build
80 cmake -D CMAKE_BUILD_TYPE=Release ..
81 cmake -D CMAKE_BUILD_TYPE=Release ..
82 make
83 make install
84}
85
86function build_LunarGLASS () {
Courtney Goeltzenleuchter4f572612015-01-07 13:35:32 -070087 echo "Building $BASEDIR/LunarGLASS"
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -060088 cd $BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4
89 if [ ! -d "$BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4/build" ]; then
90 mkdir -p build
91 cd build
92 ../configure --enable-terminfo=no --enable-curses=no
93 REQUIRES_RTTI=1 make -j $(nproc) && make install DESTDIR=`pwd`/install
94 fi
95 cd $BASEDIR/LunarGLASS
96 mkdir -p build
97 cd build
98 cmake -D CMAKE_BUILD_TYPE=Release ..
99 cmake -D CMAKE_BUILD_TYPE=Release ..
100 make
101 make install
102}
103
GregF9114f392015-10-02 13:11:01 -0600104if [ ! -d "$BASEDIR/glslang" -o ! -d "$BASEDIR/glslang/.git" -o -d "$BASEDIR/glslang/.svn" ]; then
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -0600105 create_glslang
106fi
GregF425a7e02015-09-21 17:53:57 -0600107if [ ! -d "$BASEDIR/LunarGLASS" -o ! -d "$BASEDIR/LunarGLASS/.git" ]; then
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -0600108 create_LunarGLASS
109fi
Courtney Goeltzenleuchter4f572612015-01-07 13:35:32 -0700110
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -0600111update_glslang
112update_LunarGLASS
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -0600113
Courtney Goeltzenleuchter87094962014-10-17 18:21:42 -0600114build_glslang
Courtney Goeltzenleuchter90a6f4b2014-10-29 17:50:15 -0600115build_LunarGLASS