forked from ish-app/ish
-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathxcode-meson.sh
executable file
·44 lines (40 loc) · 984 Bytes
/
xcode-meson.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
#!/bin/bash -ex
crossfile=$SRCROOT/cross-$(basename $TARGET_BUILD_DIR).txt
arch_args=
for arch in $ARCHS; do
arch_args="'-arch', '$arch', $arch_args"
done
first_arch=${ARCHS%% *}
cat > $crossfile <<EOF
[binaries]
c = 'clang'
ar = 'ar'
[host_machine]
system = 'darwin'
cpu_family = '$first_arch'
cpu = '$first_arch'
endian = 'little'
[properties]
c_args = ['-arch', '$first_arch']
needs_exe_wrapper = true
EOF
cd $TARGET_BUILD_DIR
if ! meson introspect --projectinfo; then
export CC="$SRCROOT/no-clang-env.sh clang"
meson $SRCROOT --cross-file $crossfile
fi
buildtype=debug
b_ndebug=false
if [[ $CONFIGURATION == Release ]]; then
buildtype=debugoptimized
b_ndebug=true
fi
log=$ISH_LOG
config=$(meson introspect --buildoptions)
for var in buildtype log b_ndebug; do
old_value=$(jq -r ".[] | select(.name==\"$var\") | .value" <<< $config)
new_value=${!var}
if [[ $old_value != $new_value ]]; then
meson configure -D$var=$new_value
fi
done