diff --git a/.travis.yml b/.travis.yml index 8aa803f722def2a989cd5a80514b7b08e012ee36..e60dd2e82b4d0fe197d0b2cf3c587b75b22f773a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,68 +1,64 @@ +sudo: false language: cpp compiler: - gcc - clang -cache: - - apt - -env: - - CASE=CLI CMAKE_ARGS="-DOGS_BUILD_GUI=OFF -DOGS_BUILD_UTILS=ON" - - CASE=CLI_PETSC CMAKE_ARGS="-DOGS_BUILD_GUI=OFF -DOGS_BUILD_UTILS=OFF -DOGS_USE_PETSC=ON -DPETSC_DIR=/usr/lib/petscdir/3.4.2/" - - CASE=GUI CMAKE_ARGS="-DOGS_BUILD_GUI=ON" - -before_install: - # -- External package sources -- - - travis_retry sudo add-apt-repository --yes ppa:boost-latest - - travis_retry sudo apt-get install python-software-properties - - travis_retry sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test - - if [[ "$CASE" == "CLI_PETSC" ]]; then sudo add-apt-repository --yes ppa:feelpp/petsc; fi - - travis_retry sudo apt-get update -qq; - - # GCC 4.8 - - travis_retry sudo apt-get install -qq g++-4.8 - - export CXX="g++-4.8" CC="gcc-4.8" - - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90 +addons: + apt: + sources: + - boost-latest + - ubuntu-toolchain-r-test + # TODO: feelpp/petsc + packages: + - g++-4.8 + - libeigen3-dev + - libboost1.55-dev + - libboost-date-time1.55-dev + - libboost-filesystem1.55-dev + - libboost-program-options1.55-dev + - libboost-system1.55-dev + - qt4-dev-tools + - libxt-dev + # TODO + # - libpetsc3.4.2-dev + # Not allowed yet: + # - numdiff + # - libshp-dev + # - libgeotiff-dev -install: - # -- Install packages -- - - travis_retry sudo apt-get install -qq libeigen3-dev numdiff - # Boost - - travis_retry sudo apt-get install -qq libboost1.55-dev libboost-date-time1.55-dev libboost-filesystem1.55-dev libboost-program-options1.55-dev libboost-system1.55-dev - # Eigen - - travis_retry wget http://bitbucket.org/eigen/eigen/get/3.2.5.tar.gz - - tar -xzf 3.2.5.tar.gz - - sudo cp -fR eigen-eigen-bdd17ee3b1b3/* /usr/include/eigen3/ - - # CMake - - travis_retry wget http://www.cmake.org/files/v3.1/cmake-3.1.1-Linux-x86_64.tar.gz - - tar -xzf cmake-3.1.1-Linux-x86_64.tar.gz - - sudo cp -fR cmake-3.1.1-Linux-x86_64/* /usr - - rm -rf cmake-3.1.1-Linux-x86_64.tar.gz cmake-3.1.1-Linux-x86_64 +cache: + directories: + - $HOME/cmake-3.1.1-Linux-x86_64 + - $HOME/VTK-Install - # Qt - - if [[ "$CASE" == "GUI" ]]; then travis_retry sudo apt-get install -qq qt4-dev-tools libshp-dev libgeotiff-dev libxt-dev; fi +env: + global: + - VTK_DIR=VTK-Install/lib/cmake/vtk-6.1 + matrix: + - CASE=CLI CMAKE_ARGS="-DOGS_BUILD_GUI=OFF -DOGS_BUILD_UTILS=ON -DVTK_DIR=$HOME/$VTK_DIR" + # - CASE=CLI_PETSC CMAKE_ARGS="-DOGS_BUILD_GUI=OFF -DOGS_BUILD_UTILS=OFF -DOGS_USE_PETSC=ON -DPETSC_DIR=/usr/lib/petscdir/3.4.2/" + - CASE=GUI CMAKE_ARGS="-DOGS_BUILD_GUI=ON -DOGS_BUILD_CLI=OFF -DOGS_BUILD_TESTS=OFF -DVTK_DIR=$HOME/$VTK_DIR" - # VTK - - travis_retry wget http://www.opengeosys.org/images/dev/vtk-6.1.0.tar.gz - - tar -xzf vtk-6.1.0.tar.gz - - sudo cp -fR VTK-Install/* /usr - - rm -rf vtk-6.1.0.tar.gz VTK-Install +before_install: + - bash scripts/travis/cmake.sh + - bash scripts/travis/vtk.sh - # PetSc - - if [[ "$CASE" == "CLI_PETSC" ]]; then travis_retry sudo apt-get install -qq libpetsc3.4.2-dev; fi +before_script: + - export PATH=$HOME/cmake-3.1.1-Linux-x86_64/bin:$PATH + - export CXX=g++-4.8 CC=gcc-4.8 script: - mkdir build - cd build - cmake $CMAKE_ARGS .. - - make - - make tests + - make -j 2 + - if [[ "$CASE" == "CLI" ]]; then make tests; fi # PetSc - - if [[ "$CASE" == "CLI_PETSC" ]]; then make tests_mpi; fi + #- if [[ "$CASE" == "CLI_PETSC" ]]; then make tests_mpi; fi notifications: hipchat: diff --git a/Applications/ApplicationsLib/CMakeLists.txt b/Applications/ApplicationsLib/CMakeLists.txt index 61b83c038d9391f1ab79390c66bf3aa63f3efe53..38bedca85bdb906f6d4894cfd591874218f2d558 100644 --- a/Applications/ApplicationsLib/CMakeLists.txt +++ b/Applications/ApplicationsLib/CMakeLists.txt @@ -16,3 +16,7 @@ ADD_CATALYST_DEPENDENCY(ApplicationsLib) if(OGS_BUILD_GUI) target_link_libraries(ApplicationsLib PUBLIC Qt4::QtCore) endif() + +if(TARGET Eigen) + add_dependencies(ApplicationsLib Eigen) +endif() diff --git a/NumLib/CMakeLists.txt b/NumLib/CMakeLists.txt index dc446ffbb4bf5e83d769c55f9c496acbe28f5694..9bf33ca86e96cd98d58a7911d33c9aa11d928c09 100644 --- a/NumLib/CMakeLists.txt +++ b/NumLib/CMakeLists.txt @@ -47,3 +47,6 @@ target_link_libraries(NumLib INTERFACE logog ) +if(TARGET Eigen) + add_dependencies(NumLib Eigen) +endif() diff --git a/scripts/cmake/ExternalProjectEigen.cmake b/scripts/cmake/ExternalProjectEigen.cmake index d1bc30c77c736f68fd4dd49b1a9c4fedb9e4cd33..8b773dcce1ba9d4a31155cc761b1edd54cc44852 100644 --- a/scripts/cmake/ExternalProjectEigen.cmake +++ b/scripts/cmake/ExternalProjectEigen.cmake @@ -6,7 +6,7 @@ endif() # First check for system Eigen if(NOT EIGEN3_INCLUDE_DIR) - find_package(Eigen3) + find_package(Eigen3 3.2.5) if(EIGEN3_FOUND) set(EIGEN3_FOUND TRUE CACHE BOOL "Was Eigen found?" FORCE) set(EIGEN3_INCLUDE_DIR "${EIGEN3_INCLUDE_DIR}" CACHE STRING "Eigen include dir" FORCE) diff --git a/scripts/cmake/ThirdPartyLibVersions.cmake b/scripts/cmake/ThirdPartyLibVersions.cmake index 477f7e73f393c8460ddb34d87c81e47e89eb368f..877977d22fc8469bce10800899188ffe54d035f4 100644 --- a/scripts/cmake/ThirdPartyLibVersions.cmake +++ b/scripts/cmake/ThirdPartyLibVersions.cmake @@ -1,7 +1,7 @@ set(OGS_BOOST_URL "http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download") set(OGS_BOOST_MD5 "b8839650e61e9c1c0a89f371dd475546") -set(OGS_EIGEN_URL "http://bitbucket.org/eigen/eigen/get/3.2.5.tar.gz") +set(OGS_EIGEN_URL "http://opengeosys.s3.amazonaws.com/ogs6-lib-sources/eigen-3.2.5.tar.gz") set(OGS_EIGEN_MD5 "8cc513ac6ec687117acadddfcacf551b") set(OGS_VTK_VERSION 6.1.0) diff --git a/scripts/travis/cmake.sh b/scripts/travis/cmake.sh new file mode 100644 index 0000000000000000000000000000000000000000..b29c93eedb579625186cc9be54f810ab1b7dd51c --- /dev/null +++ b/scripts/travis/cmake.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -e +# check to see if cmake folder is empty +if [ ! -d "$HOME/cmake-3.1.1-Linux-x86_64/bin" ]; then + cd $HOME + wget http://www.cmake.org/files/v3.1/cmake-3.1.1-Linux-x86_64.tar.gz; + tar -xzvf cmake-3.1.1-Linux-x86_64.tar.gz; +else + echo 'Using cached cmake directory.'; +fi diff --git a/scripts/travis/vtk.sh b/scripts/travis/vtk.sh new file mode 100644 index 0000000000000000000000000000000000000000..8d5cc23d86a447299e7822652a3d257df441265e --- /dev/null +++ b/scripts/travis/vtk.sh @@ -0,0 +1,9 @@ +#!/bin/sh +set -e +if [ ! -d "$HOME/VTK-Install/include" ]; then + cd $HOME + wget http://www.opengeosys.org/images/dev/vtk-6.1.0.tar.gz + tar -xzf vtk-6.1.0.tar.gz +else + echo 'Using cached vtk directory.'; +fi