Put build system into a hybrid.

This commit is contained in:
Joseph Lenox 2018-07-11 18:05:39 -05:00 committed by Joseph Lenox
parent a5df41042f
commit fa382ebd70
2 changed files with 73 additions and 35 deletions

View File

@ -1,15 +1,14 @@
language: generic
before_install:
- sh package/linux/travis-decrypt-key
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )& fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update -v ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache; fi
script:
- travis_wait 30 bash package/linux/travis-setup.sh
- mkdir build && cd build
- cmake -DBOOST_ROOT=$BOOST_DIR -DSLIC3R_STATIC=ON ../src
- cmake --build .
- ctest . -R TestSlic3r
- if [[ "$BUILD_PL" == false ]]; then mkdir build && cd build; fi
- if [[ "$BUILD_PL" == false ]]; then cmake -DBOOST_ROOT=$BOOST_DIR -DSLIC3R_STATIC=ON ../src; fi
- if [[ "$BUILD_PL" == false ]]; then cmake --build .; fi
- if [[ "$BUILD_PL" == false ]]; then ctest . -R TestSlic3r; fi
- if [[ "$BUILD_PL" == true ]]; then perlbrew switch slic3r-perl; fi
- if [[ "$BUILD_PL" == true ]]; then perl ./Build.PL
# - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ctest . -R TestGUI; fi
branches:
only:
@ -40,6 +39,13 @@ notifications:
dist: trusty
matrix:
include:
- lanugage: perl
os: linux
env:
- BUILD_PL=true
- SLIC3R_STATIC=1
- CC=gcc-7
- CXX=g++-7
- os: linux
env:
- WXVERSION=pkg
@ -58,7 +64,11 @@ matrix:
- package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage
- package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage
- package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2
- os: osx
- os: osx
before_install:
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )& fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update -v ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache; fi
env:
- WXVERSION=pkg
- BOOST_DIR=$HOME/boost_1_63_0

View File

@ -2,40 +2,68 @@
# Script to configure travis environment prior to build
CACHE=$HOME/cache
mkdir -p $CACHE
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
if [[ "$WXVERSION" != "pkg" ]]; then
export WXDIR=$HOME/wx${WXVERSION}
if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then
echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2
fi
tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2
if [[ "$BUILD_PL" == true ]]; then
if [ ! -e $CACHE/slic3r-perlbrew-5.24.tar.bz2 ]; then
echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.travis.tar.bz2 => $CACHE/slic3r-perlbrew-5.24.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.travis.tar.bz2" -o $CACHE/slic3r-perlbrew-5.24.tar.bz2;
fi
if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then
echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2
fi
tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2
elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
if [[ "$WXVERSION" != "pkg" ]]; then
WXVER_EXPANDED=${WXVERSION:0:1}.${WXVERSION:1:1}.${WXVERSION:2:1}
export WXDIR=$HOME/wx${WXVERSION}
if [ ! -e $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 ]; then
curl -L "https://github.com/wxWidgets/wxWidgets/releases/download/v${WXVER_EXPANDED}/wxWidgets-${WXVER_EXPANDED}.tar.bz2" -o $HOME/wx${WXVERSION}-src.tar.bz2
tar -C$HOME -xjf $HOME/wx${WXVERSION}-src.tar.bz2
mkdir $WXDIR
cd $HOME/$WXDIR && cmake $HOME/wxWidgets-${WXVER_EXPANDED} -DwxBUILD_SHARED=OFF
cmake --build . --target -- -j4
tar -C$HOME -cjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 $(basename ${WXDIR})
else
tar -C$HOME -xjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2
if [ ! -e $CACHE/local-lib-wx${WXVERSION}.tar.bz2 ]; then
echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx${WXVERSION}.tar.bz2 => $CACHE/local-lib-wx${WXVERSION}.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx${WXVERSION}.tar.bz2" -o $CACHE/local-lib-wx${WXVERSION}.tar.bz2
fi
if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then
echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2
fi
tar -C$TRAVIS_BUILD_DIR -xjf $CACHE/local-lib-wx${WXVERSION}.tar.bz2
tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2
tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2
tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2
else
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
if [[ "$WXVERSION" != "pkg" ]]; then
export WXDIR=$HOME/wx${WXVERSION}
if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then
echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2
fi
tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2
fi
if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then
echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2
fi
tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2
elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
if [[ "$WXVERSION" != "pkg" ]]; then
WXVER_EXPANDED=${WXVERSION:0:1}.${WXVERSION:1:1}.${WXVERSION:2:1}
export WXDIR=$HOME/wx${WXVERSION}
if [ ! -e $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 ]; then
curl -L "https://github.com/wxWidgets/wxWidgets/releases/download/v${WXVER_EXPANDED}/wxWidgets-${WXVER_EXPANDED}.tar.bz2" -o $HOME/wx${WXVERSION}-src.tar.bz2
tar -C$HOME -xjf $HOME/wx${WXVERSION}-src.tar.bz2
mkdir $WXDIR
cd $HOME/$WXDIR && cmake $HOME/wxWidgets-${WXVER_EXPANDED} -DwxBUILD_SHARED=OFF
cmake --build . --target -- -j4
tar -C$HOME -cjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 $(basename ${WXDIR})
else
tar -C$HOME -xjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2
fi
export PATH=${PATH}:${WXDIR}
cd $TRAVIS_BUILD_DIR # go back to the build dir
else
brew install wxmac # install via homebrew
fi
export PATH=${PATH}:${WXDIR}
cd $TRAVIS_BUILD_DIR # go back to the build dir
else
brew install wxmac # install via homebrew
fi
fi