Skip to content

Commit 6492d4e

Browse files
committed
Merge pull request #93 from ComputationalRadiationPhysics/release-1.1
Release 1.1.0 and Close #61
2 parents e65d25d + 7bff85f commit 6492d4e

File tree

93 files changed

+1361
-1031
lines changed

Some content is hidden

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

93 files changed

+1361
-1031
lines changed

.travis.yml

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,14 @@ compiler:
99
- clang
1010

1111
env:
12-
- SPLASHPARALLEL=ON SPLASHMPI=ON
13-
- SPLASHPARALLEL=OFF SPLASHMPI=ON
14-
- SPLASHPARALLEL=OFF SPLASHMPI=OFF
12+
global:
13+
- SPLASH_ROOT=~/lib/splash
14+
- BUILD=~/buildTmp
15+
- SRC=$TRAVIS_BUILD_DIR
16+
matrix:
17+
- SPLASHPARALLEL=ON SPLASHMPI=ON
18+
- SPLASHPARALLEL=OFF SPLASHMPI=ON
19+
- SPLASHPARALLEL=OFF SPLASHMPI=OFF
1520

1621
script:
1722
- cd $BUILD
@@ -32,12 +37,24 @@ after_script:
3237
- $SRC/tests/run_parallel_tests $BUILD
3338

3439
before_script:
35-
- echo "yes" | sudo add-apt-repository ppa:jsm-8/lofar-deps
40+
- uname -r
41+
- lsb_release -a
42+
- echo "$SRC"
43+
- ls -hal $SRC
44+
# PPA providing hdf5 >= 1.8.6 and OpenMPI >= 1.5.1
45+
# -> remove legacy hdf5 and mpi packages/deps from travis
46+
- sudo apt-get remove -qq libhdf5* libopenmpi* openmpi-bin
47+
- echo "yes" | sudo add-apt-repository ppa:james-page/openmpi
48+
- echo "yes" | sudo add-apt-repository ppa:axel-huebl/libsplash
3649
- sudo apt-get update -qq
50+
- sudo apt-cache policy
51+
- sudo apt-cache policy libhdf5-serial-dev
52+
- sudo apt-cache policy libopenmpi-dev
3753
- if [ "$SPLASHMPI" == "ON" ]; then export APTMPI="libopenmpi-dev openmpi-bin"; fi
38-
- if [ "$SPLASHPARALLEL" == "ON" ]; then export APTHDF5="libhdf5-openmpi-dev"; else export APTHDF5="libhdf5-serial-dev"; fi
39-
- sudo apt-get install -qq libcppunit-dev libboost-program-options-dev $APTMPI $APTHDF5
40-
- export SRC=`pwd`
41-
- export BUILD=~/buildTmp
54+
- if [ "$SPLASHPARALLEL" == "ON" ]; then export APTHDF5="libhdf5-openmpi-7 libhdf5-openmpi-dev"; else export APTHDF5="libhdf5-serial-dev"; fi
55+
- sudo dpkg --get-selections
56+
- sudo apt-get install -qq -f libcppunit-dev
57+
- sudo apt-get install -qq -f libboost-program-options-dev
58+
- sudo apt-get -t o=LP-PPA-james-page-openmpi install -q -f $APTMPI
59+
- sudo apt-get -t o=LP-PPA-axel-huebl-libsplash install -q -f $APTHDF5
4260
- mkdir -p $BUILD ~/lib
43-
- export SPLASH_ROOT=~/lib/splash

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
Change Log for libSplash
2+
================================================================
3+
4+
Release 1.1.0
5+
-------------
6+
**Date:** 2014-01-23
7+
8+
**New Features**
9+
10+
- Added support for various new collection types.
11+
- Added macros to generate array and compound collection types.
12+
- Enabled support for using static HDF5 library.
13+
- Added patch level and file format version information.
14+
- Updated user manual for parallel I/O.
15+
- New tests and examples.
16+
17+
18+
**Interface Changes**
19+
20+
- Header files moved to splash subfolder (include/splash/splash.h).
21+
22+
23+
**Bug Fixes**
24+
25+
- Create duplicate of user-provided MPI communicator.
26+
- Allow empty write/read calls (no data).
27+
- Improved HDF5 detection in cmake file.
28+
- Fix usage of MPI data types.
29+
30+
31+
**Misc:**
32+
33+
- Compiling with OpenMPI now requires version 1.5.1 or higher

