Use matrix to perform the same build steps for different platforms and account for FreeBSD specific things by explicitly checking the OS name in the scripts.
92 lines
2.5 KiB
YAML
92 lines
2.5 KiB
YAML
# 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','.github/**','docs/**','interface/**','include/wx/{msw,osx,qt}/**','src/{msw,osx,qt}/**','build/{cmake,msw,osx}/**')"
|
|
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`
|
|
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++ make"
|
|
;;
|
|
esac
|
|
|
|
wxGTK_VERSION=3 ./build/tools/before_install.sh
|
|
|
|
echo "PATH=/usr/local/libexec/ccache:$PATH" >> $CIRRUS_ENV
|
|
|
|
# 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
|
|
|
|
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
|