From 786bb5bc6cd36369e75915d171df33a113d98e7b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 10 Jul 2017 14:55:16 -0500 Subject: [PATCH] Use a PPA to install HDF5 and PHDF5 on Travis --- .travis.yml | 10 +++++----- CMakeLists.txt | 10 ++++++---- tests/run_tests.py | 11 +++++++++-- tests/travis_install.sh | 28 ---------------------------- 4 files changed, 20 insertions(+), 39 deletions(-) delete mode 100755 tests/travis_install.sh diff --git a/.travis.yml b/.travis.yml index b842b3bb1..fcefaa8f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,8 +13,6 @@ addons: - libmpich-dev cache: directories: - - $HOME/hdf5_install - - $HOME/phdf5_install - $HOME/nndc_hdf5 before_install: @@ -34,11 +32,13 @@ before_install: - source activate test-environment # Install GCC, HDF5, PHDF5 - - ./tests/travis_install.sh + - sudo add-apt-repository ppa:nschloe/hdf5-backports -y + - sudo apt-get update -q + - sudo apt-get install libhdf5-serial-dev libhdf5-mpich-dev -y - export FC=gfortran - export MPI_DIR=/usr - - export PHDF5_DIR=$HOME/phdf5_install - - export HDF5_DIR=$HOME/hdf5_install + - export PHDF5_DIR=/usr + - export HDF5_DIR=/usr install: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 19d2d3886..7b07b3c48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,10 +62,12 @@ endif() # this, we check for the environment variable HDF5_ROOT and if it exists, use it # to check whether its a parallel version. -if(DEFINED ENV{HDF5_ROOT} AND EXISTS $ENV{HDF5_ROOT}/bin/h5pcc) - set(HDF5_PREFER_PARALLEL TRUE) -else() - set(HDF5_PREFER_PARALLEL FALSE) +if(NOT DEFINED HDF5_PREFER_PARALLEL) + if(DEFINED ENV{HDF5_ROOT} AND EXISTS $ENV{HDF5_ROOT}/bin/h5pcc) + set(HDF5_PREFER_PARALLEL TRUE) + else() + set(HDF5_PREFER_PARALLEL FALSE) + endif() endif() find_package(HDF5 COMPONENTS Fortran_HL) diff --git a/tests/run_tests.py b/tests/run_tests.py index 2d9112e92..cd6c02607 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -188,6 +188,10 @@ class Test(object): build_str += "-Dopenmp=OFF " if self.coverage: build_str += "-Dcoverage=ON " + if self.phdf5: + build_str += "-DHDF5_PREFER_PARALLEL=ON " + else: + build_str += "-DHDF5_PREFER_PARALLEL=OFF " self.build_opts = build_str return self.build_opts @@ -214,6 +218,9 @@ class Test(object): # Runs cmake when in non-script mode def run_cmake(self): + build_opts = self.build_opts.split() + self.cmake += build_opts + os.environ['FC'] = self.fc os.environ['CC'] = self.cc os.environ['CXX'] = self.cxx @@ -221,10 +228,10 @@ class Test(object): os.environ['MPI_DIR'] = MPI_DIR if self.phdf5: os.environ['HDF5_ROOT'] = PHDF5_DIR + self.cmake.append('-DHDF5_PREFER_PARALLEL=ON') else: os.environ['HDF5_ROOT'] = HDF5_DIR - build_opts = self.build_opts.split() - self.cmake += build_opts + self.cmake.append('-DHDF5_PREFER_PARALLEL=OFF') rc = call(self.cmake) if rc != 0: self.success = False diff --git a/tests/travis_install.sh b/tests/travis_install.sh deleted file mode 100755 index 7339a6605..000000000 --- a/tests/travis_install.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -set -ev - -# Build PHDF5 -if [[ ! -e $HOME/phdf5_install/bin/h5pfc ]]; then - wget -q https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.19/src/hdf5-1.8.19.tar.bz2 - tar -xjf hdf5-1.8.19.tar.bz2 - mv hdf5-1.8.19 phdf5-1.8.19 - cd phdf5-1.8.19 - CC=/usr/bin/mpicc FC=/usr/bin/mpif90 \ - ./configure --prefix=$HOME/phdf5_install -q \ - --enable-fortran --enable-fortran2003 --enable-parallel - make -j 2 &> /dev/null - make install &> /dev/null - cd .. -fi - -# Build HDF5 -if [[ ! -e $HOME/hdf5_install/bin/h5fc ]]; then - tar -xjf hdf5-1.8.19.tar.bz2 - cd hdf5-1.8.19 - CC=gcc FC=gfortran ./configure --prefix=$HOME/hdf5_install -q \ - --enable-fortran --enable-fortran2003 - make -j 2 &> /dev/null - make install &> /dev/null - cd .. -fi