diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2018-10-02 21:16:34 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2018-10-02 21:17:10 (GMT) |
commit | 8c26358eca11455235df239a7e9f3a225b3141da (patch) | |
tree | f9ae4061b519ae7c516830a59a92faba93f9f006 /CMakeLists.txt | |
parent | 66ef37d0d8030f38c924374facc49f6af6f6ddd5 (diff) | |
download | hdf5-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.txt | 56 |
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 () |