Skip to content

Commit

Permalink
Add Qt5 builds to travis
Browse files Browse the repository at this point in the history
  • Loading branch information
m-kuhn committed Mar 10, 2016
1 parent 8d72e9f commit cd96169
Show file tree
Hide file tree
Showing 10 changed files with 213 additions and 110 deletions.
59 changes: 46 additions & 13 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,56 @@
language: cpp

sudo: required
dist: precise
group: legacy
matrix:
include:
# QT4 based build with Python 2 // using a sudo environment
- os: linux
env: QT_VERSION=4
sudo: true
dist: precise
group: legacy
addons:
postgresql: "9.1"
compiler:
- clang
# QT5 based build with Python 3 // using container based builds and prebuild binary dependencies in osgeo4travis
- os: linux
env: QT_VERSION=5
sudo: false
cache:
apt: true
ccache: true
compiler:
- clang
addons:
postgresql: "9.4"
apt:
sources:
- llvm-toolchain-precise-3.6
- ubuntu-toolchain-r-test
- george-edison55-precise-backports # doxygen 1.8.3
packages:
- doxygen
- bison
- flex
- graphviz
- libpq-dev
- libfcgi-dev
- pkg-config
- poppler-utils
- python3
- python3-dev
- python3-setuptools
- txt2tags
- xvfb
- flip
- clang-3.6
# OSX based build with QT4 and Python 2
- os: osx

os:
- linux
- osx

compiler:
- clang

git:
depth: 30

cache: apt

notifications:
irc: "chat.freenode.net#qgis-test"
Expand All @@ -30,9 +66,6 @@ notifications:
on_failure: always # options: [always|never|change] default: always
on_start: never # default: never

addons:
postgresql: "9.1"

before_install:
- ./ci/travis/${TRAVIS_OS_NAME}/before_install.sh

Expand Down
75 changes: 3 additions & 72 deletions ci/travis/linux/before_install.sh
Original file line number Diff line number Diff line change
@@ -1,73 +1,4 @@
export DEBIAN_FRONTEND=noninteractive

wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise main' -y

sudo add-apt-repository ppa:ubuntugis/ppa -y
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y # For postgresql-9.1-postgis-2.1
sudo add-apt-repository ppa:smspillaz/cmake-3.0.2 -y
sudo add-apt-repository ppa:kedazo/doxygen-updates-precise -y # For doxygen 1.8.8
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update -qq
sudo apt-get install --force-yes --no-install-recommends --no-install-suggests \
bison \
cmake \
cmake-data \
doxygen \
flex \
gdal-bin \
git \
graphviz \
grass-dev \
libexpat1-dev \
libfcgi-dev \
libgdal1-dev \
libgeos-dev \
libgsl0-dev \
libpq-dev \
libproj-dev \
libqca2-dev \
libqca2-plugin-ossl \
libqscintilla2-dev \
libqt4-dev \
libqt4-opengl-dev \
libqt4-sql-sqlite \
libqtwebkit-dev \
libqwt-dev \
libspatialindex-dev \
libspatialite-dev \
libsqlite3-dev \
lighttpd \
pkg-config \
poppler-utils \
pyqt4-dev-tools \
python \
python-dev \
python-qt4 \
python-qt4-dev \
python-qt4-sql \
python-qscintilla2 \
python-sip \
python-sip-dev \
python-psycopg2 \
python-numpy \
python-gdal \
spawn-fcgi \
txt2tags \
xauth \
xfonts-100dpi \
xfonts-75dpi \
xfonts-base \
xfonts-scalable \
xvfb \
python-pip \
flip \
jq \
postgresql-9.1-postgis-2.1/precise # from ubuntugis-unstable, not pgdg

sudo -H pip install autopep8 # TODO when switching to trusty or above: replace python-pip with python-autopep8
sudo -H pip install nose2 pyyaml mock

#update clang
sudo apt-get install --force-yes llvm-3.8 llvm-3.8-dev clang-3.8 libstdc++-4.9-dev
#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
${DIR}/qt${QT_VERSION}/before_install.sh
27 changes: 3 additions & 24 deletions ci/travis/linux/install.sh
Original file line number Diff line number Diff line change
@@ -1,25 +1,4 @@
mkdir build
cd build
#!/bin/bash

export CXX="clang++-3.8"
export CC="clang-3.8"

cmake --version
${CC} --version

CLANG_WARNINGS="-Wimplicit-fallthrough"

cmake -DWITH_SERVER=ON \
-DWITH_STAGED_PLUGINS=ON \
-DWITH_GRASS=ON \
-DSUPPRESS_QT_WARNINGS=ON \
-DENABLE_MODELTEST=ON \
-DENABLE_PGTEST=ON \
-DWITH_QWTPOLAR=OFF \
-DWITH_APIDOC=ON \
-DWITH_ASTYLE=ON \
-DWITH_PYSPATIALITE=ON \
-DGRASS_PREFIX7=/usr/lib/grass70 \
-DGRASS_INCLUDE_DIR7=/usr/lib/grass70/include \
-DCXX_EXTRA_FLAGS="$CLANG_WARNINGS" \
..
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
${DIR}/qt${QT_VERSION}/install.sh
73 changes: 73 additions & 0 deletions ci/travis/linux/qt4/before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
export DEBIAN_FRONTEND=noninteractive

wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise main' -y

