blob: 6818aa3b5c0177df6fb7ce8049582cf0f77a692d (
plain)
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
|
#!/usr/bin/env bash
### functions
message() { echo -e "\e[1;32m\n${1}\n\e[0m"; }
warning() { echo -e "\e[1;33m\nWarning: ${1}\n\e[0m"; }
error() { echo -e "\e[1;31m\nError: ${1}\n\e[0m"; exit 1; }
### setup
# do everything in /build
cd "$(dirname "$0")"
mkdir build
cd build
# write an empty fonts.conf to speed up fc-cache
export FONTCONFIG_FILE=/dummy-fonts.conf
cat >"$FONTCONFIG_FILE" <<EOF
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig></fontconfig>
EOF
# install dependencies
message "--- Installing dependencies"
source ../msys2installdeps.sh
pacman -S $MINGW_PACKAGE_PREFIX-{ccache,gtest} --needed --noconfirm --noprogressbar
ccache --max-size=200M
### build / test
message "\n\n##### STARTING BUILD #####"
# configure
message "--- Configuring the build"
cmake .. -G Ninja \
-DCMAKE_C_COMPILER_LAUNCHER="ccache" \
-DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \
-DCMAKE_INSTALL_MESSAGE="NEVER" \
|| error "cmake failed"
# build
message "--- Compiling Inkscape"
ccache --zero-stats
ninja || error "compilation failed"
ccache --show-stats
# install
message "--- Installing the project"
ninja install || error "installation failed"
# test
message "--- Running tests"
# check if the installed executable works
inkscape/inkscape.exe -V || error "installed executable won't run"
PATH= inkscape/inkscape.exe -V >/dev/null || error "installed executable won't run with empty PATH (missing dependecies?)"
err=$(PATH= inkscape/inkscape.exe -V 2>&1 >/dev/null)
if [ -n "$err" ]; then warning "installed executable produces output on stderr:"; echo "$err"; fi
# check if the uninstalled executable works
INKSCAPE_DATADIR=../share bin/inkscape.exe -V >/dev/null || error "uninstalled executable won't run"
err=$(INKSCAPE_DATADIR=../share bin/inkscape.exe -V 2>&1 >/dev/null)
if [ -n "$err" ]; then warning "installed executable produces output on stderr:"; echo "$err"; fi
# run tests (don't fail yet as most tests SEGFAULT on exit)
#ninja check || warning "tests failed" # disabled because of sporadic deadlocks :-(
message "##### BUILD SUCCESSFULL #####\n\n"
### package
7z a inkscape.7z inkscape
|