Skip to content

Commit 140d6ce

Browse files
Merge pull request #275 from ComputationalRadiationPhysics/dev
Release 1.7.0: Modern CMake & readAttributeInfo
2 parents 4aa0c03 + 4e3f320 commit 140d6ce

43 files changed

Lines changed: 2328 additions & 1263 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.travis.yml

Lines changed: 106 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,116 @@
11
language: cpp
2+
sudo: required
3+
dist: trusty
24

3-
branches:
4-
except:
5-
- axel
5+
cache:
6+
apt: true
7+
directories:
8+
- $HOME/.cache/spack
9+
pip: true
610

7-
compiler:
8-
- gcc
9-
- clang
11+
addons:
12+
apt:
13+
sources:
14+
- ubuntu-toolchain-r-test
15+
packages: &common_deps
16+
- gfortran
17+
- libcppunit-dev
1018

1119
env:
1220
global:
13-
- BUILD=~/buildTmp
14-
- SRC=$TRAVIS_BUILD_DIR
15-
matrix:
16-
- SPLASHPARALLEL=ON SPLASHMPI=ON
17-
- SPLASHPARALLEL=OFF SPLASHMPI=ON
18-
- SPLASHPARALLEL=OFF SPLASHMPI=OFF
21+
- BUILD: ~/buildTmp
22+
- CXXFLAGS: "-Wall -Wextra -Woverloaded-virtual -Wshadow"
23+
- SPACK_ROOT: $HOME/.cache/spack
24+
- PATH: $PATH:$HOME/.cache/spack/bin
25+
26+
matrix:
27+
include:
28+
# GCC 4.8.5
29+
- env:
30+
- SPLASHPARALLEL=ON SPLASHMPI=ON
31+
compiler: gcc
32+
addons: &mpi_deps
33+
apt:
34+
packages:
35+
- *common_deps
36+
- libopenmpi-dev
37+
- openmpi-bin
38+
- env:
39+
- SPLASHPARALLEL=OFF SPLASHMPI=ON
40+
compiler: gcc
41+
addons: *mpi_deps
42+
- env:
43+
- SPLASHPARALLEL=OFF SPLASHMPI=OFF
44+
compiler: gcc
45+
# Clang 5.0.0
46+
- env:
47+
- SPLASHPARALLEL=ON SPLASHMPI=ON
48+
compiler: clang
49+
addons: *mpi_deps
50+
- env:
51+
- SPLASHPARALLEL=OFF SPLASHMPI=ON
52+
compiler: clang
53+
addons: *mpi_deps
54+
55+
- env:
56+
- SPLASHPARALLEL=OFF SPLASHMPI=OFF
57+
compiler: clang
58+
59+
install:
60+
- SPACK_FOUND=$(which spack >/dev/null && { echo 0; } || { echo 1; })
61+
- if [ $SPACK_FOUND -ne 0 ]; then
62+
mkdir -p $SPACK_ROOT &&
63+
git clone --depth 50 https://github.com/spack/spack.git $SPACK_ROOT &&
64+
cp $TRAVIS_BUILD_DIR/.travis/spack/*.yaml
65+
$SPACK_ROOT/etc/spack/ &&
66+
spack bootstrap;
67+
fi
68+
- source /etc/profile &&
69+
source $SPACK_ROOT/share/spack/setup-env.sh
70+
- COMPILERSPEC="%$CC"
71+
- travis_wait spack install
72+
cmake@3.10.0~openssl~ncurses
73+
$COMPILERSPEC
74+
- spack load cmake@3.10.0 $COMPILERSPEC
75+
- if [ $SPLASHMPI == "ON" ]; then
76+
travis_wait spack install
77+
openmpi@1.6.5
78+
$COMPILERSPEC &&
79+
spack load openmpi@1.6.5 $COMPILERSPEC;
80+
fi
81+
- if [ $SPLASHPARALLEL == "ON" ]; then
82+
travis_wait spack install
83+
hdf5@1.8.12+mpi ^openmpi@1.6.5
84+
$COMPILERSPEC &&
85+
spack load hdf5@1.8.12+mpi ^openmpi@1.6.5 $COMPILERSPEC &&
86+
spack load zlib $COMPILERSPEC &&
87+
pip install urllib3[secure] --user &&
88+
pip install h5py --user;
89+
else
90+
travis_wait spack install
91+
hdf5@1.8.12~mpi
92+
$COMPILERSPEC &&
93+
spack load hdf5@1.8.12~mpi $COMPILERSPEC &&
94+
spack load zlib $COMPILERSPEC &&
95+
pip install urllib3[secure] --user &&
96+
pip install h5py --user;
97+
fi
98+
- spack clean -a
1999

20100
script:
21-
- cd $BUILD
22-
# compile libSplash and install
23-
- CXXFLAGS="-Werror" cmake -DCMAKE_BUILD_TYPE=Debug -DTOOLS_MPI=$SPLASHMPI $SRC
101+
- mkdir -p $HOME/build
102+
- cd $HOME/build
103+
- CXXFLAGS=$CXXFLAGS CXX=$CXX CC=$CC
104+
cmake
105+
-DCMAKE_BUILD_TYPE=Debug
106+
-DSplash_USE_MPI=$SPLASHMPI
107+
-DSplash_USE_PARALLEL=$SPLASHPARALLEL
108+
-DSplash_HAVE_TESTS=ON
109+
-DCMAKE_INSTALL_PREFIX=$HOME/splash-test-install
110+
$TRAVIS_BUILD_DIR
111+
- make -j 2
112+
- CTEST_OUTPUT_ON_FAILURE=1 make test
113+
- make install
24114
- make package
25-
- sudo dpkg -i libsplash*.deb
26-
- ls -hal /usr/share/pyshared/
27-
- rm -rf $BUILD/*
28-
# compile examples/
29-
- CXXFLAGS="-Werror" cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_MPI=$SPLASHMPI $SRC/examples
30-
- make
31-
- rm -rf $BUILD/*
32-
# compile and run tests/
33-
- CXXFLAGS="-Werror" cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_MPI=$SPLASHMPI $SRC/tests
34-
- make
35-
# run tests
36-
- $SRC/tests/run_tests $BUILD
37-
- $SRC/tests/run_parallel_tests $BUILD
115+
# - dpkg -i libsplash*.deb
38116

39-
before_script:
40-
- uname -r
41-
- lsb_release -a
42-
- echo "$SRC"
43-
- ls -hal $SRC
44-
- ls -hal /usr/include
45-
# PPA providing hdf5 >= 1.8.6 and OpenMPI >= 1.5.1
46-
# -> remove legacy hdf5 and mpi packages/deps from travis
47-
- sudo apt-get remove -qq libhdf5*
48-
- sudo apt-get remove -qq libopenmpi* openmpi-bin || { echo "OpenMPI not installed"; }
49-
- echo "yes" | sudo add-apt-repository ppa:james-page/openmpi
50-
- echo "yes" | sudo add-apt-repository ppa:axel-huebl/libsplash
51-
- sudo apt-get update -qq
52-
- sudo apt-cache policy
53-
- sudo apt-cache policy libhdf5-serial-dev
54-
- sudo apt-cache policy libopenmpi-dev
55-
- if [ "$SPLASHMPI" == "ON" ]; then export APTMPI="libopenmpi-dev openmpi-bin"; fi
56-
- if [ "$SPLASHPARALLEL" == "ON" ]; then export APTHDF5="libhdf5-openmpi-7 libhdf5-openmpi-dev"; else export APTHDF5="libhdf5-serial-dev"; fi
57-
- sudo dpkg --get-selections
58-
- sudo apt-get install -qq -f libcppunit-dev
59-
- sudo apt-get install -qq -f libboost-program-options-dev
60-
- sudo apt-get -t o=LP-PPA-james-page-openmpi install -q -f $APTMPI
61-
- sudo apt-get -t o=LP-PPA-axel-huebl-libsplash install -q -f $APTHDF5
62-
- sudo apt-get install python-numpy cython
63-
- sudo -H pip install --upgrade pip
64-
# numpy and cython should be already satisfied
65-
- export HDF5_DIR=/usr
66-
- export C_INCLUDE_PATH=/usr/lib/openmpi/include
67-
- pip install --user h5py
68-
- python -c "import numpy; print(numpy.version.version)"
69-
- python -c "import h5py; print(h5py.version.version)"
70-
- mkdir -p $BUILD ~/lib

.travis/spack/compilers.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
compilers:
2+
- compiler:
3+
environment: {}
4+
extra_rpaths: []
5+
flags: {}
6+
modules: []
7+
operating_system: ubuntu14.04
8+
paths:
9+
cc: /usr/local/clang-5.0.0/bin/clang
10+
cxx: /usr/local/clang-5.0.0/bin/clang++
11+
f77: /usr/bin/gfortran-4.8
12+
fc: /usr/bin/gfortran-4.8
13+
spec: clang@5.0.0
14+
target: x86_64
15+
- compiler:
16+
environment: {}
17+
extra_rpaths: []
18+
flags: {}
19+
modules: []
20+
operating_system: ubuntu14.04
21+
paths:
22+
cc: /usr/bin/gcc-4.8
23+
cxx: /usr/bin/g++-4.8
24+
f77: /usr/bin/gfortran-4.8
25+
fc: /usr/bin/gfortran-4.8
26+
spec: gcc@4.8.5
27+
target: x86_64

.travis/spack/config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
config:
2+
build_jobs: 2

.travis/spack/packages.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
packages:
2+
cmake:
3+
version: [3.10.0]
4+
openmpi:
5+
version: [1.6.5]
6+
paths:
7+
openmpi@1.6.5%gcc@4.8.5 arch=linux-ubuntu14-x86_64: /usr
8+
openmpi@1.6.5%clang@5.0.0 arch=linux-ubuntu14-x86_64: /usr
9+
buildable: False
10+
all:
11+
providers:
12+
mpi: [openmpi]

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,37 @@
11
Change Log for libSplash
22
================================================================
33

4+
Release 1.7.0
5+
-------------
6+
**Date:** 2018-02-08
7+
8+
This release adds modernized CMake scripts including CMake config
9+
packages on install with targets. A new `readAttributeInfo` method
10+
was added to the `DataCollector` for save reading of types and
11+
extents of attributes. On reads, the `offset` in `DataContainer` for
12+
non-zero offsets in domains was fixed. Due to a bug in upsteam CMake,
13+
at least version 3.10.0 of CMake is required now.
14+
15+
**Interface Changes**
16+
17+
- new read method: attribute meta info #248 #268
18+
- the methods `readAttribute`/`readGlobalAttribute` are deprecated
19+
- use safer `readAttributeInfo`/`readGlobalAttributeInfo` instead
20+
- keep info on H5 datatypes in collection types #259
21+
22+
**Bug Fixes**
23+
24+
- `DataContainer`: fix offset read #263
25+
- `FindHDF5.cmake`: use upstream CMake version #267
26+
27+
**Misc**
28+
29+
- modern CMake3 scripts #269
30+
- fix GitHub badges #254 #264
31+
32+
Thanks to Axel Huebl and Alexander Grund for contributions to this release!
33+
34+
435
Release 1.6.0
536
-------------
637
**Date:** 2016-10-28

0 commit comments

Comments
 (0)