sudo add-apt-repository ppa:ubuntugis/ppa -y
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y # For postgresql-9.1-postgis-2.1
sudo add-apt-repository ppa:smspillaz/cmake-3.0.2 -y
sudo add-apt-repository ppa:kedazo/doxygen-updates-precise -y # For doxygen 1.8.8
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update -qq
sudo apt-get install --force-yes --no-install-recommends --no-install-suggests \
bison \
cmake \
cmake-data \
doxygen \
flex \
gdal-bin \
git \
graphviz \
grass-dev \
libexpat1-dev \
libfcgi-dev \
libgdal1-dev \
libgeos-dev \
libgsl0-dev \
libpq-dev \
libproj-dev \
libqca2-dev \
libqca2-plugin-ossl \
libqscintilla2-dev \
libqt4-dev \
libqt4-opengl-dev \
libqt4-sql-sqlite \
libqtwebkit-dev \
libqwt-dev \
libspatialindex-dev \
libspatialite-dev \
libsqlite3-dev \
lighttpd \
pkg-config \
poppler-utils \
pyqt4-dev-tools \
python \
python-dev \
python-qt4 \
python-qt4-dev \
python-qt4-sql \
python-qscintilla2 \
python-sip \
python-sip-dev \
python-psycopg2 \
python-numpy \
python-gdal \
spawn-fcgi \
txt2tags \
xauth \
xfonts-100dpi \
xfonts-75dpi \
xfonts-base \
xfonts-scalable \
xvfb \
python-pip \
flip \
jq \
postgresql-9.1-postgis-2.1/precise # from ubuntugis-unstable, not pgdg

sudo -H pip install autopep8 # TODO when switching to trusty or above: replace python-pip with python-autopep8
sudo -H pip install nose2 pyyaml mock

#update clang
sudo apt-get install --force-yes llvm-3.8 llvm-3.8-dev clang-3.8 libstdc++-4.9-dev

25 changes: 25 additions & 0 deletions ci/travis/linux/qt4/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
mkdir build
cd build

export CXX="clang++-3.8"
export CC="clang-3.8"

cmake --version
${CC} --version

CLANG_WARNINGS="-Wimplicit-fallthrough"

cmake -DWITH_SERVER=ON \
-DWITH_STAGED_PLUGINS=ON \
-DWITH_GRASS=ON \
-DSUPPRESS_QT_WARNINGS=ON \
-DENABLE_MODELTEST=ON \
-DENABLE_PGTEST=ON \
-DWITH_QWTPOLAR=OFF \
-DWITH_APIDOC=ON \
-DWITH_ASTYLE=ON \
-DWITH_PYSPATIALITE=ON \
-DGRASS_PREFIX7=/usr/lib/grass70 \
-DGRASS_INCLUDE_DIR7=/usr/lib/grass70/include \
-DCXX_EXTRA_FLAGS="$CLANG_WARNINGS" \
..
1 change: 1 addition & 0 deletions ci/travis/linux/qt4/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
xvfb-run ctest -V -E 'qgis_openstreetmaptest|qgis_wcsprovidertest' -S ./qgis-test-travis.ctest --output-on-failure
16 changes: 16 additions & 0 deletions ci/travis/linux/qt5/before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export DEBIAN_FRONTEND=noninteractive
export CORES=2

##################################################
#
# Get precompiled dependencies
#
##################################################

pushd ${HOME}

curl -L https://github.com/opengisch/osgeo4travis/raw/binary/osgeo4travis.tar.xz | tar -JxC /home/travis
curl -L https://cmake.org/files/v3.5/cmake-3.5.0-Linux-x86_64.tar.gz | tar --strip-components=1 -zxC /home/travis/osgeo4travis
popd

# easy_install3 --prefix=${HOME}/osgeo4travis/ pyspatialite
39 changes: 39 additions & 0 deletions ci/travis/linux/qt5/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
mkdir build
cd build

ln -s /usr/bin/ccache ${HOME}/osgeo4travis/bin/clang++-3.6
ln -s /usr/bin/ccache ${HOME}/osgeo4travis/bin/clang-3.6

ccache -s

export CXX="clang++-3.6"
export CC="clang-3.6"
export PATH=${HOME}/osgeo4travis/bin:${PATH}
export PYTHONPATH=${HOME}/osgeo4travis/lib/python3/dist-packages/

cmake --version
${CC} --version
${CXX} --version

CLANG_WARNINGS="-Wimplicit-fallthrough"

# Include this line for debug reasons
# -DCMAKE_BUILD_TYPE=RelWithDebInfo \
#
# Server fails at the moment on Qt5 because QFtp has been removed
# -DWITH_SERVER=ON \
cmake \
-DCMAKE_PREFIX_PATH=/home/travis/osgeo4travis \
-DWITH_STAGED_PLUGINS=ON \
-DWITH_GRASS=ON \
-DSUPPRESS_QT_WARNINGS=ON \
-DENABLE_MODELTEST=ON \
-DENABLE_PGTEST=ON \
-DWITH_QWTPOLAR=OFF \
-DWITH_QTWEBKIT=OFF \
-DWITH_APIDOC=ON \
-DWITH_ASTYLE=ON \
-DENABLE_QT5=ON \
-DCXX_EXTRA_FLAGS="$CLANG_WARNINGS" \
-DPYTHON_LIBRARY=/usr/lib/libpython3.2mu.so \
..
3 changes: 3 additions & 0 deletions ci/travis/linux/qt5/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export PYTHONPATH=${HOME}/osgeo4travis/lib/python3/dist-packages/

xvfb-run ctest -V -R 'qgis_applicationtest' -S ./qgis-test-travis.ctest --output-on-failure
5 changes: 4 additions & 1 deletion ci/travis/linux/script.sh
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
xvfb-run ctest -V -E 'qgis_openstreetmaptest|qgis_wcsprovidertest' -S ./qgis-test-travis.ctest --output-on-failure
#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
${DIR}/qt${QT_VERSION}/script.sh

0 comments on commit cd96169

Please sign in to comment.