# 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