summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2015-03-25 22:08:46 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2015-03-25 22:08:46 (GMT)
commit451a91e53bdc0f930c2acf382d14a5e2fd9cb2d9 (patch)
tree145b94b29e9cc5b7f9c6b2477d076f793430d62e /fortran/src
parentd3114a96da64de8ea987f7c1714f8ad4a2474f4e (diff)
downloadhdf5-451a91e53bdc0f930c2acf382d14a5e2fd9cb2d9.zip
hdf5-451a91e53bdc0f930c2acf382d14a5e2fd9cb2d9.tar.gz
hdf5-451a91e53bdc0f930c2acf382d14a5e2fd9cb2d9.tar.bz2
[svn-r26594] Merge macros and fortran changes from dual_binary feature.
Tested: local linux
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/CMakeLists.txt143
1 files changed, 48 insertions, 95 deletions
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index 22a091e..c015072 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -54,7 +54,10 @@ if (WIN32 AND MSVC)
LINK_FLAGS "/SUBSYSTEM:CONSOLE"
)
endif (WIN32 AND MSVC)
-set_target_properties (H5test_FortranHavekind PROPERTIES LINKER_LANGUAGE Fortran)
+set_target_properties (H5test_FortranHavekind PROPERTIES
+ LINKER_LANGUAGE Fortran
+ Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+)
set (CMD $<TARGET_FILE:H5test_FortranHavekind>)
add_custom_command (
@@ -142,7 +145,7 @@ set (f90CStub_C_HDRS
)
add_library (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} ${f90CStub_C_SRCS} ${f90CStub_C_HDRS})
-TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ")
target_link_libraries (${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS})
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_C_LIB_TARGET}")
H5_SET_LIB_OPTIONS (${HDF5_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_NAME} ${LIB_TYPE})
@@ -247,8 +250,7 @@ if (WIN32)
HDF5F90_WINDOWS
)
endif (WIN32)
-TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} " " ${SHARED_LINK_FLAGS})
-set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran)
+TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS})
target_link_libraries (${HDF5_F90_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET})
if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
target_link_libraries (${HDF5_F90_LIB_TARGET} ${MPI_Fortran_LIBRARIES})
@@ -259,6 +261,7 @@ set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES
FOLDER libraries/fortran
LINKER_LANGUAGE Fortran
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+ Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
)
#-----------------------------------------------------------------------------
@@ -278,100 +281,50 @@ install (
)
if (WIN32)
- install (
- FILES
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5fortran_types.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/hdf5.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5global.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5g.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5i.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5s.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5z.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5_dble_interface.mod
- DESTINATION
- ${HDF5_INSTALL_INCLUDE_DIR}
- COMPONENT
- fortheaders
- )
- if (H5_TEST_KIND_NAME)
- install (
- FILES
- ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/${H5_TEST_KIND_NAME}.mod
- DESTINATION
- ${HDF5_INSTALL_INCLUDE_DIR}
- COMPONENT
- fortheaders
- )
- endif (H5_TEST_KIND_NAME)
+ set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE})
else (WIN32)
- install (
- FILES
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5fortran_types.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/hdf5.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5global.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5g.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5i.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5s.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5z.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t_provisional.mod
- ${CMAKE_Fortran_MODULE_DIRECTORY}/h5_dble_interface.mod
- DESTINATION
- ${HDF5_INSTALL_INCLUDE_DIR}
- COMPONENT
- fortheaders
- )
- if (H5_TEST_KIND_NAME)
- install (
- FILES
- ${CMAKE_Fortran_MODULE_DIRECTORY}/${H5_TEST_KIND_NAME}.mod
- DESTINATION
- ${HDF5_INSTALL_INCLUDE_DIR}
- COMPONENT
- fortheaders
- )
- endif (H5_TEST_KIND_NAME)
+ set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY})
endif (WIN32)
+set (mod_files
+ ${MOD_BUILD_DIR}/h5fortran_types.mod
+ ${MOD_BUILD_DIR}/hdf5.mod
+ ${MOD_BUILD_DIR}/h5global.mod
+ ${MOD_BUILD_DIR}/h5a.mod
+ ${MOD_BUILD_DIR}/h5d.mod
+ ${MOD_BUILD_DIR}/h5e.mod
+ ${MOD_BUILD_DIR}/h5f.mod
+ ${MOD_BUILD_DIR}/h5g.mod
+ ${MOD_BUILD_DIR}/h5i.mod
+ ${MOD_BUILD_DIR}/h5l.mod
+ ${MOD_BUILD_DIR}/h5lib.mod
+ ${MOD_BUILD_DIR}/h5o.mod
+ ${MOD_BUILD_DIR}/h5p.mod
+ ${MOD_BUILD_DIR}/h5r.mod
+ ${MOD_BUILD_DIR}/h5s.mod
+ ${MOD_BUILD_DIR}/h5t.mod
+ ${MOD_BUILD_DIR}/h5z.mod
+ ${MOD_BUILD_DIR}/h5a_provisional.mod
+ ${MOD_BUILD_DIR}/h5d_provisional.mod
+ ${MOD_BUILD_DIR}/h5e_provisional.mod
+ ${MOD_BUILD_DIR}/h5f_provisional.mod
+ ${MOD_BUILD_DIR}/h5l_provisional.mod
+ ${MOD_BUILD_DIR}/h5lib_provisional.mod
+ ${MOD_BUILD_DIR}/h5o_provisional.mod
+ ${MOD_BUILD_DIR}/h5p_provisional.mod
+ ${MOD_BUILD_DIR}/h5r_provisional.mod
+ ${MOD_BUILD_DIR}/h5t_provisional.mod
+ ${MOD_BUILD_DIR}/h5_dble_interface.mod
+)
+install (
+ FILES
+ ${mod_files}
+ DESTINATION
+ ${HDF5_INSTALL_INCLUDE_DIR}
+ COMPONENT
+ fortheaders
+)
+
#-----------------------------------------------------------------------------
# Add Target(s) to CMake Install for import into other projects
#-----------------------------------------------------------------------------