e4437c4974
Use the following CMake flags: -DCMAKE_SYSTEM_NAME=iOS - for specifying it is an iOS build -DCMAKE_FIND_ROOT_PATH=/usr/local - dir to search for the built wxWidgets libraries -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO - don't require signing app packages -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 - specify a target so both the libraries and sample will use the same architecture Also use the code signing flag when testing precompiled header support. Don't build the default samples, widgets sample has features that are not supported by the iOS build. Xcode seems to rebuild the libraries when installing, so call CMake only once.
120 lines
4.0 KiB
Bash
Executable File
120 lines
4.0 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# This script is used by Travis CI to configure, build and test wxWidgets
|
|
|
|
set -e
|
|
|
|
wxPROC_COUNT=`getconf _NPROCESSORS_ONLN`
|
|
((wxPROC_COUNT++))
|
|
wxBUILD_ARGS="-j$wxPROC_COUNT"
|
|
|
|
case $wxTOOLSET in
|
|
cmake)
|
|
if [ -z $wxCMAKE_TESTS ]; then wxCMAKE_TESTS=CONSOLE_ONLY; fi
|
|
if [ -z $wxCMAKE_SAMPLES ]; then wxCMAKE_SAMPLES=SOME; fi
|
|
if [ "$wxCMAKE_GENERATOR" == "Xcode" ]; then
|
|
wxBUILD_ARGS="-jobs $wxPROC_COUNT -quiet"
|
|
fi
|
|
cmake --version
|
|
|
|
echo 'travis_fold:start:configure'
|
|
echo 'Configuring...'
|
|
mkdir build_cmake
|
|
pushd build_cmake
|
|
cmake -G "$wxCMAKE_GENERATOR" $wxCMAKE_DEFINES -D wxBUILD_SAMPLES=$wxCMAKE_SAMPLES -D wxBUILD_TESTS=$wxCMAKE_TESTS ..
|
|
echo 'travis_fold:end:configure'
|
|
|
|
if [ "$wxCMAKE_GENERATOR" != "Xcode" ]; then
|
|
echo 'travis_fold:start:building'
|
|
echo 'Building...'
|
|
cmake --build . -- $wxBUILD_ARGS
|
|
echo 'travis_fold:end:building'
|
|
fi
|
|
|
|
echo 'travis_fold:start:install'
|
|
if [ "$wxCMAKE_GENERATOR" == "Xcode" ]; then echo -n 'Building and '; fi
|
|
echo 'Installing...'
|
|
sudo env "PATH=$PATH" cmake --build . --target install -- $wxBUILD_ARGS
|
|
popd
|
|
echo 'travis_fold:end:install'
|
|
|
|
if [ "$wxCMAKE_TESTS" != "OFF" ]; then
|
|
echo 'travis_fold:start:testing'
|
|
echo 'Testing...'
|
|
ctest -V -C Debug -R "test_base" --output-on-failure --interactive-debug-mode 0 .
|
|
echo 'travis_fold:end:testing'
|
|
fi
|
|
|
|
echo 'travis_fold:start:testinstall'
|
|
echo 'Testing installation...'
|
|
mkdir build_cmake_install_test
|
|
pushd build_cmake_install_test
|
|
cmake -G "$wxCMAKE_GENERATOR" $wxCMAKE_DEFINES ../samples/minimal
|
|
cmake --build . -- $wxBUILD_ARGS
|
|
popd
|
|
echo 'travis_fold:end:testinstall'
|
|
;;
|
|
*)
|
|
echo 'travis_fold:start:configure'
|
|
echo 'Configuring...'
|
|
./configure --disable-optimise --disable-debug_info $wxCONFIGURE_FLAGS || rc=$?
|
|
if [ -n "$rc" ]; then
|
|
echo '*** Configuring failed, contents of config.log follows: ***'
|
|
echo '-----------------------------------------------------------'
|
|
cat config.log
|
|
echo '-----------------------------------------------------------'
|
|
exit $rc
|
|
fi
|
|
echo 'travis_fold:end:configure'
|
|
|
|
echo 'travis_fold:start:building'
|
|
echo 'Building...'
|
|
make $wxBUILD_ARGS
|
|
echo 'travis_fold:end:building'
|
|
|
|
echo 'travis_fold:start:tests'
|
|
echo 'Building tests...'
|
|
[ "$wxSKIP_GUI" = 1 ] || make -C tests $wxBUILD_ARGS failtest
|
|
make -C tests $wxBUILD_ARGS $wxMAKEFILE_FLAGS
|
|
echo 'travis_fold:end:tests'
|
|
|
|
if [ "$wxSKIP_TESTING" = 1 ]; then
|
|
echo 'Skipping running tests'
|
|
exit 0
|
|
fi
|
|
|
|
echo 'travis_fold:start:testing'
|
|
echo 'Testing...'
|
|
pushd tests && ./test && popd
|
|
echo 'travis_fold:end:testing'
|
|
|
|
if [ "$wxSKIP_GUI" = 1 ]; then
|
|
echo 'Skipping the rest of tests for non-GUI build.'
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$wxUSE_XVFB" = 1 ]; then
|
|
echo 'travis_fold:start:testing_gui'
|
|
echo 'Testing GUI using Xvfb...'
|
|
pushd tests && xvfb-run -a -s '-screen 0 1600x1200x24' ./test_gui && popd
|
|
echo 'travis_fold:end:testing_gui'
|
|
fi
|
|
|
|
echo 'travis_fold:start:samples'
|
|
echo 'Building samples...'
|
|
(test "$wxSKIP_SAMPLES" && echo 'SKIPPED') || make samples
|
|
echo 'travis_fold:end:samples'
|
|
|
|
echo 'travis_fold:start:install'
|
|
echo 'Installing...'
|
|
sudo make install
|
|
echo 'travis_fold:end:install'
|
|
|
|
echo 'travis_fold:start:testinstall'
|
|
echo 'Testing installation...'
|
|
make -C samples/minimal -f makefile.unx clean
|
|
make -C samples/minimal -f makefile.unx $wxMAKEFILE_FLAGS
|
|
echo 'travis_fold:end:testinstall'
|
|
;;
|
|
esac
|