summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt75
1 files changed, 68 insertions, 7 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5543b48..2d025e2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -170,6 +170,8 @@ STRING (REGEX REPLACE ".*#define[ \t]+H5_VERS_MINOR[ \t]+([0-9]*).*$"
"\\1" H5_VERS_MINOR ${_h5public_h_contents})
STRING (REGEX REPLACE ".*#define[ \t]+H5_VERS_RELEASE[ \t]+([0-9]*).*$"
"\\1" H5_VERS_RELEASE ${_h5public_h_contents})
+STRING (REGEX REPLACE ".*#define[ \t]+H5_VERS_SUBRELEASE[ \t]+\"([0-9A-Za-z._]*)\".*$"
+ "\\1" H5_VERS_SUBRELEASE ${_h5public_h_contents})
#MESSAGE (STATUS "VERSION: ${H5_VERS_MAJOR}.${H5_VERS_MINOR}.${H5_VERS_RELEASE}-${H5_VERS_SUBRELEASE}")
#-----------------------------------------------------------------------------
@@ -192,7 +194,11 @@ SET (HDF5_PACKAGE_NAME "HDF5")
SET (HDF5_PACKAGE_VERSION "${H5_VERS_MAJOR}.${H5_VERS_MINOR}.${H5_VERS_RELEASE}")
SET (HDF5_PACKAGE_VERSION_MAJOR "${H5_VERS_MAJOR}.${H5_VERS_MINOR}")
SET (HDF5_PACKAGE_VERSION_MINOR "${H5_VERS_RELEASE}")
-SET (HDF5_PACKAGE_VERSION_STRING "${HDF5_PACKAGE_VERSION}")
+IF (NOT "${H5_VERS_SUBRELEASE}" STREQUAL "")
+ SET (HDF5_PACKAGE_VERSION_STRING "${HDF5_PACKAGE_VERSION}-${H5_VERS_SUBRELEASE}")
+ELSE (NOT "${H5_VERS_SUBRELEASE}" STREQUAL "")
+ SET (HDF5_PACKAGE_VERSION_STRING "${HDF5_PACKAGE_VERSION}")
+ENDIF (NOT "${H5_VERS_SUBRELEASE}" STREQUAL "")
SET (HDF5_PACKAGE_SOVERSION "${H5_SOVERS_MAJOR}.${H5_SOVERS_MINOR}.${H5_SOVERS_RELEASE}")
SET (HDF5_PACKAGE_STRING "${HDF5_PACKAGE_NAME} ${HDF5_PACKAGE_VERSION_STRING}")
SET (HDF5_PACKAGE_TARNAME "hdf5")
@@ -295,6 +301,15 @@ IF (HDF5_ENABLE_COVERAGE)
ENDIF (HDF5_ENABLE_COVERAGE)
#-----------------------------------------------------------------------------
+# Option to indicate using dmalloc
+#-----------------------------------------------------------------------------
+# OPTION (HDF5_ENABLE_USING_DMALLOC "Indicate that dmalloc is used" OFF)
+# IF (HDF5_ENABLE_USING_DMALLOC)
+# FIND_PACKAGE (DMALLOC)
+# SET (H5_HAVE_DMALLOC DMALLOC_FOUND)
+# ENDIF (HDF5_ENABLE_USING_DMALLOC)
+
+#-----------------------------------------------------------------------------
# Option to indicate using a memory checker
#-----------------------------------------------------------------------------
OPTION (HDF5_ENABLE_USING_MEMCHECKER "Indicate that a memory checker is used" OFF)
@@ -353,16 +368,23 @@ IF (CMAKE_BUILD_TYPE MATCHES Debug)
-DH5I_DEBUG -DH5HL_DEBUG -DH5HG_DEBUG -DH5G_DEBUG -DH5F_DEBUG
-DH5E_DEBUG -DH5D_DEBUG -DH5B_DEBUG -DH5AC_DEBUG -UNDEBUG
)
+ # Enable tracing of the API
OPTION (HDF5_ENABLE_TRACE "Enable API tracing capability" ON)
IF (HDF5_ENABLE_TRACE)
ADD_DEFINITIONS (-DH5_DEBUG_API )
ENDIF (HDF5_ENABLE_TRACE)
+ # Enable instrumenting of the library's internal operations
+ OPTION (HDF5_ENABLE_INSTRUMENT "Instrument The library" OFF)
+ IF (HDF5_ENABLE_INSTRUMENT)
+ SET (H5_HAVE_INSTRUMENTED_LIBRARY 1)
+ ENDIF (HDF5_ENABLE_INSTRUMENT)
+ MARK_AS_ADVANCED (HDF5_Enable_Instrument)
#-- NMake Makefiles will overwhelm the console with warnings if -Wall is used.
IF (NOT WIN32)
ADD_DEFINITIONS (-Wall)
ENDIF (NOT WIN32)
ELSE (CMAKE_BUILD_TYPE MATCHES Debug)
- ADD_DEFINITIONS (-UH5_DEBUG_API -DNDEBUG)
+ ADD_DEFINITIONS (-DNDEBUG)
OPTION (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF)
IF (HDF5_ENABLE_TRACE)
ADD_DEFINITIONS (-DH5_DEBUG_API )
@@ -455,6 +477,7 @@ IF (HDF5_ENABLE_PARALLEL)
# and once set, they are cached as false and not regenerated
SET (CMAKE_REQUIRED_LIBRARIES "${MPI_C_LIBRARIES}" )
CHECK_FUNCTION_EXISTS (MPI_File_get_size H5_HAVE_MPI_GET_SIZE)
+ SET (H5_MPI_FILE_SET_SIZE_BIG 1)
# Used by Fortran + MPI
CHECK_SYMBOL_EXISTS (MPI_Comm_c2f "${MPI_C_INCLUDE_PATH}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Comm)
CHECK_SYMBOL_EXISTS (MPI_Info_c2f "${MPI_C_INCLUDE_PATH}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Info)
@@ -469,6 +492,7 @@ IF (H5_HAVE_PARALLEL)
ENDIF (MPI_C_LINK_FLAGS)
ENDIF (H5_HAVE_PARALLEL)
+SET (DEFAULT_API_VERSION "v110")
#-----------------------------------------------------------------------------
# Option to use 1.6.x API
#-----------------------------------------------------------------------------
@@ -476,6 +500,7 @@ OPTION (HDF5_USE_16_API_DEFAULT "Use the HDF5 1.6.x API by default" OFF)
SET (H5_USE_16_API_DEFAULT 0)
IF (HDF5_USE_16_API_DEFAULT)
SET (H5_USE_16_API_DEFAULT 1)
+ SET (DEFAULT_API_VERSION "v16")
ENDIF (HDF5_USE_16_API_DEFAULT)
#-----------------------------------------------------------------------------
@@ -485,6 +510,7 @@ OPTION (HDF5_USE_18_API_DEFAULT "Use the HDF5 1.8.x API by default" OFF)
SET (H5_USE_18_API_DEFAULT 0)
IF (HDF5_USE_18_API_DEFAULT)
SET (H5_USE_18_API_DEFAULT 1)
+ SET (DEFAULT_API_VERSION "v18")
ENDIF (HDF5_USE_18_API_DEFAULT)
#-----------------------------------------------------------------------------
@@ -546,7 +572,7 @@ IF (HDF5_ENABLE_Z_LIB_SUPPORT)
SET (H5_HAVE_LIBZ 1)
MESSAGE (STATUS "Filter ZLIB is built")
ELSE (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- MESSAGE (FATAL " ZLib is Required for ZLib support in HDF5")
+ MESSAGE (FATAL_ERROR " ZLib is Required for ZLib support in HDF5")
ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
ENDIF (ZLIB_FOUND)
ELSE (NOT H5_ZLIB_HEADER)
@@ -743,6 +769,9 @@ IF (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
IF (HDF5_ENABLE_PARALLEL)
MESSAGE (FATAL " **** Parallel and C++ options are mutually exclusive **** ")
ENDIF (HDF5_ENABLE_PARALLEL)
+ IF (CMAKE_NO_STD_NAMESPACE)
+ SET (H5_NO_STD 1)
+ ENDIF (CMAKE_NO_STD_NAMESPACE)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/c++ ${PROJECT_BINARY_DIR}/c++)
ENDIF (HDF5_BUILD_CPP_LIB)
ENDIF (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
@@ -864,6 +893,11 @@ CONFIGURE_FILE (
${HDF5_RESOURCES_DIR}/libhdf5.settings.cmake.in
${HDF5_BINARY_DIR}/libhdf5.settings @ONLY
)
+INSTALL (
+ FILES ${HDF5_BINARY_DIR}/libhdf5.settings
+ DESTINATION ${HDF5_INSTALL_LIB_DIR}
+ COMPONENT libraries
+)
#-----------------------------------------------------------------------------
# Add Document File(s) to CMake Install
@@ -916,7 +950,7 @@ ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
# Set the cpack variables
#-----------------------------------------------------------------------------
IF (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
- SET (CPACK_PACKAGE_VENDOR "HDF Group")
+ SET (CPACK_PACKAGE_VENDOR "HDF_Group")
SET (CPACK_PACKAGE_NAME "${HDF5_PACKAGE_NAME}")
SET (CPACK_PACKAGE_INSTALL_DIRECTORY "${HDF5_PACKAGE_NAME}")
SET (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${HDF5_PACKAGE_NAME}-${HDF5_PACKAGE_VERSION}-${LIB_TYPE}")
@@ -930,14 +964,41 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
SET (CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/release_docs/RELEASE.txt")
ENDIF (EXISTS "${HDF5_SOURCE_DIR}/release_docs")
SET (CPACK_PACKAGE_RELOCATABLE TRUE)
+
IF (WIN32)
- SET (CPACK_NSIS_CONTACT "help@hdfgroup.org")
+ SET (CPACK_MONOLITHIC_INSTALL ON)
+ SET (CPACK_NSIS_CONTACT "${HDF5_PACKAGE_BUGREPORT}")
SET (CPACK_NSIS_MODIFY_PATH ON)
SET (CPACK_NSIS_PACKAGE_NAME "HDF5 ${HDF5_PACKAGE_VERSION}")
ELSE (WIN32)
- SET (CPACK_RPM_COMPONENT_INSTALL ON)
- SET (CPACK_ARCHIVE_COMPONENT_INSTALL ON)
+ SET (CPACK_PACKAGING_INSTALL_PREFIX "/usr")
SET (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
+
+ SET (CPACK_DEBIAN_PACKAGE_SECTION "Libraries")
+ SET (CPACK_DEBIAN_PACKAGE_MAINTAINER "${HDF5_PACKAGE_BUGREPORT}")
+
+ SET (CPACK_RPM_COMPONENT_INSTALL ON)
+ SET (CPACK_RPM_PACKAGE_RELOCATABLE ON)
+ SET (CPACK_RPM_PACKAGE_LICENSE "BSD-style")
+ SET (CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
+ SET (CPACK_RPM_PACKAGE_URL "${HDF5_PACKAGE_URL}")
+ SET (CPACK_RPM_PACKAGE_SUMMARY "HDF5 is a unique technology suite that makes possible the management of extremely large and complex data collections.")
+ SET (CPACK_RPM_PACKAGE_DESCRIPTION
+ "The HDF5 technology suite includes:
+
+ * A versatile data model that can represent very complex data objects and a wide variety of metadata.
+
+ * A completely portable file format with no limit on the number or size of data objects in the collection.
+
+ * A software library that runs on a range of computational platforms, from laptops to massively parallel systems, and implements a high-level API with C, C++, Fortran 90, and Java interfaces.
+
+ * A rich set of integrated performance features that allow for access time and storage space optimizations.
+
+ * Tools and applications for managing, manipulating, viewing, and analyzing the data in the collection.
+
+The HDF5 data model, file format, API, library, and tools are open and distributed without charge.
+"
+ )
ENDIF (WIN32)
INCLUDE(InstallRequiredSystemLibraries)