language: c++

matrix:
  include:
    - os: linux
      dist: xenial
      sudo: required
      compiler:
        - gcc
    - os: linux
      dist: xenial
      sudo: required
      compiler:
        - clang
    - os: osx
      compiler: clang
  exclude:
    - os: osx
      compiler: gcc
    - os: linux
      dist: precise
    - os: linux
      dist: trusty

before_install:
# Linux
-   if [ $TRAVIS_OS_NAME == linux ]; then
      sudo apt-add-repository ppa:beineri/opt-qt597-xenial -y;
      sudo apt-add-repository ppa:as-bahanta/raqm -y;
      sudo apt-add-repository ppa:ricotz/testing -y;
      sudo apt-get update -qq;
    fi
# OSX
-   if [ $TRAVIS_OS_NAME == osx ]; then
      brew update; 
    fi

install:
# Linux
-   if [ $TRAVIS_OS_NAME == linux ]; then
      sudo apt-get install --force-yes cmake libboost-python-dev libcups2-dev libhunspell-dev
      libhyphen-dev liblcms2-dev libpodofo-dev libtiff-dev libxml2-dev
      python-all-dev zlib1g-dev qt59base qt59declarative
      qt59tools libgraphicsmagick++1-dev
      libopenscenegraph-dev libpoppler-dev libpoppler-cpp-dev libcairo2-dev libwpg-dev 
      libmspub-dev libcdr-dev libvisio-dev libharfbuzz-dev libharfbuzz-icu0
      coreutils binutils python-tk;
#     Build a more recent poppler than Ubuntu Xenial's poppler 0.41.0
      mkdir deps && pushd deps;
      sudo apt-get install --force-yes libopenjpeg-dev;
      wget https://poppler.freedesktop.org/poppler-data-0.4.9.tar.gz && tar -xf poppler-data-0.4.9.tar.gz;
      pushd poppler-data-0.4.9 && cmake -DCMAKE_BUILD_TYPE=Release && sudo make install && popd;
      wget https://poppler.freedesktop.org/poppler-0.58.0.tar.xz && tar -xf poppler-0.58.0.tar.xz;
      pushd poppler-0.58.0 && cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_XPDF_HEADERS=1 && sudo make install && popd;
      popd;
    fi
# OSX
-   if [ $TRAVIS_OS_NAME == osx ]; then 
      brew outdated cmake --verbose || brew upgrade cmake; 
      brew tap homebrew/dupes && brew install homebrew/dupes/zlib && brew link --force zlib;
      brew install icu4c && brew link --force icu4c;
      brew install xz little-cms2 cairo qt5 hunspell ghostscript graphicsmagick poppler podofo harfbuzz;
      brew outdated jpeg --verbose || brew upgrade jpeg;
      brew outdated libtiff --verbose || brew upgrade libtiff; 
      brew outdated fontconfig --verbose || brew upgrade fontconfig; 
      brew install openssl && brew link --force openssl; 
      brew outdated pkg-config --verbose || brew upgrade pkg-config; 
      brew outdated boost || brew upgrade boost; 
      brew outdated freetype || brew upgrade freetype; 
      brew install librevenge libwpg libvisio libmspub libcdr libpagemaker libfreehand open-scene-graph; 
    fi
  # - export LDFLAGS+=-L/usr/local/opt/zlib/lib:-L/usr/local/opt/gettext/lib:-L/usr/local/opt/libffi/lib:-L/usr/local/opt/qt5/lib:-L/usr/local/opt/sqlite/lib:-L/usr/local/opt/openssl/lib:-L/usr/local/opt/icu4c/lib
  # - export CXXFLAGS+=-I/usr/local/opt/zlib/include:-I/usr/local/opt/gettext/include:-I/usr/local/opt/qt5/include:-I/usr/local/opt/sqlite/include:-I/usr/local/opt/openssl/include:-I/usr/local/opt/icu4c/include 
  
script:
  - if [ $TRAVIS_OS_NAME == linux ]; then
      source /opt/qt59/bin/qt59-env.sh;
      if [[ $CC == gcc ]]; then
        export NPROC=8;
      else
        export NPROC=1;
      fi;
      cmake . -DCMAKE_INSTALL_PREFIX=/usr -DWANT_HUNSPELL=1 -DWITH_PODOFO=1 -DWANT_GRAPHICSMAGICK=1 -DWANT_DEBUG=0 -DWANT_SVNVERSION=0 -DWANT_GUI_LANG=en_US;
      make -j"$NPROC";
      make install;
      bash -ex ./AppImage-package/bundle.sh;
    fi

  - if [ $TRAVIS_OS_NAME = osx -a $CC = clang ]; then
      cmake . -DWANT_HUNSPELL=1 -DWITH_PODOFO=1 -DWANT_NOOSG=1 -DWANT_DEBUG=0 -DWANT_SVNVERSION=0 -DWANT_GUI_LANG=en_US -DWANT_NOEXAMPLES=1 -DWANT_NOTEMPLATES=1 -DCMAKE_PREFIX_PATH=/usr/local/opt/zlib -DBUILD_OSX_BUNDLE=1 -DCMAKE_OSX_ARCHITECTURES="x86_64" -DQT_PREFIX=/usr/local/opt/qt5 -DCMAKE_INSTALL_PREFIX=~/.local;
      make -j8;
      make install;
    fi

notifications:
  irc:
    channels:
    -  "chat.freenode.net#scribus"
    -  "chat.freenode.net#scribus-dev"
    template:
    - "%{repository}/%{branch} (%{author}): %{build_url}: %{message}"
    on_success: always
    on_failure: always

