summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2012-03-21 15:10:17 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2012-03-21 15:10:17 (GMT)
commiteb89d7b53ab95623ab454186a602e1cafc7391f0 (patch)
treeceafe458b3011e38853e765352d3c7e59bbecce1 /CMakeLists.txt
parent3e468e6ff65d540a439e99ea568a6bff7add7cea (diff)
downloadhdf5-eb89d7b53ab95623ab454186a602e1cafc7391f0.zip
hdf5-eb89d7b53ab95623ab454186a602e1cafc7391f0.tar.gz
hdf5-eb89d7b53ab95623ab454186a602e1cafc7391f0.tar.bz2
[svn-r22105] Description:
Bring r20557:22085 from trunk to this branch, also fixing some other issues/failures in the branch simultaneously. The h5repack tests are still failing, but Neil will be checking into those, so the branch can be fully functional again. Tested on: Mac OSX/64 10.7.3 (amazon) w/debug
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt286
1 files changed, 152 insertions, 134 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d17ec97..fe8a5f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8)
+cmake_minimum_required (VERSION 2.8.6)
PROJECT (HDF5 C CXX)
#-----------------------------------------------------------------------------
@@ -69,11 +69,21 @@ PROJECT (HDF5 C CXX)
# # Add the sub project
# ADD_SUBDIRECTORY(Utilities/hdf5-1.8)
#-----------------------------------------------------------------------------
-IF (BUILD_SHARED_LIBS)
- SET (BUILD_NAME_EXT "SHARED")
-ELSE (BUILD_SHARED_LIBS)
- SET (BUILD_NAME_EXT "STATIC")
-ENDIF (BUILD_SHARED_LIBS)
+
+#-----------------------------------------------------------------------------
+# Allow Visual Studio solution directories
+#-----------------------------------------------------------------------------
+# Provide a way for Visual Studio Express users to turn OFF the new FOLDER
+# organization feature. Default to ON for non-Express users. Express users must
+# explicitly turn off this option to build HDF5 in the Express IDE...
+#
+OPTION (HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." ON)
+MARK_AS_ADVANCED (HDF5_USE_FOLDERS)
+IF (HDF5_USE_FOLDERS)
+ SET_PROPERTY (GLOBAL PROPERTY USE_FOLDERS ON)
+ENDIF (HDF5_USE_FOLDERS)
+OPTION (HDF5_NO_PACKAGES "CPACK - Disable packaging" OFF)
+MARK_AS_ADVANCED (HDF5_NO_PACKAGES)
#-----------------------------------------------------------------------------
# Set the core names of all the libraries
@@ -163,6 +173,18 @@ STRING (REGEX REPLACE ".*#define[ \t]+H5_VERS_RELEASE[ \t]+([0-9]*).*$"
#MESSAGE (STATUS "VERSION: ${H5_VERS_MAJOR}.${H5_VERS_MINOR}.${H5_VERS_RELEASE}-${H5_VERS_SUBRELEASE}")
#-----------------------------------------------------------------------------
+# parse the full soversion number from config/lt_vers.am and include in H5_SOVERS_INFO
+#-----------------------------------------------------------------------------
+FILE (READ ${HDF5_SOURCE_DIR}/config/lt_vers.am _lt_vers_am_contents)
+STRING (REGEX REPLACE ".*LT_VERS_INTERFACE[ \t]+=[ \t]+([0-9]*).*$"
+ "\\1" H5_SOVERS_MAJOR ${_lt_vers_am_contents})
+STRING (REGEX REPLACE ".*LT_VERS_REVISION[ \t]+=[ \t]+([0-9]*).*$"
+ "\\1" H5_SOVERS_MINOR ${_lt_vers_am_contents})
+STRING (REGEX REPLACE ".*LT_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
+ "\\1" H5_SOVERS_RELEASE ${_lt_vers_am_contents})
+MESSAGE (STATUS "SOVERSION: ${H5_SOVERS_MAJOR}.${H5_SOVERS_MINOR}.${H5_SOVERS_RELEASE}")
+
+#-----------------------------------------------------------------------------
# Basic HDF5 stuff here
#-----------------------------------------------------------------------------
SET (HDF5_PACKAGE "hdf5")
@@ -171,6 +193,7 @@ 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}")
+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")
SET (HDF5_PACKAGE_URL "http://www.hdfgroup.org")
@@ -180,6 +203,7 @@ SET (HDF5_PACKAGE_BUGREPORT "help@hdfgroup.org")
# Include some macros for reusable code
#-----------------------------------------------------------------------------
INCLUDE (${HDF5_RESOURCES_DIR}/HDFMacros.cmake)
+INCLUDE (${HDF5_RESOURCES_DIR}/HDFLibMacros.cmake)
INCLUDE (${HDF5_RESOURCES_DIR}/HDF5Macros.cmake)
#-----------------------------------------------------------------------------
@@ -220,6 +244,9 @@ ENDIF (NOT HDF5_EXPORTED_TARGETS)
# which include hdf5 as a sub-project within their build tree
#-----------------------------------------------------------------------------
SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "")
+SET (EXTERNAL_HEADER_LIST "")
+SET (EXTERNAL_LIBRARY_LIST "")
+SET (EXTERNAL_LIBRARYDLL_LIST "")
#-----------------------------------------------------------------------------
# Run all the CMake configuration tests for our build environment
@@ -227,22 +254,19 @@ SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "")
INCLUDE (${HDF5_RESOURCES_DIR}/ConfigureChecks.cmake)
#-----------------------------------------------------------------------------
-# Option to use legacy naming for windows libs/programs, default is legacy
-#-----------------------------------------------------------------------------
-IF (WIN32 AND NOT CYGWIN)
- OPTION (HDF_LEGACY_NAMING "Use Legacy Names for Libraries and Programs" OFF)
-ENDIF (WIN32 AND NOT CYGWIN)
-
-#-----------------------------------------------------------------------------
# Option to Build Shared/Static libs, default is static
#-----------------------------------------------------------------------------
OPTION (BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
SET (LIB_TYPE STATIC)
+SET (H5_ENABLE_SHARED_LIB NO)
+SET (H5_ENABLE_STATIC_LIB NO)
IF (BUILD_SHARED_LIBS)
SET (LIB_TYPE SHARED)
SET (H5_BUILT_AS_DYNAMIC_LIB 1)
+ SET (H5_ENABLE_SHARED_LIB YES)
ELSE (BUILD_SHARED_LIBS)
SET (H5_BUILT_AS_STATIC_LIB 1)
+ SET (H5_ENABLE_STATIC_LIB YES)
IF (NOT WIN32)
# should this be a user setting : Everyone uses it anyway ?
ADD_DEFINITIONS (-DPIC)
@@ -349,8 +373,27 @@ ENDIF (CMAKE_BUILD_TYPE MATCHES Debug)
# Compiler specific flags : Shouldn't there be compiler tests for these
#-----------------------------------------------------------------------------
IF (CMAKE_COMPILER_IS_GNUCC)
- SET (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -fomit-frame-pointer -finline-functions -fno-common")
+ IF (CMAKE_BUILD_TYPE MATCHES Debug)
+ SET (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -finline-functions -fno-common")
+ ELSE (CMAKE_BUILD_TYPE MATCHES Debug)
+ SET (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -fomit-frame-pointer -finline-functions -fno-common")
+ ENDIF (CMAKE_BUILD_TYPE MATCHES Debug)
ENDIF (CMAKE_COMPILER_IS_GNUCC)
+IF (CMAKE_COMPILER_IS_GNUCXX)
+ IF (CMAKE_BUILD_TYPE MATCHES Debug)
+ SET (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -finline-functions -fno-common")
+ ELSE (CMAKE_BUILD_TYPE MATCHES Debug)
+ SET (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -fomit-frame-pointer -finline-functions -fno-common")
+ ENDIF (CMAKE_BUILD_TYPE MATCHES Debug)
+ENDIF (CMAKE_COMPILER_IS_GNUCXX)
+
+#-----------------------------------------------------------------------------
+# Option to embed library info into executables
+#-----------------------------------------------------------------------------
+OPTION (HDF5_ENABLE_EMBEDDED_LIBINFO "embed library info into executables" ON)
+IF (HDF5_ENABLE_EMBEDDED_LIBINFO)
+ SET (H5_HAVE_EMBEDDED_LIBINFO 1)
+ENDIF (HDF5_ENABLE_EMBEDDED_LIBINFO)
#-----------------------------------------------------------------------------
# Option to allow the user to disable compiler warnings
@@ -361,9 +404,10 @@ IF (HDF5_DISABLE_COMPILER_WARNINGS)
# warning level is given, so remove it.
IF (MSVC)
SET (HDF5_WARNINGS_BLOCKED 1)
- STRING (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " "
- CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ STRING (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w")
+ STRING (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w")
ENDIF (MSVC)
IF (WIN32 AND NOT CYGWIN)
ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS)
@@ -377,6 +421,7 @@ IF (HDF5_DISABLE_COMPILER_WARNINGS)
# Most compilers use -w to suppress warnings.
IF (NOT HDF5_WARNINGS_BLOCKED)
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
+ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
ENDIF (NOT HDF5_WARNINGS_BLOCKED)
ENDIF (HDF5_DISABLE_COMPILER_WARNINGS)
@@ -403,28 +448,25 @@ SET (CMAKE_MODULE_PATH ${HDF5_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
OPTION (HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF)
IF (HDF5_ENABLE_PARALLEL)
INCLUDE (FindMPI)
- INCLUDE_DIRECTORIES (${MPI_INCLUDE_PATH})
- IF (MPI_FOUND)
+ INCLUDE_DIRECTORIES (${MPI_C_INCLUDE_PATH})
+ IF (MPI_C_FOUND)
SET (H5_HAVE_PARALLEL 1)
- # MPI checks, only do these if MPI_FOUND is true, otherwise they always fail
+ # 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_LIBRARY};${MPI_EXTRA_LIBRARY}" )
+ SET (CMAKE_REQUIRED_LIBRARIES "${MPI_C_LIBRARIES}" )
CHECK_FUNCTION_EXISTS (MPI_File_get_size H5_HAVE_MPI_GET_SIZE)
# Used by Fortran + MPI
- CHECK_SYMBOL_EXISTS (MPI_Comm_c2f "${MPI_INCLUDE_PATH}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Comm)
- CHECK_SYMBOL_EXISTS (MPI_Info_c2f "${MPI_INCLUDE_PATH}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Info)
- ENDIF (MPI_FOUND)
+ 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)
+ ENDIF (MPI_C_FOUND)
ENDIF (HDF5_ENABLE_PARALLEL)
# Parallel IO usage requires MPI to be Linked and Included
IF (H5_HAVE_PARALLEL)
- SET (LINK_LIBS ${LINK_LIBS} ${MPI_LIBRARY})
- IF (MPI_LINK_FLAGS)
- SET (CMAKE_EXE_LINKER_FLAGS ${MPI_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS})
- ENDIF (MPI_LINK_FLAGS)
- IF (MPI_EXTRA_LIBRARY)
- SET (LINK_LIBS ${LINK_LIBS} ${MPI_EXTRA_LIBRARY})
- ENDIF (MPI_EXTRA_LIBRARY)
+ SET (LINK_LIBS ${LINK_LIBS} ${MPI_C_LIBRARIES})
+ IF (MPI_C_LINK_FLAGS)
+ SET (CMAKE_EXE_LINKER_FLAGS ${MPI_C_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS})
+ ENDIF (MPI_C_LINK_FLAGS)
ENDIF (H5_HAVE_PARALLEL)
#-----------------------------------------------------------------------------
@@ -437,12 +479,22 @@ IF (HDF5_USE_16_API_DEFAULT)
ENDIF (HDF5_USE_16_API_DEFAULT)
#-----------------------------------------------------------------------------
+# Option to use 1.8.x API
+#-----------------------------------------------------------------------------
+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)
+ENDIF (HDF5_USE_18_API_DEFAULT)
+
+#-----------------------------------------------------------------------------
# Options for HDF5 Filters
#-----------------------------------------------------------------------------
MACRO (HDF5_SETUP_FILTERS FILTER)
OPTION (HDF5_USE_FILTER_${FILTER} "Use the ${FILTER} Filter" ON)
IF (HDF5_USE_FILTER_${FILTER})
SET (H5_HAVE_FILTER_${FILTER} 1)
+ SET (FILTERS "${FILTERS} ${FILTER}")
ENDIF (HDF5_USE_FILTER_${FILTER})
# MESSAGE (STATUS "Filter ${FILTER} is ${HDF5_USE_FILTER_${FILTER}}")
ENDMACRO (HDF5_SETUP_FILTERS)
@@ -503,6 +555,9 @@ IF (HDF5_ENABLE_Z_LIB_SUPPORT)
SET (H5_HAVE_ZLIB_H 1)
SET (H5_HAVE_LIBZ 1)
ENDIF (NOT H5_ZLIB_HEADER)
+ IF (H5_HAVE_FILTER_DEFLATE)
+ SET (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} DEFLATE")
+ ENDIF (H5_HAVE_FILTER_DEFLATE)
SET (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES})
INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS})
MESSAGE (STATUS "Filter ZLIB is ON")
@@ -511,7 +566,6 @@ ENDIF (HDF5_ENABLE_Z_LIB_SUPPORT)
#-----------------------------------------------------------------------------
# Option for SzLib support
#-----------------------------------------------------------------------------
-SET (CMAKE_MODULE_PATH ${HDF5_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
OPTION (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF)
IF (HDF5_ENABLE_SZIP_SUPPORT)
OPTION (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF)
@@ -537,8 +591,12 @@ IF (HDF5_ENABLE_SZIP_SUPPORT)
SET (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES})
INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIRS})
MESSAGE (STATUS "Filter SZIP is ON")
+ IF (H5_HAVE_FILTER_SZIP)
+ SET (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} DECODE")
+ ENDIF (H5_HAVE_FILTER_SZIP)
IF (HDF5_ENABLE_SZIP_ENCODING)
SET (H5_HAVE_SZIP_ENCODER 1)
+ SET (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} ENCODE")
ENDIF (HDF5_ENABLE_SZIP_ENCODING)
ENDIF (HDF5_ENABLE_SZIP_SUPPORT)
@@ -548,53 +606,15 @@ ENDIF (HDF5_ENABLE_SZIP_SUPPORT)
OPTION (HDF5_PACKAGE_EXTLIBS "CPACK - include external libraries" OFF)
IF (NOT HDF5_EXTERNALLY_CONFIGURED)
IF (HDF5_PACKAGE_EXTLIBS)
- SET (EXTERNAL_HEADER_LIST "")
- SET (EXTERNAL_LIBRARY_LIST "")
- SET (EXTERNAL_LIBRARYDLL_LIST "")
- FILE (MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BLDTYPE})
-
+ SET (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
IF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
- PACKAGE_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
+ PACKAGE_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
ENDIF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
IF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
- PACKAGE_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
+ PACKAGE_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
ENDIF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
ENDIF (HDF5_PACKAGE_EXTLIBS)
-
- IF (WIN32 AND NOT CYGWIN)
- IF (BUILD_SHARED_LIBS)
- FILE (MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BLDTYPE})
- IF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
- GET_FILENAME_COMPONENT(ZLIB_DLL_NAME ${ZLIB_LIBRARY} NAME_WE)
- # MESSAGE (STATUS "ZLIB_DLL_NAME: ${ZLIB_DLL_NAME}")
- GET_FILENAME_COMPONENT(ZLIB_BIN_PATH ${ZLIB_LIBRARY} PATH)
- # MESSAGE (STATUS "ZLIB_BIN_PATH: ${ZLIB_BIN_PATH}")
- ADD_CUSTOM_TARGET (ZLIB-Release-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/
- COMMENT "Copying ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/"
- )
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ADD_DEPENDENCIES (ZLIB-Release-Copy ZLIB)
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ENDIF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
-
- IF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
- GET_FILENAME_COMPONENT(SZIP_DLL_NAME ${SZIP_LIBRARY} NAME_WE)
- # MESSAGE (STATUS "SZIP_DLL_NAME: ${SZIP_DLL_NAME}")
- GET_FILENAME_COMPONENT(SZIP_BIN_PATH ${SZIP_LIBRARY} PATH)
- # MESSAGE (STATUS "SZIP_BIN_PATH: ${SZIP_BIN_PATH}")
- ADD_CUSTOM_TARGET (SZIP-Release-Copy ALL
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/
- COMMENT "Copying ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/"
- )
- IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ADD_DEPENDENCIES (SZIP-Release-Copy SZIP)
- ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
- ENDIF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
-
- ENDIF (BUILD_SHARED_LIBS)
- ENDIF (WIN32 AND NOT CYGWIN)
ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
@@ -609,21 +629,19 @@ IF (WIN32 AND NOT CYGWIN)
MESSAGE (FATAL " **** Parallel and Threadsafe options are mutually exclusive **** ")
ENDIF (HDF5_ENABLE_PARALLEL)
SET (H5_HAVE_THREADSAFE 1)
- SET (H5_HAVE_WIN_THREADS 1)
- MESSAGE (STATUS " **** Windows Threads only available in WINVER>=0x600 (Vista or Windows 7)**** ")
+ IF (H5_HAVE_IOEO)
+ MESSAGE (STATUS " **** Windows Threads only available in WINVER>=0x600 (Vista or Windows 7) **** ")
+ SET (H5_HAVE_WIN_THREADS 1)
+ ELSE (H5_HAVE_IOEO)
+ IF (NOT H5_HAVE_PTHREAD_H)
+ SET (H5_HAVE_THREADSAFE 0)
+ MESSAGE (FATAL " **** Threadsafe option requires thread library **** ")
+ ENDIF (NOT H5_HAVE_PTHREAD_H)
+ ENDIF (H5_HAVE_IOEO)
ENDIF (HDF5_ENABLE_THREADSAFE)
ENDIF (WIN32 AND NOT CYGWIN)
#-----------------------------------------------------------------------------
-# Option to use PACKED BITS SUPPORT
-#-----------------------------------------------------------------------------
-OPTION (HDF5_USE_H5DUMP_PACKED_BITS "Use the PACKED BITS feature in h5dump" OFF)
-SET (H5_HAVE_H5DUMP_PACKED_BITS 0)
-IF (HDF5_USE_H5DUMP_PACKED_BITS)
- SET (H5_HAVE_H5DUMP_PACKED_BITS 1)
-ENDIF (HDF5_USE_H5DUMP_PACKED_BITS)
-
-#-----------------------------------------------------------------------------
# Add the HDF5 Library Target to the build
#-----------------------------------------------------------------------------
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src)
@@ -693,6 +711,7 @@ SET (H5_FC_FUNC_ "H5_FC_FUNC_(name,NAME) name ## _")
IF (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/fortran")
OPTION (HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF)
IF (HDF5_BUILD_FORTRAN)
+ OPTION (HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" OFF)
INCLUDE (${HDF5_RESOURCES_DIR}/HDF5UseFortran.cmake)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/fortran ${PROJECT_BINARY_DIR}/fortran)
IF (HDF5_BUILD_HL_LIB)
@@ -766,52 +785,14 @@ IF (NOT HDF5_INSTALL_NO_DEVELOPMENT)
ENDIF (NOT HDF5_INSTALL_NO_DEVELOPMENT)
#-----------------------------------------------------------------------------
-# Option for external libraries
-#-----------------------------------------------------------------------------
-IF (NOT HDF5_EXTERNALLY_CONFIGURED)
- IF (HDF5_PACKAGE_EXTLIBS)
- IF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
- INSTALL (
- FILES ${ZLIB_INCLUDE_DIR}/zlib.h
- DESTINATION ${HDF5_INSTALL_INCLUDE_DIR}
- COMPONENT headers
- )
- ENDIF (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
- IF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
- INSTALL (
- FILES ${SZIP_INCLUDE_DIR}/szlib.h ${SZIP_INCLUDE_DIR}/szip_adpt.h ${SZIP_INCLUDE_DIR}/ricehdf.h
- DESTINATION ${HDF5_INSTALL_INCLUDE_DIR}
- COMPONENT headers
- )
- ENDIF (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
- INSTALL (
- FILES ${EXTERNAL_HEADER_LIST}
- DESTINATION ${HDF5_INSTALL_INCLUDE_DIR}
- COMPONENT headers
- )
- INSTALL(
- FILES ${EXTERNAL_LIBRARY_LIST}
- DESTINATION ${HDF5_INSTALL_LIB_DIR}
- COMPONENT libraries
- )
- IF (WIN32 AND BUILD_SHARED_LIBS)
- INSTALL(
- FILES ${EXTERNAL_LIBRARYDLL_LIST}
- DESTINATION ${HDF5_INSTALL_BIN_DIR}
- COMPONENT libraries
- )
- ENDIF (WIN32 AND BUILD_SHARED_LIBS)
- ENDIF (HDF5_PACKAGE_EXTLIBS)
-ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
-
-#-----------------------------------------------------------------------------
# Add Target(s) to CMake Install for import into other projects
#-----------------------------------------------------------------------------
IF (NOT HDF5_EXTERNALLY_CONFIGURED)
INSTALL (
EXPORT ${HDF5_EXPORTED_TARGETS}
- DESTINATION ${HDF5_INSTALL_DATA_DIR}/cmake/hdf5-${HDF5_PACKAGE_VERSION}
+ DESTINATION ${HDF5_INSTALL_DATA_DIR}/cmake/hdf5
FILE hdf5-targets.cmake
+ COMPONENT configinstall
)
ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
@@ -851,7 +832,8 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
)
INSTALL (
FILES ${HDF5_BINARY_DIR}/CMakeFiles/hdf5-config.cmake
- DESTINATION ${HDF5_INSTALL_DATA_DIR}/cmake/hdf5-${HDF5_PACKAGE_VERSION}
+ DESTINATION ${HDF5_INSTALL_DATA_DIR}/cmake/hdf5
+ COMPONENT configinstall
)
ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
@@ -865,11 +847,25 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
)
INSTALL (
FILES ${HDF5_BINARY_DIR}/CMakeFiles/hdf5-config-version.cmake
- DESTINATION ${HDF5_INSTALL_DATA_DIR}/cmake/hdf5-${HDF5_PACKAGE_VERSION}
+ DESTINATION ${HDF5_INSTALL_DATA_DIR}/cmake/hdf5
+ COMPONENT configinstall
)
ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
+# Configure the libhdf5.settings file for the lib info
+#-----------------------------------------------------------------------------
+IF (H5_WORDS_BIGENDIAN)
+ SET (BYTESEX big-endian)
+ELSE (H5_WORDS_BIGENDIAN)
+ SET (BYTESEX little-endian)
+ENDIF (H5_WORDS_BIGENDIAN)
+CONFIGURE_FILE (
+ ${HDF5_RESOURCES_DIR}/libhdf5.settings.cmake.in
+ ${HDF5_BINARY_DIR}/libhdf5.settings @ONLY
+)
+
+#-----------------------------------------------------------------------------
# Add Document File(s) to CMake Install
#-----------------------------------------------------------------------------
IF (NOT HDF5_EXTERNALLY_CONFIGURED)
@@ -884,6 +880,7 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
IF (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs")
SET (release_files
${HDF5_SOURCE_DIR}/release_docs/CMake.txt
+ ${HDF5_SOURCE_DIR}/release_docs/Using_CMake.txt
${HDF5_SOURCE_DIR}/release_docs/COPYING
${HDF5_SOURCE_DIR}/release_docs/HISTORY-1_9.txt
${HDF5_SOURCE_DIR}/release_docs/INSTALL
@@ -898,14 +895,13 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
SET (release_files
${release_files}
${HDF5_SOURCE_DIR}/release_docs/INSTALL_Cygwin.txt
- ${HDF5_SOURCE_DIR}/release_docs/INSTALL_MinGW.txt
${HDF5_SOURCE_DIR}/release_docs/INSTALL_VMS.txt
)
ENDIF (WIN32 AND NOT CYGWIN)
IF (HDF5_ENABLE_PARALLEL)
SET (release_files
${release_files}
- ${HDF5_SOURCE_DIR}/release_docs/INSTALL_parallel.txt
+ ${HDF5_SOURCE_DIR}/release_docs/INSTALL_parallel
)
ENDIF (HDF5_ENABLE_PARALLEL)
INSTALL (
@@ -919,10 +915,10 @@ ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
# Set the cpack variables
#-----------------------------------------------------------------------------
-IF (NOT HDF5_EXTERNALLY_CONFIGURED)
- SET (CPACK_PACKAGE_VENDOR "The HDF Group")
+IF (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
+ SET (CPACK_PACKAGE_VENDOR "HDF Group")
SET (CPACK_PACKAGE_NAME "${HDF5_PACKAGE_NAME}")
- SET (CPACK_PACKAGE_INSTALL_DIRECTORY "HDFGroup/${HDF5_PACKAGE_NAME}")
+ SET (CPACK_PACKAGE_INSTALL_DIRECTORY "${HDF5_PACKAGE_NAME}")
SET (CPACK_PACKAGE_VERSION "${HDF5_PACKAGE_VERSION}")
SET (CPACK_PACKAGE_VERSION_MAJOR "${HDF5_PACKAGE_VERSION_MAJOR}")
SET (CPACK_PACKAGE_VERSION_MINOR "${HDF5_PACKAGE_VERSION_MINOR}")
@@ -933,8 +929,6 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
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)
- #only needed for cmake 2.8.3
- SET (CPACK_MONOLITHIC_INSTALL 1)
IF (WIN32)
SET (CPACK_NSIS_CONTACT "help@hdfgroup.org")
SET (CPACK_NSIS_MODIFY_PATH ON)
@@ -942,10 +936,29 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
ELSE (WIN32)
SET (CPACK_RPM_COMPONENT_INSTALL ON)
ENDIF (WIN32)
+ SET (CPACK_MONOLITHIC_INSTALL ON)
- INCLUDE (CPack)
INCLUDE(InstallRequiredSystemLibraries)
+ SET (CPACK_INSTALL_CMAKE_PROJECTS "${HDF5_BINARY_DIR};HDF5;ALL;/")
+
+ IF (HDF5_PACKAGE_EXTLIBS)
+ IF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ IF (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
+ SET (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/")
+ SET (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/")
+ SET (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/")
+ ENDIF (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
+ IF (SZIP_FOUND AND SZIP_USE_EXTERNAL)
+ SET (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/")
+ SET (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/")
+ SET (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/")
+ ENDIF (SZIP_FOUND AND SZIP_USE_EXTERNAL)
+ ENDIF (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ ENDIF (HDF5_PACKAGE_EXTLIBS)
+
+ INCLUDE (CPack)
+
#---------------------------------------------------------------------------
# Now list the cpack commands
#---------------------------------------------------------------------------
@@ -967,6 +980,11 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
DISPLAY_NAME "HDF5 Documents"
GROUP Documents
)
+ CPACK_ADD_COMPONENT (configinstall
+ DISPLAY_NAME "HDF5 CMake files"
+ DEPENDS libraries
+ GROUP Development
+ )
IF (HDF5_BUILD_FORTRAN)
CPACK_ADD_COMPONENT (fortlibraries
@@ -1045,4 +1063,4 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED)
)
ENDIF (HDF5_BUILD_HL_LIB)
-ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
+ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)