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/third_party
     24 SHADERCTHIRDPARTY=$BASEDIR/shaderc/third_party
     25 
     26 GLSLANG_REVISION=$(cat $ANDROIDBUILDDIR/glslang_revision_android)
     27 SPIRV_TOOLS_REVISION=$(cat $ANDROIDBUILDDIR/spirv-tools_revision_android)
     28 SPIRV_HEADERS_REVISION=$(cat $ANDROIDBUILDDIR/spirv-headers_revision_android)
     29 SHADERC_REVISION=$(cat $ANDROIDBUILDDIR/shaderc_revision_android)
     30 
     31 echo "GLSLANG_REVISION=$GLSLANG_REVISION"
     32 echo "SPIRV_TOOLS_REVISION=$SPIRV_TOOLS_REVISION"
     33 echo "SHADERC_REVISION=$SHADERC_REVISION"
     34 
     35 function create_glslang () {
     36    rm -rf $SHADERCTHIRDPARTY/glslang
     37    echo "Creating local glslang repository ($SHADERCTHIRDPARTY/glslang)."
     38    mkdir -p $SHADERCTHIRDPARTY/glslang
     39    cd $SHADERCTHIRDPARTY/glslang
     40    git clone persistent-https://android.git.corp.google.com/platform/external/shaderc/glslang .
     41    git checkout $GLSLANG_REVISION
     42 }
     43 
     44 function update_glslang () {
     45    echo "Updating $SHADERCTHIRDPARTY/glslang"
     46    cd $SHADERCTHIRDPARTY/glslang
     47    git fetch --all
     48    git checkout $GLSLANG_REVISION
     49 }
     50 
     51 function create_spirv-tools () {
     52    rm -rf $SHADERCTHIRDPARTY/spirv-tools
     53    echo "Creating local spirv-tools repository ($SHADERCTHIRDPARTY/spirv-tools)."
     54    mkdir -p $SHADERCTHIRDPARTY/spirv-tools
     55    cd $SHADERCTHIRDPARTY/spirv-tools
     56    git clone persistent-https://android.git.corp.google.com/platform/external/shaderc/spirv-tools .
     57    git checkout $SPIRV_TOOLS_REVISION
     58 }
     59 
     60 function update_spirv-tools () {
     61    echo "Updating $SHADERCTHIRDPARTY/spirv-tools"
     62    cd $SHADERCTHIRDPARTY/spirv-tools
     63    git fetch --all
     64    git checkout $SPIRV_TOOLS_REVISION
     65 }
     66 
     67 function create_spirv-headers () {
     68    rm -rf $SHADERCTHIRDPARTY/spirv-tools/external/spirv-headers
     69    echo "Creating local spirv-headers repository ($SHADERCTHIRDPARTY/spirv-tools/external/spirv-headers)."
     70    mkdir -p $SHADERCTHIRDPARTY/spirv-tools/external/spirv-headers
     71    cd $SHADERCTHIRDPARTY/spirv-tools/external/spirv-headers
     72    git clone persistent-https://android.git.corp.google.com/platform/external/shaderc/spirv-headers .
     73    git checkout $SPIRV_HEADERS_REVISION
     74 }
     75 
     76 function update_spirv-headers () {
     77    echo "Updating $SHADERCTHIRDPARTY/spirv-tools/external/spirv-headers"
     78    cd $SHADERCTHIRDPARTY/spirv-tools/external/spirv-headers
     79    git fetch --all
     80    git checkout $SPIRV_HEADERS_REVISION
     81 }
     82 
     83 function create_shaderc () {
     84    rm -rf $BASEDIR/shaderc
     85    echo "Creating local shaderc repository ($BASEDIR/shaderc)."
     86    mkdir -p $BASEDIR
     87    cd $BASEDIR
     88    git clone persistent-https://android.git.corp.google.com/platform/external/shaderc/shaderc
     89    cd shaderc
     90    git checkout $SHADERC_REVISION
     91 }
     92 
     93 function update_shaderc () {
     94    echo "Updating $BASEDIR/shaderc"
     95    cd $BASEDIR/shaderc
     96    git fetch --all
     97    git checkout $SHADERC_REVISION
     98 }
     99 
    100 function build_shaderc () {
    101    echo "Building $BASEDIR/shaderc"
    102    cd $BASEDIR/shaderc/android_test
    103    ndk-build -j 4
    104 }
    105 
    106 # Must be first since it provides folder that hosts
    107 # glslang and spirv-headers
    108 if [ ! -d "$BASEDIR/shaderc" -o ! -d "$BASEDIR/shaderc/.git" ]; then
    109      create_shaderc
    110 fi
    111 
    112 update_shaderc
    113 if [ ! -d "$BASEDIR/glslang" -o ! -d "$BASEDIR/glslang/.git" -o -d "$BASEDIR/glslang/.svn" ]; then
    114    create_glslang
    115 fi
    116  update_glslang
    117 
    118 if [ ! -d "$BASEDIR/spirv-tools" -o ! -d "$BASEDIR/spirv-tools/.git" ]; then
    119    create_spirv-tools
    120 fi
    121 update_spirv-tools
    122 
    123 if [ ! -d "$BASEDIR/spirv-tools/external/spirv-headers" -o ! -d "$BASEDIR/spirv-tools/external/spirv-headers/.git" ]; then
    124    create_spirv-headers
    125 fi
    126 update_spirv-headers
    127 
    128 build_shaderc
    129 
    130 echo ""
    131 echo "${0##*/} finished."
    132 
    133