CMakeLists.txt

Lines changed: 69 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright 2013 Felix Schmitt
2+
# Copyright 2013 Felix Schmitt, Axel Huebl
33
#
44
# This file is part of libSplash.
55
#
@@ -35,24 +35,56 @@ PROJECT(libSplash)
3535
#set helper pathes to find libraries and packages
3636
#- you need the multiarch dir x86_64-linux-gnu on 64bit Ubuntu's with
3737
# self-compiled compilers
38-
SET(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/" "$ENV{MPI_ROOT}" "$ENV{HDF5_ROOT}")
38+
SET(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/" "$ENV{MPI_ROOT}"
39+
"$ENV{HDF5_ROOT}")
3940

4041
#-------------------------------------------------------------------------------
4142

4243
# install prefix
4344
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
44-
SET(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}" CACHE PATH "install prefix" FORCE)
45+
SET(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}" CACHE PATH "install prefix"
46+
FORCE)
4547
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
4648

4749
#-------------------------------------------------------------------------------
4850

51+
# whats my version?
52+
FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash/version.hpp"
53+
SPLASH_VERSION_MAJOR_HPP REGEX "#define SPLASH_VERSION_MAJOR ")
54+
FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash/version.hpp"
55+
SPLASH_VERSION_MINOR_HPP REGEX "#define SPLASH_VERSION_MINOR ")
56+
FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash/version.hpp"
57+
SPLASH_VERSION_PATCH_HPP REGEX "#define SPLASH_VERSION_PATCH ")
58+
59+
STRING(REGEX MATCH "([0-9]+)" SPLASH_VERSION_MAJOR
60+
${SPLASH_VERSION_MAJOR_HPP})
61+
STRING(REGEX MATCH "([0-9]+)" SPLASH_VERSION_MINOR
62+
${SPLASH_VERSION_MINOR_HPP})
63+
STRING(REGEX MATCH "([0-9]+)" SPLASH_VERSION_PATCH
64+
${SPLASH_VERSION_PATCH_HPP})
65+
66+
SET(SPLASH_VERSION "${SPLASH_VERSION_MAJOR}.${SPLASH_VERSION_MINOR}.${SPLASH_VERSION_PATCH}")
67+
MESSAGE(STATUS "Building libSplash version ${SPLASH_VERSION}")
68+
69+
#-------------------------------------------------------------------------------
70+
4971
# HDF5 is required package
5072
FIND_PACKAGE(HDF5 REQUIRED)
5173
INCLUDE_DIRECTORIES(SYSTEM ${HDF5_INCLUDE_DIR})
5274

75+
# check if static version of HDF5 is used
76+
# CMake prefers .so/shared libraries
77+
# if we find a static HDF5 lib in the ${HDF5_LIBRARIES}
78+
# it means there is only a static version installed
79+
SET(HDF5_IS_STATIC ON)
80+
STRING(FIND "${HDF5_LIBRARIES}" "hdf5.a" HDF5_IS_STATIC_POS)
81+
IF(${HDF5_IS_STATIC_POS} EQUAL -1)
82+
SET(HDF5_IS_STATIC OFF)
83+
ENDIF(${HDF5_IS_STATIC_POS} EQUAL -1)
84+
5385
#-------------------------------------------------------------------------------
5486

55-
SET(CMAKE_CXX_FLAGS "-Wall -Werror -Wextra -Woverloaded-virtual")
87+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra -Woverloaded-virtual")
5688

