summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2018-10-02 21:16:34 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2018-10-02 21:17:10 (GMT)
commit8c26358eca11455235df239a7e9f3a225b3141da (patch)
treef9ae4061b519ae7c516830a59a92faba93f9f006 /CMakeLists.txt
parent66ef37d0d8030f38c924374facc49f6af6f6ddd5 (diff)
downloadhdf5-8c26358eca11455235df239a7e9f3a225b3141da.zip
hdf5-8c26358eca11455235df239a7e9f3a225b3141da.tar.gz
hdf5-8c26358eca11455235df239a7e9f3a225b3141da.tar.bz2
Merge CMake changes from 1.10 to 1.8
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt56
1 files changed, 31 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8fa2b6b..486e5ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.10)
-PROJECT (HDF5 C CXX)
+project (HDF5 C)
#-----------------------------------------------------------------------------
# Instructions for use : Normal Build
@@ -46,6 +46,9 @@ endif ()
# dependencies of the HDF5 libs may be 'incomplete', add additional
# dependencies to this variable so that external projects pick them up
#
+#option (HDF5_EXTERNAL_LIB_PREFIX "Use prefix for custom library naming." "")
+set (HDF5_EXTERNAL_LIB_PREFIX "" CACHE STRING "Use prefix for custom library naming.")
+mark_as_advanced (HDF5_EXTERNAL_LIB_PREFIX)
# HDF5_EXTERNAL_LIB_PREFIX :
# If the parent project needs to install hdf libraries, but avoid
# name conflicts with system versions, then a prefix may be added
@@ -348,7 +351,7 @@ set (CMAKE_POSITION_INDEPENDENT_CODE ON)
#-----------------------------------------------------------------------------
# Option to Build Static executables
#-----------------------------------------------------------------------------
-option (BUILD_STATIC_EXECS "Build Static Executabless" OFF)
+option (BUILD_STATIC_EXECS "Build Static Executables" OFF)
if (BUILD_STATIC_EXECS)
if (NOT WIN32)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static")
@@ -361,9 +364,14 @@ endif ()
#-----------------------------------------------------------------------------
option (HDF5_ENABLE_COVERAGE "Enable code coverage for Libraries and Programs" OFF)
if (HDF5_ENABLE_COVERAGE)
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
- set (LDFLAGS "${LDFLAGS} -fprofile-arcs -ftest-coverage")
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 --coverage -fprofile-arcs -ftest-coverage")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g --coverage -O0 -fprofile-arcs -ftest-coverage")
+ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ set (LDFLAGS "${LDFLAGS} -fprofile-arcs -ftest-coverage")
+ link_libraries (gcov)
+ else ()
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
+ endif ()
endif ()
#-----------------------------------------------------------------------------
@@ -432,22 +440,12 @@ option (HDF5_BUILD_GENERATORS "Build Test Generators" OFF)
option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF)
mark_as_advanced (HDF5_ENABLE_TRACE)
if (${HDF_CFG_NAME} MATCHES "Debug")
- add_definitions (-DDEBUG)
- # Enable tracing of the API
- if (HDF5_ENABLE_TRACE)
- add_definitions (-DH5_DEBUG_API )
- endif ()
# 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 ()
mark_as_advanced (HDF5_ENABLE_INSTRUMENT)
-else ()
- add_definitions (-DNDEBUG)
- if (HDF5_ENABLE_TRACE)
- add_definitions (-DH5_DEBUG_API )
- endif ()
endif ()
#-----------------------------------------------------------------------------
@@ -463,16 +461,11 @@ else ()
endif ()
include (${HDF_RESOURCES_DIR}/HDFCompilerFlags.cmake)
-
-#-----------------------------------------------------------------------------
-# All libs/tests/examples need the main include directories
-#-----------------------------------------------------------------------------
-INCLUDE_DIRECTORIES (${HDF5_BINARY_DIR} ${HDF5_SRC_DIR} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+set (CMAKE_MODULE_PATH ${HDF_RESOURCES_DIR} ${HDF_RESOURCES_EXT_DIR} ${CMAKE_MODULE_PATH})
#-----------------------------------------------------------------------------
# Option to Enable MPI Parallel
#-----------------------------------------------------------------------------
-set (CMAKE_MODULE_PATH ${HDF_RESOURCES_DIR} ${HDF_RESOURCES_EXT_DIR} ${CMAKE_MODULE_PATH})
option (HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF)
if (HDF5_ENABLE_PARALLEL)
find_package(MPI REQUIRED)
@@ -480,13 +473,13 @@ if (HDF5_ENABLE_PARALLEL)
set (H5_HAVE_PARALLEL 1)
# MPI checks, only do these if MPI_C_FOUND is true, otherwise they always fail
# and once set, they are cached as false and not regenerated
- set (CMAKE_REQUIRED_LIBRARIES "${MPI_C_LIBRARIES}" )
+ set (CMAKE_REQUIRED_LIBRARIES "${MPI_C_LIBRARIES}")
+ set (CMAKE_REQUIRED_INCLUDES "${MPI_C_INCLUDE_DIRS}")
# Used by Fortran + MPI
CHECK_SYMBOL_EXISTS (MPI_Comm_c2f "${MPI_C_INCLUDE_DIRS}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Comm)
CHECK_SYMBOL_EXISTS (MPI_Info_c2f "${MPI_C_INCLUDE_DIRS}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Info)
- INCLUDE_DIRECTORIES (${MPI_C_INCLUDE_DIRS})
else ()
- message (STATUS "Parallel libraries not found")
+ message (FATAL_ERROR "Parallel libraries not found")
endif ()
endif ()
@@ -510,6 +503,16 @@ if (HDF5_USE_16_API_DEFAULT)
endif ()
#-----------------------------------------------------------------------------
+# Option to use 1.8.x API
+#-----------------------------------------------------------------------------
+option (HDF5_USE_18_API_DEFAULT "Use the HDF5 1.8.x API by default" ON)
+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 ()
+
+#-----------------------------------------------------------------------------
# Include user macros
#-----------------------------------------------------------------------------
include (UserMacros.cmake)
@@ -742,6 +745,9 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
message (STATUS " **** Allowing unsupported Parallel and C++ options **** ")
endif ()
endif ()
+
+ include (${HDF_RESOURCES_EXT_DIR}/HDFUseCXX.cmake)
+
if (CMAKE_NO_STD_NAMESPACE)
set (H5_NO_STD 1)
endif ()
@@ -760,7 +766,7 @@ endif ()
# being built then configure should fail due to bug HDFFV-889.
#-----------------------------------------------------------------------------
if (HDF5_BUILD_FORTRAN AND HDF5_BUILD_HL_LIB)
- if (NOT FORTRAN_DEFAULT_REAL_NOT_DOUBLE)
+ if (NOT H5_FORTRAN_DEFAULT_REAL_NOT_DOUBLE)
message (FATAL_ERROR " **** Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use HDF5_BUILD_HL_LIB:BOOL=OFF **** ")
endif ()
endif ()