-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·135 lines (112 loc) · 3.77 KB
/
build.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/zsh
set -e
cd `dirname $0`
check_success()
{
if [ $? -eq 0 ]; then
echo "Succeeded"
else
echo "Failed"
exit
fi
}
if [ ! -d "depot_tools" ]; then
echo "Fetching depot tools"
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
check_success
else
echo "Using existing depot tools"
fi
export PATH=`pwd`/depot_tools:$PATH
if [ ! -d "angle" ]; then
mkdir angle
cd angle
echo "Fetching source code"
fetch angle
check_success
else
cd angle
echo "Updating existing checkout"
git stash
gclient sync
check_success
fi
if [ ! -z "$3" ]; then
echo "Checking out tag: $3"
git checkout $3
check_success
fi
echo "Apply Apple ANGLE patch"
git apply ../angle.apple.patch --ignore-whitespace --whitespace=nowarn -3
check_success
echo "Apply Flip-y ANGLE patch"
git apply ../flip_y.patch --ignore-whitespace --whitespace=nowarn -3
check_success
echo "Apply Variable Rasterization Rate Map ANGLE patch"
git apply ../variable_rasterization_rate_map.patch --ignore-whitespace --whitespace=nowarn -3
check_success
echo "Apply visionOS ANGLE patch"
git apply ../angle.visionos.patch --ignore-whitespace --whitespace=nowarn -3
check_success
cd build
git stash
echo "Apply Apple chromium build patch"
git apply ../../chromium.build.apple.patch --ignore-whitespace --whitespace=nowarn -3
check_success
echo "Apply visionOS chromium build patch"
git apply ../../chromium.build.visionos.patch --ignore-whitespace --whitespace=nowarn -3
check_success
cd ..
build_angle()
{
echo "Building for $1 $2"
mkdir -p out/$1/$2/
check_success
cp ../$1.$2.args.gn out/$1/$2/args.gn
check_success
gn gen out/$1/$2/
check_success
autoninja -j4 -C out/$1/$2/
check_success
if [ "$1" = "Mac" ]; then
cp ../bundle_in_framework.sh out/$1/$2/
check_success
out/$1/$2/bundle_in_framework.sh
check_success
MIN_MAC_VERSION=11.0
../generate_info_plist.sh `pwd`/../Info.plist `pwd`/out/$1/$2/libEGL.framework/Versions/A/Resources/Info.plist org.chromium.ost.libEGL libEGL $MIN_MAC_VERSION
../generate_info_plist.sh `pwd`/../Info.plist `pwd`/out/$1/$2/libGLESv2.framework/Versions/A/Resources/Info.plist org.chromium.ost.libGLESv2 libGLESv2 $MIN_MAC_VERSION
plutil -insert CFBundleShortVersionString -string 1.0 `pwd`/out/$1/$2/libGLESv2.framework/Versions/A/Resources/Info.plist
plutil -insert CFBundleShortVersionString -string 1.0 `pwd`/out/$1/$2/libEGL.framework/Versions/A/Resources/Info.plist
elif [ "$1" = "Catalyst" ]; then
plutil -insert CFBundleShortVersionString -string 1.0 `pwd`/out/$1/$2/libGLESv2.framework/Versions/A/Resources/Info.plist
plutil -insert CFBundleShortVersionString -string 1.0 `pwd`/out/$1/$2/libEGL.framework/Versions/A/Resources/Info.plist
else
plutil -insert CFBundleShortVersionString -string 1.0 `pwd`/out/$1/$2/libGLESv2.framework/Info.plist
plutil -insert CFBundleShortVersionString -string 1.0 `pwd`/out/$1/$2/libEGL.framework/Info.plist
fi
}
complete_framework()
{
../create_egl_headers.sh . ../resources/libEGL/Headers
../create_glesv2_headers.sh . ../resources/libGLESv2/Headers
for FRAMEWORK in 'libEGL' 'libGLESv2';
do
if [ "$1" = "Mac" ] || [ "$1" = "Catalyst" ]; then
cp -r ../resources/$FRAMEWORK/Headers out/$1/$2/$FRAMEWORK.framework/Versions/A
cp -r ../resources/$FRAMEWORK/Modules out/$1/$2/$FRAMEWORK.framework/Versions/A
cd out/$1/$2/$FRAMEWORK.framework
ln -s Versions/Current/Headers Headers
ln -s Versions/Current/Modules Modules
cd ../../../..
else
cp -r ../resources/$FRAMEWORK/Headers out/$1/$2/$FRAMEWORK.framework
cp -r ../resources/$FRAMEWORK/Modules out/$1/$2/$FRAMEWORK.framework
fi
done
}
build_angle $1 $2
complete_framework $1 $2
check_success
rm -rf out/$1/$2/obj
tar -czvf angle.tar.gz out/