5789
# options
5890
OPTION(DEBUG_VERBOSE "Enable verbose HDF5 debug output" OFF)
@@ -110,50 +142,62 @@ AUX_SOURCE_DIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/tools" TOOLS_SOURCES)
110142

111143
#-------------------------------------------------------------------------------
112144

113-
# build libsplash shared
114-
ADD_LIBRARY(splash SHARED ${LIBRARY_SOURCES})
115-
TARGET_LINK_LIBRARIES (splash ${SPLASH_LIBS})
145+
# build libsplash shared (if shared HDF5 is used)
146+
IF(HDF5_IS_STATIC)
147+
MESSAGE(WARNING "Skipping dynamic libSplash because HDF5 library is static")
148+
ELSE(HDF5_IS_STATIC)
149+
ADD_LIBRARY(splash SHARED ${LIBRARY_SOURCES})
150+
TARGET_LINK_LIBRARIES(splash ${SPLASH_LIBS})
151+
ENDIF(HDF5_IS_STATIC)
116152

117-
#build libsplash static
153+
# build libsplash static
118154
ADD_LIBRARY(splash_static STATIC ${LIBRARY_SOURCES})
119155
SET_TARGET_PROPERTIES(splash_static PROPERTIES OUTPUT_NAME splash)
120156
TARGET_LINK_LIBRARIES (splash_static ${SPLASH_LIBS})
121157

122158
# install libs
123-
INSTALL(TARGETS splash LIBRARY DESTINATION lib)
159+
IF(NOT HDF5_IS_STATIC)
160+
INSTALL(TARGETS splash LIBRARY DESTINATION lib)
161+
ENDIF(NOT HDF5_IS_STATIC)
162+
124163
INSTALL(TARGETS splash_static ARCHIVE DESTINATION lib)
125164

126165
# copy include folder to install folder
127166
INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src/include/."
128-
DESTINATION "${CMAKE_INSTALL_PREFIX}/include"
167+
DESTINATION include
129168
PATTERN ".svn" EXCLUDE
130169
PATTERN ".git" EXCLUDE
131170
PATTERN "splash_*.h" EXCLUDE
132171
)
133172

134173
# install correct splash header file
135-
INSTALL(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/PostInstall.cmake")
174+
# (will be executed after the POST_BUILD copies of splash.h)
175+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/splash/splash.h
176+
DESTINATION include/splash)
177+
178+
ADD_CUSTOM_COMMAND(TARGET splash_static POST_BUILD
179+
COMMAND ${CMAKE_COMMAND} -E make_directory
180+
"${CMAKE_CURRENT_BINARY_DIR}/splash"
181+
)
182+
136183
IF(HDF5_IS_PARALLEL)
137-
SET(splash_inc_file "${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash_parallel.h")
184+
SET(splash_inc_file "${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash/splash_parallel.h")
138185

