From 21702baeabb81648d2df55f72894e0f0f6913b73 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Thu, 7 Apr 2016 20:41:40 +0200 Subject: [PATCH] Container based Qt4 builds --- .travis.yml | 53 ++++++++++++++++--- ci/travis/linux/qt4/before_install.sh | 74 ++------------------------- ci/travis/linux/qt4/install.sh | 12 ++++- ci/travis/linux/qt4/script.sh | 5 ++ 4 files changed, 65 insertions(+), 79 deletions(-) diff --git a/.travis.yml b/.travis.yml index f39c4dfb3c2..0f741c0657d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,54 @@ - matrix: include: - # QT4 based build with Python 2 // using a sudo environment + # QT4 based build with Python 2.7 // using container based builds and prebuild binary dependencies in osgeo4travis - os: linux language: cpp env: QT_VERSION=4 - sudo: true - dist: precise - group: legacy + sudo: false + cache: + apt: true + directories: + - $HOME/.ccache + compiler: clang addons: - postgresql: "9.1" - compiler: - - clang + postgresql: "9.4" + apt: + sources: + - llvm-toolchain-precise-3.6 + - ubuntu-toolchain-r-test + - george-edison55-precise-backports # doxygen 1.8.3 + packages: + - bison + - clang-3.6 + - doxygen + - flex + - flip + - libfcgi-dev + - libpq-dev + - libqscintilla2-dev + - libqt4-dev + - libqt4-opengl-dev + - libqt4-sql-sqlite + - libqtwebkit-dev + - libqwt-dev + - libspatialindex-dev + - libspatialite-dev + - libsqlite3-dev + - pkg-config + - poppler-utils + - pyqt4-dev-tools + - python + - python-dev + - python-numpy + - python-pip + - python-psycopg2 + - python-qscintilla2 + - python-qt4-dev + - python-qt4-sql + - python-sip + - python-sip-dev + - txt2tags + - xvfb # QT5 based build with Python 3 // using container based builds and prebuild binary dependencies in osgeo4travis - os: linux language: python # This lets us use newer python versions from virtualenv diff --git a/ci/travis/linux/qt4/before_install.sh b/ci/travis/linux/qt4/before_install.sh index d4ed4621d09..e22719a2a1e 100755 --- a/ci/travis/linux/qt4/before_install.sh +++ b/ci/travis/linux/qt4/before_install.sh @@ -1,73 +1,9 @@ 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-3.8 main' -y +pushd ${HOME} -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 future - -#update clang -sudo apt-get install --force-yes llvm-3.8 llvm-3.8-dev clang-3.8 libstdc++-4.9-dev +curl -L https://github.com/opengisch/osgeo4travis/archive/qt4bin.tar.gz | tar -xzC /home/travis --strip-components=1 +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 +pip install --user autopep8 nose2 pyyaml mock future diff --git a/ci/travis/linux/qt4/install.sh b/ci/travis/linux/qt4/install.sh index d3c9905a16e..f22a7a6bff4 100755 --- a/ci/travis/linux/qt4/install.sh +++ b/ci/travis/linux/qt4/install.sh @@ -1,15 +1,23 @@ mkdir build cd build -export CXX="clang++-3.8" -export CC="clang-3.8" +ln -s ${HOME}/osgeo4travis/bin/ccache ${HOME}/osgeo4travis/bin/clang++-3.6 +ln -s ${HOME}/osgeo4travis/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} cmake --version ${CC} --version +${CXX} --version CLANG_WARNINGS="-Wimplicit-fallthrough" cmake -DWITH_SERVER=ON \ + -DCMAKE_PREFIX_PATH=/home/travis/osgeo4travis \ -DWITH_STAGED_PLUGINS=ON \ -DWITH_GRASS=ON \ -DSUPPRESS_QT_WARNINGS=ON \ diff --git a/ci/travis/linux/qt4/script.sh b/ci/travis/linux/qt4/script.sh index 6c729f1fec2..5814af27ffd 100755 --- a/ci/travis/linux/qt4/script.sh +++ b/ci/travis/linux/qt4/script.sh @@ -1 +1,6 @@ +export CCACHE_CPP2=YES +export PYTHONPATH=${HOME}/osgeo4travis/lib/python2.7/site-packages/ +export PATH=${HOME}/osgeo4travis/bin:${HOME}/osgeo4travis/sbin:${PATH} +export LD_LIBRARY_PATH=${HOME}/osgeo4travis/lib + xvfb-run ctest -V -E 'qgis_openstreetmaptest|qgis_wcsprovidertest' -S ./qgis-test-travis.ctest --output-on-failure