forked from wxWidgets/wxWidgets
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.cirrus.yml
106 lines (85 loc) · 2.97 KB
/
.cirrus.yml
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
# Continuous integration tasks running on Cirrus CI.
#
# This is currently used for testing under FreeBSD, which is not available at
# the other CI providers used by wx.
env:
CCACHE_SIZE: 1G
CCACHE_DIR: /tmp/ccache
task:
skip: "changesIncludeOnly('appveyor.yml','CMakeLists.txt','.circleci/**','.github/**','docs/**','interface/**','include/wx/{msw,osx,qt}/**','src/{msw,osx,qt}/**','build/{cmake,msw,osx}/**','locale/**')"
matrix:
- name: Cirrus CI / FreeBSD 13 wxGTK 3
freebsd_instance:
image_family: freebsd-13-0
env:
osname: FreeBSD
- name: Cirrus CI / Debian ARM wxGTK 3
arm_container:
image: debian:11-slim
env:
osname: Linux
arch: arm
before_script: |
echo LD_LIBRARY_PATH=`pwd`/lib >> $CIRRUS_ENV
wxPROC_COUNT=`./build/tools/proc_count.sh`
# ARM systems have 64 CPUs but run out of memory and crash when using that
# many jobs, so limit them to something reasonable.
if [ $wxPROC_COUNT -gt 12 ]; then
wxPROC_COUNT=12
fi
echo wxBUILD_ARGS=-j$wxPROC_COUNT >> $CIRRUS_ENV
WX_EXTRA_PACKAGES='ccache git'
export WX_EXTRA_PACKAGES
case "${osname}" in
Linux)
WX_EXTRA_PACKAGES="$WX_EXTRA_PACKAGES \
g++ libexpat1-dev libjpeg-dev libpng-dev libtiff-dev make zlib1g-dev"
;;
esac
wxGTK_VERSION=3 ./build/tools/before_install.sh
echo "PATH=/usr/local/libexec/ccache:$PATH" >> $CIRRUS_ENV
# Show some information about the system.
uname -a
c++ --version
ccache --version
locale
locale -a
# Rather than getting all submodules, get just the ones we need, as we can
# use system libraries instead of the other ones.
update_submodules_script: |
git submodule update --init 3rdparty/catch 3rdparty/nanosvg src/stc/scintilla src/stc/lexilla
ccache_cache:
folder: /tmp/ccache
configure_script: |
case "${osname}" in
FreeBSD)
# We need to pass these flags so that libraries under /usr/local are found,
# because configure doesn't look for them there by default (it ought to
# always use pkg-config instead, but it currently doesn't do this either).
CPPFLAGS=-I/usr/local/include
LDFLAGS=-L/usr/local/lib
;;
esac
./configure --disable-optimise --disable-debug_info CXXFLAGS=-Werror CPPFLAGS=$CPPFLAGS LDFLAGS=$LDFLAGS
build_library_script: |
make -k $wxBUILD_ARGS
build_tests_script: |
make -k -C tests $wxBUILD_ARGS
test_script: |
cd tests
WX_TEST_WEBREQUEST_URL="0" ./test
build_samples_script: |
make -k -C samples $wxBUILD_ARGS
install_script: |
make install
case "${osname}" in
FreeBSD)
# Building sample requires GNU make, so install it just for this.
pkg install -q -y gmake
;;
esac
gmake -C samples/minimal -f makefile.unx clean
gmake -C samples/minimal -f makefile.unx $wxBUILD_ARGS
# Show cache statistics for information.
end_script: |
ccache -s