mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r18996] Updated config files and install commands per external developers recommendations.
Tested: local linux
This commit is contained in:
parent
4e4c5d3e0f
commit
15193c18b4
@ -197,7 +197,6 @@ SET (LIB_TYPE STATIC)
|
||||
IF (BUILD_SHARED_LIBS)
|
||||
SET (LIB_TYPE SHARED)
|
||||
SET (H5_BUILT_AS_DYNAMIC_LIB 1)
|
||||
SET (LIBPOSTFIX "")
|
||||
IF (MSVC)
|
||||
SET (CMAKE_MFC_FLAG 0)
|
||||
FOREACH (flag_var
|
||||
@ -215,7 +214,6 @@ ELSE (BUILD_SHARED_LIBS)
|
||||
# should this be a user setting : Everyone uses it anyway ?
|
||||
ADD_DEFINITIONS(-DPIC)
|
||||
ENDIF (NOT WIN32)
|
||||
SET (LIBPOSTFIX "")
|
||||
IF (MSVC)
|
||||
SET (CMAKE_MFC_FLAG 0)
|
||||
FOREACH (flag_var
|
||||
@ -233,28 +231,18 @@ ENDIF (BUILD_SHARED_LIBS)
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the target names of all the libraries
|
||||
#-----------------------------------------------------------------------------
|
||||
SET (HDF5_LIB_TARGET ${HDF5_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_TEST_LIB_TARGET ${HDF5_TEST_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_CPP_LIB_TARGET ${HDF5_CPP_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_HL_LIB_TARGET ${HDF5_HL_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_HL_CPP_LIB_TARGET ${HDF5_HL_CPP_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_TOOLS_LIB_TARGET ${HDF5_TOOLS_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_F90_LIB_TARGET ${HDF5_F90_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_F90_C_LIB_TARGET ${HDF5_F90_C_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_F90_TEST_LIB_TARGET ${HDF5_F90_TEST_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_F90_C_TEST_LIB_TARGET ${HDF5_F90_C_TEST_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_HL_F90_LIB_TARGET ${HDF5_HL_F90_LIB_NAME}${LIBPOSTFIX})
|
||||
SET (HDF5_HL_F90_C_LIB_TARGET ${HDF5_HL_F90_C_LIB_NAME}${LIBPOSTFIX})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Include the main src and config directories
|
||||
#-----------------------------------------------------------------------------
|
||||
SET (HDF5_INCLUDE_DIRECTORIES
|
||||
${HDF5_SRC_DIR}
|
||||
${HDF5_SOURCE_DIR}
|
||||
${HDF5_BINARY_DIR}
|
||||
)
|
||||
INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRECTORIES})
|
||||
SET (HDF5_LIB_TARGET ${HDF5_LIB_CORENAME})
|
||||
SET (HDF5_TEST_LIB_TARGET ${HDF5_TEST_LIB_CORENAME})
|
||||
SET (HDF5_CPP_LIB_TARGET ${HDF5_CPP_LIB_CORENAME})
|
||||
SET (HDF5_HL_LIB_TARGET ${HDF5_HL_LIB_CORENAME})
|
||||
SET (HDF5_HL_CPP_LIB_TARGET ${HDF5_HL_CPP_LIB_CORENAME})
|
||||
SET (HDF5_TOOLS_LIB_TARGET ${HDF5_TOOLS_LIB_CORENAME})
|
||||
SET (HDF5_F90_LIB_TARGET ${HDF5_F90_LIB_CORENAME})
|
||||
SET (HDF5_F90_C_LIB_TARGET ${HDF5_F90_C_LIB_CORENAME})
|
||||
SET (HDF5_F90_TEST_LIB_TARGET ${HDF5_F90_TEST_LIB_CORENAME})
|
||||
SET (HDF5_F90_C_TEST_LIB_TARGET ${HDF5_F90_C_TEST_LIB_CORENAME})
|
||||
SET (HDF5_HL_F90_LIB_TARGET ${HDF5_HL_F90_LIB_CORENAME})
|
||||
SET (HDF5_HL_F90_C_LIB_TARGET ${HDF5_HL_F90_C_LIB_CORENAME})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# When building utility executables that generate other (source) files :
|
||||
@ -301,9 +289,9 @@ ENDIF (CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
#-----------------------------------------------------------------------------
|
||||
# Compiler specific flags : Shouldn't there be compiler tests for these
|
||||
#-----------------------------------------------------------------------------
|
||||
IF (NOT WIN32)
|
||||
IF (CMAKE_COMPILER_IS_GNUCC)
|
||||
SET (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -fomit-frame-pointer -finline-functions -fno-common")
|
||||
ENDIF (NOT WIN32)
|
||||
ENDIF (CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Option to allow the user to disable compiler warnings
|
||||
@ -344,6 +332,11 @@ IF (CMAKE_COMPILER_IS_GNUCXX)
|
||||
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0")
|
||||
ENDIF (CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# All libs/tests/examples need the main include directories
|
||||
#-----------------------------------------------------------------------------
|
||||
INCLUDE_DIRECTORIES (${HDF5_BINARY_DIR} ${HDF5_SRC_DIR})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Option to Enable MPI Parallel
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -566,7 +559,7 @@ INSTALL (
|
||||
DESTINATION
|
||||
lib
|
||||
FILE
|
||||
HDF5-config.cmake
|
||||
HDF5-targets.cmake
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -576,7 +569,36 @@ EXPORT (
|
||||
TARGETS
|
||||
${HDF5_LIBRARIES_TO_EXPORT} ${HDF5_LIB_DEPENDENCIES}
|
||||
FILE
|
||||
HDF5-config.cmake
|
||||
HDF5-targets.cmake
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure the HDF5-config.cmake file for the build directory
|
||||
#-----------------------------------------------------------------------------
|
||||
SET (HDF5_INCLUDES_BUILD_TIME
|
||||
${HDF5_SRC_DIR} ${HDF5_CPP_SOURCE_DIR} ${HDF5_HL_SOURCE_DIR}
|
||||
${HDF5_TOOLS_SOURCE_DIR} ${HDF5_BINARY_DIR}
|
||||
)
|
||||
SET (HDF5_VERSION_STRING @HDF5_PACKAGE_VERSION@)
|
||||
SET (HDF5_VERSION_MAJOR @HDF5_PACKAGE_VERSION_MAJOR@)
|
||||
SET (HDF5_VERSION_MINOR @HDF5_PACKAGE_VERSION_MINOR@)
|
||||
|
||||
CONFIGURE_FILE (
|
||||
${HDF5_SOURCE_DIR}/Resources/HDF5-config.cmake.build.in
|
||||
${HDF5_BINARY_DIR}/HDF5-config.cmake @ONLY
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure the HDF5-config.cmake file for the install directory
|
||||
#-----------------------------------------------------------------------------
|
||||
INSTALL (CODE
|
||||
"SET (HDF5_INSTALL_SKIP_TARGETS 1)
|
||||
INCLUDE (${HDF5_BINARY_DIR}/HDF5-config.cmake)
|
||||
CONFIGURE_FILE (
|
||||
\"${HDF5_SOURCE_DIR}/Resources/HDF5-config.cmake.install.in\"
|
||||
\"${CMAKE_INSTALL_PREFIX}/lib/HDF5-config.cmake\" @ONLY
|
||||
)
|
||||
"
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
56
Resources/FindHDF5.cmake
Normal file
56
Resources/FindHDF5.cmake
Normal file
@ -0,0 +1,56 @@
|
||||
#
|
||||
# To be used by projects that make use of Cmakeified hdf5-1.8
|
||||
#
|
||||
|
||||
#
|
||||
# Find the HDF5 includes and get all installed hdf5 library settings from
|
||||
# HDF5-config.cmake file : Requires a CMake compatible hdf5-1.8.5 or later
|
||||
# for this feature to work. The following vars are set if hdf5 is found.
|
||||
#
|
||||
# HDF5_FOUND - True if found, otherwise all other vars are undefined
|
||||
# HDF5_INCLUDE_DIR - The include dir for main *.h files
|
||||
# HDF5_FORTRAN_INCLUDE_DIR - The include dir for fortran modules and headers
|
||||
# HDF5_VERSION_STRING - full version (e.g. 1.8.5)
|
||||
# HDF5_VERSION_MAJOR - major part of version (e.g. 1.8)
|
||||
# HDF5_VERSION_MINOR - minor part (e.g. 5)
|
||||
#
|
||||
# The following boolean vars will be defined
|
||||
# HDF5_ENABLE_PARALLEL - 1 if HDF5 parallel supported
|
||||
# HDF5_BUILD_FORTRAN - 1 if HDF5 was compiled with fortran on
|
||||
# HDF5_BUILD_CPP_LIB - 1 if HDF5 was compiled with cpp on
|
||||
# HDF5_BUILD_TOOLS - 1 if HDF5 was compiled with tools on
|
||||
# HDF5_BUILD_HL_LIB - 1 if HDF5 was compiled with parallel on
|
||||
#
|
||||
# Target names that are valid (depending on enabled options)
|
||||
# will be the following
|
||||
#
|
||||
# hdf5 : HDF5 C library
|
||||
# hdf5_tools : the tools library
|
||||
# hdf5_f90cstub : used by Fortran to C interface
|
||||
# hdf5_fortran : Fortran HDF5 library
|
||||
# hdf5_cpp : HDF5 cpp interface library
|
||||
# hdf5_hl : High Level library
|
||||
# hdf5_hl_f90cstub : used by Fortran to C interface to High Level library
|
||||
# hdf5_hl_fortran : Fortran High Level library
|
||||
# hdf5_hl_cpp : High Level cpp interface library
|
||||
#
|
||||
# To aid in finding HDF5 as part of a subproject set
|
||||
# HDF5_ROOT_DIR_HINT to the location where HDF5-config.cmake lies
|
||||
|
||||
FIND_PATH (HDF5_ROOT_DIR "HDF5-config.cmake"
|
||||
${HDF5_ROOT_DIR_HINT}
|
||||
/usr/local/lib
|
||||
/usr/local/lib64
|
||||
/usr/lib
|
||||
/usr/lib64
|
||||
"C:/Program Files/HDF5/lib"
|
||||
)
|
||||
|
||||
FIND_PATH (HDF5_INCLUDE_DIR "H5public.h"
|
||||
${HDF5_ROOT_DIR}/../include
|
||||
)
|
||||
|
||||
IF (HDF5_INCLUDE_DIR)
|
||||
SET (HDF5_FOUND "YES")
|
||||
INCLUDE (${HDF5_ROOT_DIR}/HDF5-config.cmake)
|
||||
ENDIF (HDF5_INCLUDE_DIR)
|
42
Resources/HDF5-config.cmake.build.in
Normal file
42
Resources/HDF5-config.cmake.build.in
Normal file
@ -0,0 +1,42 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# HDF5 Config file for compiling against hdf5 build directory
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
SET (HDF5_INCLUDE_DIRS "@HDF5_INCLUDES_BUILD_TIME@")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Don't include targets if this file is being picked up by another
|
||||
# project which has already build hdf5 as a subproject
|
||||
#-----------------------------------------------------------------------------
|
||||
IF (NOT TARGET "hdf5" AND NOT HDF5_INSTALL_SKIP_TARGETS)
|
||||
GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
INCLUDE (${SELF_DIR}/HDF5-targets.cmake)
|
||||
ENDIF (NOT TARGET "hdf5" AND NOT HDF5_INSTALL_SKIP_TARGETS)
|
||||
|
||||
SET (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
|
||||
SET (HDF5_VERSION_MAJOR @HDF5_VERSION_MAJOR@)
|
||||
SET (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@)
|
||||
|
||||
SET (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
|
||||
SET (HDF5_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@)
|
||||
SET (HDF5_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@)
|
||||
SET (HDF5_BUILD_TOOLS @HDF5_BUILD_TOOLS@)
|
||||
SET (HDF5_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@)
|
||||
|
||||
#
|
||||
# To be continued ...
|
||||
#
|
||||
# XXX_INCLUDE_DIRS The final set of include directories listed in one variable for use by client code. This should not be a cache entry.
|
||||
# XXX_LIBRARIES The libraries to link against to use XXX. These should include full paths. This should not be a cache entry.
|
||||
# XXX_DEFINITIONS Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG)that a client source-code file uses to decide whether to #include <jpeg.h>
|
||||
# XXX_EXECUTABLE Where to find the XXX tool.
|
||||
# XXX_YYY_EXECUTABLE Where to find the YYY tool that comes with XXX.
|
||||
# XXX_LIBRARY_DIRS Optionally, the final set of library directories listed in one variable for use by client code. This should not be a cache entry.
|
||||
# XXX_ROOT_DIR Where to find the base directory of XXX.
|
||||
# XXX_VERSION_YY Expect Version YY if true. Make sure at most one of these is ever true.
|
||||
# XXX_WRAP_YY If False, do not try to use the relevent CMake wrapping command.
|
||||
# XXX_YY_FOUND If False, optional YY part of XXX sytem is not available.
|
||||
# XXX_FOUND Set to false, or undefined, if we haven't found, or don't want to use XXX.
|
||||
# XXX_RUNTIME_LIBRARY_DIRS Optionally, the runtime library search path for use when running an executable linked to shared libraries.
|
||||
# The list should be used by user code to create the PATH on windows or LD_LIBRARY_PATH on unix.
|
||||
# This should not be a cache entry.
|
43
Resources/HDF5-config.cmake.install.in
Normal file
43
Resources/HDF5-config.cmake.install.in
Normal file
@ -0,0 +1,43 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# HDF5 Config file for compiling against hdf5 install directory
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
GET_FILENAME_COMPONENT (HDF5_INCLUDE_DIRS "${SELF_DIR}/../include" ABSOLUTE)
|
||||
SET (HDF5_FORTRAN_DIR ${HDF5_INCLUDE_DIRS}/fortran)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Don't include targets if this file is being picked up by another
|
||||
# project which has already build hdf5 as a subproject
|
||||
#-----------------------------------------------------------------------------
|
||||
IF (NOT TARGET "hdf5")
|
||||
INCLUDE (${SELF_DIR}/HDF5-targets.cmake)
|
||||
ENDIF (NOT TARGET "hdf5")
|
||||
|
||||
SET (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
|
||||
SET (HDF5_VERSION_MAJOR @HDF5_VERSION_MAJOR@)
|
||||
SET (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@)
|
||||
|
||||
SET (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
|
||||
SET (HDF5_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@)
|
||||
SET (HDF5_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@)
|
||||
SET (HDF5_BUILD_TOOLS @HDF5_BUILD_TOOLS@)
|
||||
SET (HDF5_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@)
|
||||
|
||||
#
|
||||
# To be continued ...
|
||||
#
|
||||
# XXX_INCLUDE_DIRS The final set of include directories listed in one variable for use by client code. This should not be a cache entry.
|
||||
# XXX_LIBRARIES The libraries to link against to use XXX. These should include full paths. This should not be a cache entry.
|
||||
# XXX_DEFINITIONS Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG)that a client source-code file uses to decide whether to #include <jpeg.h>
|
||||
# XXX_EXECUTABLE Where to find the XXX tool.
|
||||
# XXX_YYY_EXECUTABLE Where to find the YYY tool that comes with XXX.
|
||||
# XXX_LIBRARY_DIRS Optionally, the final set of library directories listed in one variable for use by client code. This should not be a cache entry.
|
||||
# XXX_ROOT_DIR Where to find the base directory of XXX.
|
||||
# XXX_VERSION_YY Expect Version YY if true. Make sure at most one of these is ever true.
|
||||
# XXX_WRAP_YY If False, do not try to use the relevent CMake wrapping command.
|
||||
# XXX_YY_FOUND If False, optional YY part of XXX sytem is not available.
|
||||
# XXX_FOUND Set to false, or undefined, if we haven't found, or don't want to use XXX.
|
||||
# XXX_RUNTIME_LIBRARY_DIRS Optionally, the runtime library search path for use when running an executable linked to shared libraries.
|
||||
# The list should be used by user code to create the PATH on windows or LD_LIBRARY_PATH on unix.
|
||||
# This should not be a cache entry.
|
@ -1,32 +0,0 @@
|
||||
#
|
||||
# HDF5 Config file for CMake
|
||||
#
|
||||
|
||||
SET(HDF5_INCLUDE_DIRS "@HDF5_INCLUDE_DIRECTORIES@i" )
|
||||
SET(HDF5_LIBRARIES "@HDF5_LIBRARIES@" )
|
||||
SET(HDF5_LINK_DIRECTORIES "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@" )
|
||||
|
||||
# Names for hdf5 library
|
||||
SET(HDF5_LIB_NAME "@HDF5_LIB_NAME@")
|
||||
SET(HDF5_LIB_NAME_RELEASE "@HDF5_LIB_NAME_RELEASE@")
|
||||
SET(HDF5_LIB_NAME_DEBUG "@HDF5_LIB_NAME_DEBUG@")
|
||||
|
||||
# Names for hdf5_hl library
|
||||
SET(HDF5_HL_LIB_NAME "@HDF5_HL_LIB_NAME@")
|
||||
SET(HDF5_HL_LIB_NAME_RELEASE "@HDF5_HL_LIB_NAME_RELEASE@")
|
||||
SET(HDF5_HL_LIB_NAME_DEBUG "@HDF5_HL_LIB_NAME_DEBUG@")
|
||||
|
||||
# Names for hdf5_cpp library
|
||||
SET(HDF5_CPP_LIB_NAME "@HDF5_CPP_LIB_NAME@")
|
||||
SET(HDF5_CPP_LIB_NAME_RELEASE "@HDF5_CPP_LIB_NAME_RELEASE@")
|
||||
SET(HDF5_CPP_LIB_NAME_DEBUG "@HDF5_CPP_LIB_NAME_DEBUG@")
|
||||
|
||||
# Names for hdf5_test library
|
||||
SET(HDF5_TEST_LIB_NAME "@HDF5_TEST_LIB_NAME@")
|
||||
SET(HDF5_TEST_LIB_NAME_RELEASE "@HDF5_TEST_LIB_NAME_RELEASE@")
|
||||
SET(HDF5_TEST_LIB_NAME_DEBUG "@HDF5_TEST_LIB_NAME_DEBUG@")
|
||||
|
||||
# Names for hdf5_test library
|
||||
SET(HDF5_TOOLS_LIB_NAME "@HDF5_TOOLS_LIB_NAME@")
|
||||
SET(HDF5_TOOLS_LIB_NAME_RELEASE "@HDF5_TOOLS_LIB_NAME_RELEASE@")
|
||||
SET(HDF5_TOOLS_LIB_NAME_DEBUG "@HDF5_TOOLS_LIB_NAME_DEBUG@")
|
@ -230,7 +230,7 @@ INSTALL (
|
||||
|
||||
INSTALL (
|
||||
DIRECTORY
|
||||
${CMAKE_Fortran_MODULE_DIRECTORY}/${BUILD_TYPE}/
|
||||
${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/
|
||||
DESTINATION
|
||||
include/fortran
|
||||
COMPONENT
|
||||
|
@ -599,15 +599,9 @@ SET (H5_PRIVATE_HEADERS
|
||||
${HDF5_SRC_DIR}/H5Vprivate.h
|
||||
${HDF5_SRC_DIR}/H5WBprivate.h
|
||||
${HDF5_SRC_DIR}/H5Zprivate.h
|
||||
${HDF5_SRC_DIR}/H5win32defs.h
|
||||
)
|
||||
|
||||
IF (WIN32)
|
||||
SET (H5_PRIVATE_HEADERS
|
||||
${H5_PRIVATE_HEADERS}
|
||||
${HDF5_SRC_DIR}/H5win32defs.h
|
||||
)
|
||||
ENDIF (WIN32)
|
||||
|
||||
INCLUDE_DIRECTORIES (${HDF5_SOURCE_DIR})
|
||||
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user