blob: b1ee742b5bd3f99eb29a7599ad6eb123f7824441 [file] [log] [blame]
Cody Northropb3106db2016-03-29 10:06:49 -06001#!/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
19set -e
20
21ANDROIDBUILDDIR=$PWD
Cody Northrop544a42e2016-11-03 14:44:55 -060022BUILDDIR=$ANDROIDBUILDDIR
Cody Northrop217d23c2016-05-03 15:38:05 -060023BASEDIR=$BUILDDIR/external
Cody Northropb3106db2016-03-29 10:06:49 -060024
Cody Northrop4bf55d72016-03-31 16:33:00 -060025GLSLANG_REVISION=$(cat $ANDROIDBUILDDIR/glslang_revision_android)
26SPIRV_TOOLS_REVISION=$(cat $ANDROIDBUILDDIR/spirv-tools_revision_android)
Cody Northrop83ff93f2016-08-01 10:27:25 -060027SPIRV_HEADERS_REVISION=$(cat $ANDROIDBUILDDIR/spirv-headers_revision_android)
Cody Northrop4bf55d72016-03-31 16:33:00 -060028SHADERC_REVISION=$(cat $ANDROIDBUILDDIR/shaderc_revision_android)
Cody Northropb3106db2016-03-29 10:06:49 -060029
30echo "GLSLANG_REVISION=$GLSLANG_REVISION"
31echo "SPIRV_TOOLS_REVISION=$SPIRV_TOOLS_REVISION"
Cody Northrop7396cb02017-03-27 16:30:14 -060032echo "SPIRV_HEADERS_REVISION=$SPIRV_HEADERS_REVISION"
Cody Northropb3106db2016-03-29 10:06:49 -060033echo "SHADERC_REVISION=$SHADERC_REVISION"
34
Cody Northrop7396cb02017-03-27 16:30:14 -060035GLSLANG_URL=$(cat $ANDROIDBUILDDIR/glslang_url_android)
36SPIRV_TOOLS_URL=$(cat $ANDROIDBUILDDIR/spirv-tools_url_android)
37SPIRV_HEADERS_URL=$(cat $ANDROIDBUILDDIR/spirv-headers_url_android)
38SHADERC_URL=$(cat $ANDROIDBUILDDIR/shaderc_url_android)
39
40echo "GLSLANG_URL=$GLSLANG_URL"
41echo "SPIRV_TOOL_URLS_=$SPIRV_TOOLS_URL"
42echo "SPIRV_HEADERS_URL=$SPIRV_HEADERS_URL"
43echo "SHADERC_URL=$SHADERC_URL"
44
Cody Northrop6e556a12016-11-03 14:35:08 -060045if [[ $(uname) == "Linux" ]]; then
Ciro Santilli0a05dd72017-03-07 08:00:31 +000046 cores="$(nproc || echo 4)"
Cody Northrop6e556a12016-11-03 14:35:08 -060047elif [[ $(uname) == "Darwin" ]]; then
48 cores=$(sysctl -n hw.ncpu)
49fi
50
Cody Northropb3106db2016-03-29 10:06:49 -060051function create_glslang () {
52 rm -rf $BASEDIR/glslang
53 echo "Creating local glslang repository ($BASEDIR/glslang)."
54 mkdir -p $BASEDIR/glslang
55 cd $BASEDIR/glslang
Cody Northrop7396cb02017-03-27 16:30:14 -060056 git clone $GLSLANG_URL .
Cody Northropb3106db2016-03-29 10:06:49 -060057 git checkout $GLSLANG_REVISION
58}
59
60function update_glslang () {
61 echo "Updating $BASEDIR/glslang"
62 cd $BASEDIR/glslang
Cody Northrop7396cb02017-03-27 16:30:14 -060063 if [[ $(git config --get remote.origin.url) != $GLSLANG_URL ]]; then
64 echo "glslang URL mismatch, recreating local repo"
65 create_glslang
66 return
67 fi
Cody Northropb3106db2016-03-29 10:06:49 -060068 git fetch --all
69 git checkout $GLSLANG_REVISION
70}
71
72function create_spirv-tools () {
73 rm -rf $BASEDIR/spirv-tools
74 echo "Creating local spirv-tools repository ($BASEDIR/spirv-tools)."
75 mkdir -p $BASEDIR/spirv-tools
76 cd $BASEDIR/spirv-tools
Cody Northrop7396cb02017-03-27 16:30:14 -060077 git clone $SPIRV_TOOLS_URL .
Cody Northropb3106db2016-03-29 10:06:49 -060078 git checkout $SPIRV_TOOLS_REVISION
79}
80
81function update_spirv-tools () {
82 echo "Updating $BASEDIR/spirv-tools"
83 cd $BASEDIR/spirv-tools
Cody Northrop7396cb02017-03-27 16:30:14 -060084 if [[ $(git config --get remote.origin.url) != $SPIRV_TOOLS_URL ]]; then
85 echo "spirv-tools URL mismatch, recreating local repo"
86 create_spirv-tools
87 return
88 fi
Cody Northropb3106db2016-03-29 10:06:49 -060089 git fetch --all
90 git checkout $SPIRV_TOOLS_REVISION
91}
92
Cody Northrop83ff93f2016-08-01 10:27:25 -060093function create_spirv-headers () {
94 rm -rf $BASEDIR/spirv-tools/external/spirv-headers
95 echo "Creating local spirv-headers repository ($BASEDIR/spirv-tools/external/spirv-headers)."
96 mkdir -p $BASEDIR/spirv-tools/external/spirv-headers
97 cd $BASEDIR/spirv-tools/external/spirv-headers
Cody Northrop7396cb02017-03-27 16:30:14 -060098 git clone $SPIRV_HEADERS_URL .
Cody Northrop83ff93f2016-08-01 10:27:25 -060099 git checkout $SPIRV_HEADERS_REVISION
100}
101
102function update_spirv-headers () {
103 echo "Updating $BASEDIR/spirv-tools/external/spirv-headers"
104 cd $BASEDIR/spirv-tools/external/spirv-headers
Cody Northrop7396cb02017-03-27 16:30:14 -0600105 if [[ $(git config --get remote.origin.url) != $SPIRV_HEADERS_URL ]]; then
106 echo "spirv-headers URL mismatch, recreating local repo"
107 create_spirv-headers
108 return
109 fi
Cody Northrop83ff93f2016-08-01 10:27:25 -0600110 git fetch --all
111 git checkout $SPIRV_HEADERS_REVISION
112}
113
Cody Northropb3106db2016-03-29 10:06:49 -0600114function create_shaderc () {
115 rm -rf $BASEDIR/shaderc
116 echo "Creating local shaderc repository ($BASEDIR/shaderc)."
117 cd $BASEDIR
Cody Northrop7396cb02017-03-27 16:30:14 -0600118 git clone $SHADERC_URL
Cody Northropb3106db2016-03-29 10:06:49 -0600119 cd shaderc
120 git checkout $SHADERC_REVISION
121}
122
123function update_shaderc () {
124 echo "Updating $BASEDIR/shaderc"
125 cd $BASEDIR/shaderc
Cody Northrop7396cb02017-03-27 16:30:14 -0600126 if [[ $(git config --get remote.origin.url) != $SHADERC_URL ]]; then
127 echo "shaderc URL mismatch, recreating local repo"
128 create_shaderc
129 return
130 fi
Cody Northropb3106db2016-03-29 10:06:49 -0600131 git fetch --all
132 git checkout $SHADERC_REVISION
133}
134
135function build_shaderc () {
136 echo "Building $BASEDIR/shaderc"
137 cd $BASEDIR/shaderc/android_test
Cody Northrop6e556a12016-11-03 14:35:08 -0600138 ndk-build THIRD_PARTY_PATH=../.. -j $cores
Cody Northropb3106db2016-03-29 10:06:49 -0600139}
140
141if [ ! -d "$BASEDIR/glslang" -o ! -d "$BASEDIR/glslang/.git" -o -d "$BASEDIR/glslang/.svn" ]; then
142 create_glslang
143fi
Cody Northrop7396cb02017-03-27 16:30:14 -0600144update_glslang
Cody Northropb3106db2016-03-29 10:06:49 -0600145
146
147if [ ! -d "$BASEDIR/spirv-tools" -o ! -d "$BASEDIR/spirv-tools/.git" ]; then
148 create_spirv-tools
149fi
150update_spirv-tools
151
Cody Northrop83ff93f2016-08-01 10:27:25 -0600152if [ ! -d "$BASEDIR/spirv-tools/external/spirv-headers" -o ! -d "$BASEDIR/spirv-tools/external/spirv-headers/.git" ]; then
153 create_spirv-headers
154fi
155update_spirv-headers
156
Cody Northropb3106db2016-03-29 10:06:49 -0600157if [ ! -d "$BASEDIR/shaderc" -o ! -d "$BASEDIR/shaderc/.git" ]; then
158 create_shaderc
159fi
160update_shaderc
161build_shaderc
162
163echo ""
164echo "${0##*/} finished."
165