Home | History | Annotate | Download | only in build-android
      1 #!/bin/bash
      2 # Update source for glslang, spirv-tools, shaderc
      3 
      4 # Copyright 2016 The Android Open Source Project
      5 # Copyright (C) 2015 Valve Corporation
      6 #
      7 # Licensed under the Apache License, Version 2.0 (the "License");
      8 # you may not use this file except in compliance with the License.
      9 # You may obtain a copy of the License at
     10 #
     11 #      http://www.apache.org/licenses/LICENSE-2.0
     12 #
     13 # Unless required by applicable law or agreed to in writing, software
     14 # distributed under the License is distributed on an "AS IS" BASIS,
     15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 # See the License for the specific language governing permissions and
     17 # limitations under the License.
     18 
     19 set -e
     20 
     21 ANDROIDBUILDDIR=$PWD
     22 BUILDDIR=$ANDROIDBUILDDIR/..
     23 BASEDIR=$BUILDDIR/external
     24 
     25 GLSLANG_REVISION=$(cat $ANDROIDBUILDDIR/glslang_revision_android)
     26 SPIRV_TOOLS_REVISION=$(cat $ANDROIDBUILDDIR/spirv-tools_revision_android)
     27 SHADERC_REVISION=$(cat $ANDROIDBUILDDIR/shaderc_revision_android)
     28 
     29 echo "GLSLANG_REVISION=$GLSLANG_REVISION"
     30 echo "SPIRV_TOOLS_REVISION=$SPIRV_TOOLS_REVISION"
     31 echo "SHADERC_REVISION=$SHADERC_REVISION"
     32 
     33 function create_glslang () {
     34    rm -rf $BASEDIR/glslang
     35    echo "Creating local glslang repository ($BASEDIR/glslang)."
     36    mkdir -p $BASEDIR/glslang
     37    cd $BASEDIR/glslang
     38    git clone https://github.com/KhronosGroup/glslang.git .
     39    git checkout $GLSLANG_REVISION
     40 }
     41 
     42 function update_glslang () {
     43    echo "Updating $BASEDIR/glslang"
     44    cd $BASEDIR/glslang
     45    git fetch --all
     46    git checkout $GLSLANG_REVISION
     47 }
     48 
     49 function create_spirv-tools () {
     50    rm -rf $BASEDIR/spirv-tools
     51    echo "Creating local spirv-tools repository ($BASEDIR/spirv-tools)."
     52    mkdir -p $BASEDIR/spirv-tools
     53    cd $BASEDIR/spirv-tools
     54    git clone https://github.com/KhronosGroup/SPIRV-Tools.git .
     55    git checkout $SPIRV_TOOLS_REVISION
     56 }
     57 
     58 function update_spirv-tools () {
     59    echo "Updating $BASEDIR/spirv-tools"
     60    cd $BASEDIR/spirv-tools
     61    git fetch --all
     62    git checkout $SPIRV_TOOLS_REVISION
     63 }
     64 
     65 function create_shaderc () {
     66    rm -rf $BASEDIR/shaderc
     67    echo "Creating local shaderc repository ($BASEDIR/shaderc)."
     68    cd $BASEDIR
     69    git clone git@github.com:google/shaderc.git
     70    cd shaderc
     71    git checkout $SHADERC_REVISION
     72 }
     73 
     74 function update_shaderc () {
     75    echo "Updating $BASEDIR/shaderc"
     76    cd $BASEDIR/shaderc
     77    git fetch --all
     78    git checkout $SHADERC_REVISION
     79 }
     80 
     81 function build_shaderc () {
     82    echo "Building $BASEDIR/shaderc"
     83    cd $BASEDIR/shaderc/android_test
     84    ndk-build THIRD_PARTY_PATH=../.. -j 4
     85 }
     86 
     87 if [ ! -d "$BASEDIR/glslang" -o ! -d "$BASEDIR/glslang/.git" -o -d "$BASEDIR/glslang/.svn" ]; then
     88    create_glslang
     89 fi
     90  update_glslang
     91 
     92 
     93 if [ ! -d "$BASEDIR/spirv-tools" -o ! -d "$BASEDIR/spirv-tools/.git" ]; then
     94    create_spirv-tools
     95 fi
     96 update_spirv-tools
     97 
     98 if [ ! -d "$BASEDIR/shaderc" -o ! -d "$BASEDIR/shaderc/.git" ]; then
     99      create_shaderc
    100 fi
    101 update_shaderc
    102 build_shaderc
    103 
    104 echo ""
    105 echo "${0##*/} finished."
    106 
    107