-
Notifications
You must be signed in to change notification settings - Fork 568
/
Copy pathbuild-linux.sh
executable file
·68 lines (51 loc) · 2.07 KB
/
build-linux.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
#!/usr/bin/env bash
set -e
########################################
# 0. assumptions
#
# * We assume our working directory is the root of SkiaSharp repository
#
# * We assume the tools are installed,
# see https://github.com/mono/SkiaSharp/wiki/Building-on-Linux
#
########################################
# 1. set variables for convenience
SONAME=$(grep "libSkiaSharp\W*soname\W*" scripts/VERSIONS.txt | sed 's/^libSkiaSharp\W*soname\W*\([\.0-9]*\).*$/\1/')
SKIA_ROOT=externals/skia
ARCH=x64
# output folders
[[ -z $PLATFORM_DIR ]] && PLATFORM_DIR="linux"
BUILD_OUT=out/$PLATFORM_DIR/$ARCH
ROOT_OUT=output/native/$PLATFORM_DIR/$ARCH
# compiler options
CUSTOM_COMPILERS=
[[ ! -z $CC ]] && CUSTOM_COMPILERS="$CUSTOM_COMPILERS cc=\"$CC\""
[[ ! -z $CXX ]] && CUSTOM_COMPILERS="$CUSTOM_COMPILERS cxx=\"$CXX\""
[[ ! -z $AR ]] && CUSTOM_COMPILERS="$CUSTOM_COMPILERS ar=\"$AR\""
########################################
# 2. sync dependencies
# git-sync-deps
(cd $SKIA_ROOT && python tools/git-sync-deps)
########################################
# 3. build libSkiaSharp.so
# gn
(cd $SKIA_ROOT && ./bin/gn gen "$BUILD_OUT" --args="
is_official_build=true skia_enable_tools=false
target_os=\"linux\" target_cpu=\"$ARCH\"
skia_use_icu=false skia_use_sfntly=false skia_use_piex=true
skia_use_system_expat=false skia_use_system_freetype2=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false
skia_enable_ganesh=true
extra_cflags=[ \"-DSKIA_C_DLL\" ]
extra_ldflags=[ \"-static-libstdc++\", \"-static-libgcc\" ]
$CUSTOM_COMPILERS
linux_soname_version=\"$SONAME\"")
# ninja
./externals/depot_tools/ninja 'SkiaSharp' -C "$SKIA_ROOT/$BUILD_OUT"
########################################
# 4. copy output
# copy inside skia
cp $SKIA_ROOT/$BUILD_OUT/libSkiaSharp.so.$SONAME $SKIA_ROOT/$BUILD_OUT/libSkiaSharp.so
# copy to root output
mkdir -p $ROOT_OUT
cp $SKIA_ROOT/$BUILD_OUT/libSkiaSharp.so.$SONAME $ROOT_OUT/libSkiaSharp.so.$SONAME
cp $SKIA_ROOT/$BUILD_OUT/libSkiaSharp.so.$SONAME $ROOT_OUT/libSkiaSharp.so