139-
ADD_CUSTOM_COMMAND(TARGET splash POST_BUILD
140-
COMMAND ${CMAKE_COMMAND} -E create_symlink
141-
"${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash_parallel.h"
142-
"${CMAKE_CURRENT_BINARY_DIR}/splash.h"
186+
ADD_CUSTOM_COMMAND(TARGET splash_static POST_BUILD
187+
COMMAND ${CMAKE_COMMAND} -E copy
188+
"${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash/splash_parallel.h"
189+
"${CMAKE_CURRENT_BINARY_DIR}/splash/splash.h"
143190
)
144191
ELSE(HDF5_IS_PARALLEL)
145-
SET(splash_inc_file "${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash_serial.h")
192+
SET(splash_inc_file "${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash/splash_serial.h")
146193

147-
ADD_CUSTOM_COMMAND(TARGET splash POST_BUILD
148-
COMMAND ${CMAKE_COMMAND} -E create_symlink
149-
"${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash_serial.h"
150-
"${CMAKE_CURRENT_BINARY_DIR}/splash.h"
194+
ADD_CUSTOM_COMMAND(TARGET splash_static POST_BUILD
195+
COMMAND ${CMAKE_COMMAND} -E copy
196+
"${CMAKE_CURRENT_SOURCE_DIR}/src/include/splash/splash_serial.h"
197+
"${CMAKE_CURRENT_BINARY_DIR}/splash/splash.h"
151198
)
152199
ENDIF(HDF5_IS_PARALLEL)
153200

154-
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/PostInstall.cmake.in
155-
${CMAKE_CURRENT_BINARY_DIR}/PostInstall.cmake @ONLY)
156-
157201
#-------------------------------------------------------------------------------
158202

159203
# build tools
@@ -190,7 +234,7 @@ IF(WITH_TOOLS)
190234
ENDIF(HDF5_IS_PARALLEL)
191235

192236
ADD_EXECUTABLE(splashtools ${TOOLS_SOURCES})
193-
ADD_DEPENDENCIES(splashtools splash splash_static)
237+
ADD_DEPENDENCIES(splashtools splash_static)
194238
TARGET_LINK_LIBRARIES(splashtools ${TOOLS_LIBS})
195239

196240
#install tools

PostInstall.cmake.in

Lines changed: 0 additions & 23 deletions
This file was deleted.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
libSplash - Simple Parallel file output Library for Accumulating Simulation data using Hdf5
22
===========================================================================================
33

4-
### Build Status by branch
4+
### Build Status by branch (master/dev)
55

66
[![Build Status Master](https://travis-ci.org/ComputationalRadiationPhysics/libSplash.png?branch=master)]
7-
(https://travis-ci.org/ComputationalRadiationPhysics/libSplash)
8-
[![Build Status Parallel](https://travis-ci.org/ComputationalRadiationPhysics/libSplash.png?branch=parallel)]
9-
(https://travis-ci.org/ComputationalRadiationPhysics/libSplash)
7+
(https://travis-ci.org/ComputationalRadiationPhysics/libSplash "master")
8+
[![Build Status Development](https://travis-ci.org/ComputationalRadiationPhysics/libSplash.png?branch=dev)]
9+
(https://travis-ci.org/ComputationalRadiationPhysics/libSplash "dev")
1010

1111
Introduction
1212
------------

doc/INSTALL.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ To use the CMakeLists.txt file which comes with the source code, you must have
1616
**CMake version 2.8.5** or higher installed.
1717

1818
The splashtools and some tests also require an **MPI 2.2** compatible MPI library,
19-
e.g. OpenMPI 1.4.3 or higher.
19+
e.g. **OpenMPI 1.5.1** or higher.
2020

2121
Tests require the development version of the **CppUnit** library.
2222

@@ -39,13 +39,25 @@ pass `-DSPLASH_RELEASE=OFF` to your cmake command.
3939
To see verbose internal (!) HDF5 debug output, pass `-DDEBUG_VERBOSE=ON`
4040
to your cmake command line.
4141

42+
Afterwards, please add `<INSTALL PATH>/bin` to your `$PATH` environment variable and
43+
`<INSTALL PATH>/lib` to your `$LD_LIBRARY_PATH`.
44+
Setting an additional environment variable `export SPLASH_ROOT=<INSTALL PATH>` will
45+
help finding the installed libraries with CMake scripts.
46+
4247

4348
Linking
4449
-------
4550

4651
To use libSplash in your project, you must link against the created shared object library
4752
libsplash.so or against the statically linked archive libsplash.a.
4853

54+
Because we are linking to HDF5, the following **external dependencies** must be linked:
55+
- `-lhdf5`
56+
- `-lpthread`
57+
- `-lz`
58+
- `-lrt`
59+
- `-ldl`
60+
- `-lm`
4961

5062
Tests
5163
-----
@@ -80,4 +92,3 @@ This builds the *ParallelDataCollector* and *ParallelDomainCollector* classes.
8092
*Please note that this feature is beta stage and not fully tested!*
8193
See *IParallelDataCollector* and *IParallelDomainCollector* interfaces for further
8294
information on how to use the parallel version.
83-

doc/manual/UserManual.pdf

74.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)