-
Notifications
You must be signed in to change notification settings - Fork 16
/
mk-meson-cross.sh
executable file
·78 lines (70 loc) · 1.33 KB
/
mk-meson-cross.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
#!/usr/bin/env bash
function flags2list() {
while (( "$#" )); do
echo -n "'$1'";
[ $# -gt 1 ] && printf ",\n " || echo ""
shift
done
}
function ccachify() {
if [ "$ENABLE_CCACHE" ]; then
echo "['ccache', '$1']"
else
echo "'$1'"
fi
}
# sanity
if [ -z "$1" ]; then
echo "No platform specified." 1>&2
exit 1
fi
ENABLE_CCACHE=$2
# defaults
PLAT_ENDIAN="little"
TOOL_PREFIX="${TARGET_HOST}-"
case "$1" in
"vita")
PLAT_SYSTEM="vita"
PLAT_CPU_FAMILY="arm"
PLAT_CPU="cortex-a9mpcore"
;;
"switch")
PLAT_SYSTEM="horizon"
PLAT_CPU_FAMILY="aarch64"
PLAT_CPU="cortex-a57"
;;
"3ds")
PLAT_SYSTEM="horizon"
PLAT_CPU_FAMILY="arm"
PLAT_CPU="arm11mpcore"
;;
"ogc")
PLAT_SYSTEM="bare"
PLAT_CPU_FAMILY="ppc"
PLAT_CPU="ppc750"
PLAT_ENDIAN="big"
;;
*)
echo "Unsupported platform." 1>&2
exit 1
;;
esac
cat << EOF
# autogenerated, do not edit
[binaries]
c = ` ccachify ${TOOL_PREFIX}gcc `
cpp = ` ccachify ${TOOL_PREFIX}g++ `
ar = '${TOOL_PREFIX}gcc-ar'
strip = '${TOOL_PREFIX}strip'
pkg-config = 'pkg-config'
[built-in options]
c_args = [` flags2list $CPPFLAGS $CFLAGS `]
c_link_args = [` flags2list $LDFLAGS $LIBS `]
cpp_args = [` flags2list $CPPFLAGS $CXXFLAGS `]
cpp_link_args = [` flags2list $LDFLAGS $LIBS `]
[host_machine]
system = '${PLAT_SYSTEM}'
cpu_family = '${PLAT_CPU_FAMILY}'
cpu = '${PLAT_CPU}'
endian = '${PLAT_ENDIAN}'
EOF