forked from google/angle
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathupdate_angle.sh
executable file
·53 lines (43 loc) · 1.58 KB
/
update_angle.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
# The need for the custom steps has been found empirically, by multiple build attempts.
# The commands to run and their arguments have been obtained from the various Meson build scripts.
# Some can (or even must) be run locally at the Mesa repo, then resulting files are copied.
# Others, due to the sheer size of the generated files, are instead run at the Godot build system;
# this script will only copy the needed scripts and data files from Mesa.
check_error() {
if [ $? -ne 0 ]; then echo "Error!" && exit 1; fi
}
run_custom_steps_at_source() {
run_step() {
local P_SCRIPT_PLUS_ARGS=$1
local P_REDIR_TARGET=$2
echo "Custom step: $P_SCRIPT_PLUS_ARGS"
local OUTDIR=$GODOT_DIR/godot-angle/
mkdir -p $OUTDIR
check_error
pushd ./angle > /dev/null
check_error
eval "local COMMAND=\"$P_SCRIPT_PLUS_ARGS\""
if [ ! -z "$P_REDIR_TARGET" ]; then
eval "TARGET=\"$P_REDIR_TARGET\""
python3 $COMMAND > $TARGET
else
python3 $COMMAND
fi
check_error
popd > /dev/null
check_error
}
run_step 'src/commit_id.py gen $OUTDIR/angle_commit.h'
run_step 'src/program_serialize_data_version.py $OUTDIR/ANGLEShaderProgramVersion.h ../file_list'
}
GODOT_DIR=$(pwd)
if [ -d ./godot-angle ]; then
echo "Clearing godot-angle/"
find ./godot-angle -mindepth 1 -type d | xargs rm -rf
fi
run_custom_steps_at_source
if [ -d ./godot-patches ]; then
echo "Applying patches"
find ./godot-patches -name '*.diff' -exec git apply {} \;
fi