update_external_sources.sh revision a8ac135a2d6fa09229443f0c27549efe4d649c19
1#!/bin/bash
2# Update source for glslang and LLVM
3
4set -e
5
6LUNARGLASS_REVISION=$(cat $PWD/LunarGLASS_revision)
7GLSLANG_REVISION=$(cat $PWD/glslang_revision)
8echo "LUNARGLASS_REVISION=$LUNARGLASS_REVISION"
9echo "GLSLANG_REVISION=$GLSLANG_REVISION"
10
11BUILDDIR=$PWD
12BASEDIR=$BUILDDIR/..
13
14function create_glslang () {
15   rm -rf $BASEDIR/glslang
16   echo "Creating local glslang repository ($BASEDIR/glslang)."
17   mkdir -p $BASEDIR/glslang
18   cd $BASEDIR/glslang
19   svn checkout https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang .
20}
21
22function update_glslang () {
23   echo "Updating $BASEDIR/glslang"
24   cd $BASEDIR/glslang
25   svn update -r "$GLSLANG_REVISION"
26}
27
28function create_LunarGLASS () {
29   rm -rf $BASEDIR/LunarGLASS
30   echo "Creating local LunarGLASS repository ($BASEDIR/LunarGLASS)."
31   mkdir -p $BASEDIR/LunarGLASS/Core/LLVM
32   cd $BASEDIR/LunarGLASS/Core/LLVM 
33   wget http://llvm.org/releases/3.4/llvm-3.4.src.tar.gz
34   tar --gzip -xf llvm-3.4.src.tar.gz
35   cd $BASEDIR/LunarGLASS
36   svn checkout --force https://lunarglass.googlecode.com/svn/trunk/ .
37   svn revert --depth=infinity .
38}
39
40function update_LunarGLASS () {
41   echo "Updating $BASEDIR/LunarGLASS"
42   cd $BASEDIR/LunarGLASS
43   svn update -r "$LUNARGLASS_REVISION"
44}
45
46function build_glslang () {
47   echo "Building $BASEDIR/glslang"
48   cd $BASEDIR/glslang
49   mkdir -p build
50   cd build
51   cmake -D CMAKE_BUILD_TYPE=Release ..
52   cmake -D CMAKE_BUILD_TYPE=Release ..
53   make
54   make install
55}
56
57function build_LunarGLASS () {
58   echo "Building $BASEDIR/LunarGLASS"
59   cd $BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4
60   if [ ! -d "$BASEDIR/LunarGLASS/Core/LLVM/llvm-3.4/build" ]; then
61      mkdir -p build
62      cd build
63      ../configure --enable-terminfo=no --enable-curses=no
64      REQUIRES_RTTI=1 make -j $(nproc) && make install DESTDIR=`pwd`/install
65   fi
66   cd $BASEDIR/LunarGLASS
67   mkdir -p build
68   cd build
69   cmake -D CMAKE_BUILD_TYPE=Release ..
70   cmake -D CMAKE_BUILD_TYPE=Release ..
71   make
72   make install
73}
74
75if [ ! -d "$BASEDIR/glslang" ]; then
76   create_glslang
77fi
78if [ ! -d "$BASEDIR/LunarGLASS" ]; then
79   create_LunarGLASS
80fi
81
82update_glslang
83update_LunarGLASS
84
85build_glslang
86build_LunarGLASS
87