From c923afdf50173d8fd80d252375eb01f3eb8fdf8e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 30 Mar 2015 12:32:55 -0500 Subject: [svn-r26654] Bring trunk CMake changes to branch. Tested: local linux --- CMakeFilters.cmake | 8 +- CMakeInstallation.cmake | 2 +- CMakeLists.txt | 2 +- config/cmake/HDF518_Examples.cmake.in | 4 +- config/cmake/cacheinit.cmake | 4 - config/cmake/hdf5-config.cmake.in | 86 +++++++++++++--- fortran/examples/CMakeLists.txt | 8 +- fortran/src/CMakeLists.txt | 139 +++++++++---------------- fortran/test/CMakeLists.txt | 44 +++++--- fortran/testpar/CMakeLists.txt | 3 +- hl/fortran/examples/CMakeLists.txt | 2 +- hl/fortran/src/CMakeLists.txt | 48 ++++----- hl/fortran/test/CMakeLists.txt | 4 + release_docs/INSTALL_CMake.txt | 10 +- release_docs/USING_CMake_Examples.txt | 8 +- src/CMakeLists.txt | 4 +- src/H5api_adpt.h | 189 ++-------------------------------- test/flush2.c | 4 +- tools/lib/CMakeLists.txt | 2 +- tools/perform/CMakeLists.txt | 12 +-- 20 files changed, 226 insertions(+), 357 deletions(-) diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake index 3a2bec4..14e3d33 100644 --- a/CMakeFilters.cmake +++ b/CMakeFilters.cmake @@ -43,6 +43,9 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT) find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT}) if (NOT ZLIB_FOUND) find_package (ZLIB) # Legacy find + if (ZLIB_FOUND) + set (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES}) + endif (ZLIB_FOUND) endif (NOT ZLIB_FOUND) endif (NOT ZLIB_USE_EXTERNAL) if (ZLIB_FOUND) @@ -51,7 +54,7 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT) set (H5_HAVE_LIBZ 1) set (H5_ZLIB_HEADER "zlib.h") set (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR}) - set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR}) + set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR}) else (ZLIB_FOUND) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) @@ -87,6 +90,9 @@ if (HDF5_ENABLE_SZIP_SUPPORT) find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT}) if (NOT SZIP_FOUND) find_package (SZIP) # Legacy find + if (SZIP_FOUND) + set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES}) + endif (SZIP_FOUND) endif (NOT SZIP_FOUND) endif (NOT SZIP_USE_EXTERNAL) if (SZIP_FOUND) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 7eecb0d..53ab0f3 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -371,7 +371,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) set (CPACK_BUNDLE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns") set (CPACK_BUNDLE_PLIST "${HDF5_BINARY_DIR}/CMakeFiles/Info.plist") set (CPACK_APPLE_GUI_INFO_STRING "HDF5 (Hierarchical Data Format 5) Software Library and Utilities") - set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2014 by The HDF Group. All rights reserved.") + set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2015 by The HDF Group. All rights reserved.") set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}") set (CPACK_APPLE_GUI_BUNDLE_NAME "${HDF5_PACKAGE_STRING}") set (CPACK_APPLE_GUI_VERSION_STRING "${CPACK_PACKAGE_VERSION_STRING}") diff --git a/CMakeLists.txt b/CMakeLists.txt index c4173fe..eb04332 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -283,8 +283,8 @@ if (BUILD_SHARED_LIBS) else (BUILD_SHARED_LIBS) set (H5_BUILT_AS_STATIC_LIB 1) set (H5_ENABLE_STATIC_LIB YES) - set (CMAKE_POSITION_INDEPENDENT_CODE ON) endif (BUILD_SHARED_LIBS) +set (CMAKE_POSITION_INDEPENDENT_CODE ON) #----------------------------------------------------------------------------- # Option to Build Static executables diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in index c6d0b39..27dc7bf 100644 --- a/config/cmake/HDF518_Examples.cmake.in +++ b/config/cmake/HDF518_Examples.cmake.in @@ -13,8 +13,8 @@ set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY}) set(CTEST_BUILD_CONFIGURATION "Release") #set(NO_MAC_FORTRAN "true") #set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON") -#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON) -set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}") +set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON) +#set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}") ############################################################################################################### # Adjust the following SET Commands as needed diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake index a13ee9d..c782b8f 100644 --- a/config/cmake/cacheinit.cmake +++ b/config/cmake/cacheinit.cmake @@ -14,10 +14,6 @@ set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE) set (HDF5_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE) -set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE) - -set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE) - set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE) set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE) diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in index ea61b18..5b91df2 100644 --- a/config/cmake/hdf5-config.cmake.in +++ b/config/cmake/hdf5-config.cmake.in @@ -5,6 +5,16 @@ string(TOUPPER @HDF5_PACKAGE@ HDF5_PACKAGE_NAME) +set (${HDF5_PACKAGE_NAME}_VALID_COMPONENTS + C + CXX + Fortran + HL + CXX_HL + Fortran_HL + Tools +) + #----------------------------------------------------------------------------- # User Options #----------------------------------------------------------------------------- @@ -19,7 +29,7 @@ set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@) set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@) set (${HDF5_PACKAGE_NAME}_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) set (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS @HDF5_PACKAGE_EXTLIBS@) -set (${HDF5_PACKAGE_NAME}_LIBRARIES @HDF5_LIBRARIES_TO_EXPORT@) +set (${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES @HDF5_LIBRARIES_TO_EXPORT@) #----------------------------------------------------------------------------- # Dependencies @@ -32,36 +42,36 @@ endif () #----------------------------------------------------------------------------- # Directories #----------------------------------------------------------------------------- -set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH}" ) +set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH}") set (${HDF5_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@") set_and_check (${HDF5_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@") if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN) - set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@" ) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@") endif () if (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB) - set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@" ) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@") endif () if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB) - set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@" ) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@") endif () if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB AND ${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB) - set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@" ) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@") endif () if (${HDF5_PACKAGE_NAME}_BUILD_TOOLS) - set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@" ) - set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin" ) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@") + set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin") endif () if (HDF5_BUILD_SHARED_LIBS) - set (H5_BUILT_AS_DYNAMIC_LIB 1 ) -else (HDF5_BUILD_SHARED_LIBS) - set (H5_BUILT_AS_STATIC_LIB 1 ) + set (H5_BUILT_AS_DYNAMIC_LIB 1) +else () + set (H5_BUILT_AS_STATIC_LIB 1) endif () #----------------------------------------------------------------------------- @@ -83,7 +93,57 @@ if (NOT TARGET "@HDF5_PACKAGE@") include (@PACKAGE_SHARE_INSTALL_DIR@/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) endif () include (@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-targets.cmake) - set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@") endif () -check_required_components(hdf5) +# Handle default component : +if (NOT ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C) + set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_C true) +endif () + +# Handle requested components: +list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + set (hdf5_comp2) + if (${comp} MATCHES "C") + set (hdf5_comp "hdf5") + elseif (${comp} MATCHES "CXX") + set (hdf5_comp "hdf5_cpp") + elseif (${comp} MATCHES "HL") + set (hdf5_comp "hdf5_hl") + elseif (${comp} MATCHES "CXX_HL") + set (hdf5_comp "hdf5_hl_cpp") + elseif (${comp} MATCHES "Tools") + set (hdf5_comp "hdf5_tools") + elseif (${comp} MATCHES "Fortran") + set (hdf5_comp2 "hdf5_f90cstub") + set (hdf5_comp "hdf5_fortran") + elseif (${comp} MATCHES "Fortran_HL") + set (hdf5_comp2 "hdf5_hl_f90cstub") + set (hdf5_comp "hdf5_hl_fortran") + endif () + list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}" HAVE_COMP) + if (${HAVE_COMP} LESS 0) + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0) + else () + if (hdf5_comp2) + list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}" HAVE_COMP2) + if (${HAVE_COMP2} LESS 0) + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0) + else () + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) + string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) + set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp2} ${hdf5_comp}) + endif () + else () + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) + string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) + set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp}) + endif () + endif () + endforeach () + + check_required_components(${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + +set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${COMP_LIBRARY}}) + \ No newline at end of file diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt index de384ee..81dff6e 100644 --- a/fortran/examples/CMakeLists.txt +++ b/fortran/examples/CMakeLists.txt @@ -90,8 +90,12 @@ if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) ${HDF5_LIB_TARGET} ${MPI_Fortran_LIBRARIES} ) - set_target_properties (f90_ex_ph5example PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (f90_ex_ph5example PROPERTIES FOLDER examples/fortran) + target_include_directories (f90_ex_ph5example PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f90_ex_ph5example PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) if (BUILD_TESTING) diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 8d186c3..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 $) add_custom_command ( @@ -248,7 +251,6 @@ if (WIN32) ) endif (WIN32) TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) 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 "$/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 #----------------------------------------------------------------------------- diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index c24041b..2893156 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -4,7 +4,7 @@ PROJECT (HDF5_FORTRAN_TESTS C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- -INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) +INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) #----------------------------------------------------------------------------- # Add Test Lib @@ -47,7 +47,6 @@ if (WIN32) set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS) endif (WIN32) TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) target_link_libraries (${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -58,6 +57,7 @@ set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES FOLDER libraries/test/fortran LINKER_LANGUAGE Fortran INTERFACE_INCLUDE_DIRECTORIES "$/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- @@ -92,8 +92,12 @@ target_link_libraries (testhdf5_fortran if (WIN32 AND MSVC) target_link_libraries (testhdf5_fortran "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (testhdf5_fortran PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (testhdf5_fortran PROPERTIES FOLDER test/fortran) +target_include_directories (testhdf5_fortran PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (testhdf5_fortran PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for testhdf5_fortran_1_8 add_executable (testhdf5_fortran_1_8 @@ -114,8 +118,12 @@ target_link_libraries (testhdf5_fortran_1_8 if (WIN32 AND MSVC) target_link_libraries (testhdf5_fortran_1_8 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (testhdf5_fortran_1_8 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (testhdf5_fortran_1_8 PROPERTIES FOLDER test/fortran) +target_include_directories (testhdf5_fortran_1_8 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (testhdf5_fortran_1_8 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for fortranlib_test_F03 if (HDF5_ENABLE_F2003) @@ -139,8 +147,12 @@ if (HDF5_ENABLE_F2003) if (WIN32 AND MSVC) target_link_libraries (fortranlib_test_F03 "ws2_32.lib") endif (WIN32 AND MSVC) - set_target_properties (fortranlib_test_F03 PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (fortranlib_test_F03 PROPERTIES FOLDER test/fortran) + target_include_directories (fortranlib_test_F03 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (fortranlib_test_F03 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endif (HDF5_ENABLE_F2003) #-- Adding test for fflush1 @@ -155,8 +167,12 @@ target_link_libraries (fflush1 if (WIN32 AND MSVC) target_link_libraries (fflush1 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (fflush1 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (fflush1 PROPERTIES FOLDER test/fortran) +target_include_directories (fflush1 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (fflush1 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for fflush2 add_executable (fflush2 fflush2.f90) @@ -170,7 +186,11 @@ target_link_libraries (fflush2 if (WIN32 AND MSVC) target_link_libraries (fflush2 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (fflush2 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (fflush2 PROPERTIES FOLDER test/fortran) +target_include_directories (fflush2 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (fflush2 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) include (CMakeTests.cmake) diff --git a/fortran/testpar/CMakeLists.txt b/fortran/testpar/CMakeLists.txt index d24ef23..98ef6c8 100644 --- a/fortran/testpar/CMakeLists.txt +++ b/fortran/testpar/CMakeLists.txt @@ -4,7 +4,7 @@ PROJECT (HDF5_FORTRAN_TESTPAR C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- -INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) +INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) #----------------------------------------------------------------------------- # Add Tests @@ -27,6 +27,7 @@ target_link_libraries (parallel_test if (WIN32 AND MSVC) target_link_libraries (parallel_test "ws2_32.lib") endif (WIN32 AND MSVC) +target_include_directories (parallel_test PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (parallel_test PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (parallel_test PROPERTIES FOLDER test/fortran) diff --git a/hl/fortran/examples/CMakeLists.txt b/hl/fortran/examples/CMakeLists.txt index 64c641d..bded2d9 100644 --- a/hl/fortran/examples/CMakeLists.txt +++ b/hl/fortran/examples/CMakeLists.txt @@ -5,7 +5,6 @@ PROJECT (HDF5_HL_F90_EXAMPLES C CXX Fortran) # Setup include Directories #----------------------------------------------------------------------------- INCLUDE_DIRECTORIES ( - ${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src ) @@ -24,6 +23,7 @@ foreach (example ${examples}) ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) + target_include_directories (hl_f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_ex_${example} PROPERTIES FOLDER examples/hl/fortran) diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt index c9d3c32..6e6e44a 100644 --- a/hl/fortran/src/CMakeLists.txt +++ b/hl/fortran/src/CMakeLists.txt @@ -8,7 +8,6 @@ INCLUDE_DIRECTORIES ( ${HDF5_HL_SRC_DIR}/src ${HDF5_F90_SRC_DIR}/src ${HDF5_F90_BINARY_DIR} - ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- @@ -53,8 +52,8 @@ if (BUILD_SHARED_LIBS) if (WIN32) set_property (TARGET ${HDF5_HL_F90_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS - BUILD_HDF5_DLL - ) + BUILD_HDF5_HL_DLL + ) if (MSVC) set (SHARED_LINK_FLAGS "/DLL") endif (MSVC) @@ -67,7 +66,6 @@ if (WIN32) ) endif (WIN32) TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_HL_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) target_link_libraries (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_LIB_TARGET}") H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_LIB_NAME} ${LIB_TYPE}) @@ -75,37 +73,35 @@ set_target_properties (${HDF5_HL_F90_LIB_TARGET} PROPERTIES FOLDER libraries/hl/fortran LINKER_LANGUAGE Fortran INTERFACE_INCLUDE_DIRECTORIES "$/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- # Add file(s) to CMake Install #----------------------------------------------------------------------------- + if (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5ds.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5tb.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lt.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5im.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}) else (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5ds.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5tb.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lt.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5im.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}) endif (WIN32) +set (mod_files + ${MOD_BUILD_DIR}/h5ds.mod + ${MOD_BUILD_DIR}/h5tb.mod + ${MOD_BUILD_DIR}/h5lt.mod + ${MOD_BUILD_DIR}/h5im.mod +) + +install ( + FILES + ${mod_files} + DESTINATION + ${HDF5_INSTALL_INCLUDE_DIR} + COMPONENT + fortheaders +) + #----------------------------------------------------------------------------- # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- diff --git a/hl/fortran/test/CMakeLists.txt b/hl/fortran/test/CMakeLists.txt index 97510c6..55fb987 100644 --- a/hl/fortran/test/CMakeLists.txt +++ b/hl/fortran/test/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable (hl_f90_tstds tstds.f90) TARGET_NAMING (hl_f90_tstds ${LIB_TYPE}) TARGET_FORTRAN_PROPERTIES (hl_f90_tstds ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstds ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstds PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstds PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstds PROPERTIES FOLDER test/hl/fortran) @@ -19,6 +20,7 @@ add_executable (hl_f90_tstlite tstlite.f90) TARGET_NAMING (hl_f90_tstlite ${LIB_TYPE}) TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstlite ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstlite PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstlite PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstlite PROPERTIES FOLDER test/hl/fortran) @@ -27,6 +29,7 @@ add_executable (hl_f90_tstimage tstimage.f90) TARGET_NAMING (hl_f90_tstimage ${LIB_TYPE}) TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstimage ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstimage PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstimage PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstimage PROPERTIES FOLDER test/hl/fortran) @@ -35,6 +38,7 @@ add_executable (hl_f90_tsttable tsttable.f90) TARGET_NAMING (hl_f90_tsttable ${LIB_TYPE}) TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tsttable ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tsttable PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tsttable PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tsttable PROPERTIES FOLDER test/hl/fortran) diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index c16b72d..24307ee 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -542,15 +542,14 @@ The config/cmake/cacheinit.cmake file overrides the following values. ---------------- General Build Options --------------------- BUILD_SHARED_LIBS "Build Shared Libraries" OFF BUILD_STATIC_EXECS "Build Static Executabless" OFF -BUILD_STATIC_PIC "Build Static PIC" OFF BUILD_TESTING "Build HDF5 Unit Testing" OFF ---------------- HDF5 Build Options --------------------- -HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF -HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" OFF +HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" ON +HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF -HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" OFF -HDF5_BUILD_TOOLS "Build HDF5 Tools" OFF +HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON +HDF5_BUILD_TOOLS "Build HDF5 Tools" ON if (HDF5_BUILD_FORTRAN) HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" ON @@ -574,7 +573,6 @@ HDF5_STRICT_FORMAT_CHECKS "Whether to perform strict file format checks" HDF5_TEST_VFD "Execute tests with different VFDs" OFF HDF5_USE_16_API_DEFAULT "Use the HDF5 1.6.x API by default" OFF HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." OFF -HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON HDF5_WANT_DCONV_EXCEPTION "exception handling functions is checked during data conversions" ON HDF5_ENABLE_THREADSAFE "Enable Threadsafety" OFF if (APPLE) diff --git a/release_docs/USING_CMake_Examples.txt b/release_docs/USING_CMake_Examples.txt index db97ad2..0956ff1 100644 --- a/release_docs/USING_CMake_Examples.txt +++ b/release_docs/USING_CMake_Examples.txt @@ -47,7 +47,7 @@ Files in the HDF5 install directory: Default installation process: Create a directory to run the examples, i.e. \test_hdf5. - Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, do NOT unzip. + Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, uncompress. Copy HDF518_Examples.cmake to this directory. Edit line 8 of the HDF518_Examples.cmake file and change the INSTALLDIR to the HDF5 install location. @@ -55,7 +55,7 @@ Default installation process: Execute from this directory: ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log -The script will uncompress the examples file HDF5Examples-0.1.1-Source.zip(.tar.gz), +The script will use the examples folder HDF5Examples-0.1.1-Source, and create a build directory inside the HDF5Examples-0.1.1-Source directory. It will then configure, build, and execute the examples. All the log files will be found under the build\Testing\Temporary directory, check these for @@ -75,9 +75,9 @@ Line 14: uncomment to allow Mac machines to build shared examples. Line 15: uncomment to build and test Fortran examples. -Line 16: uncomment to build and test Fortran examples with F2003 option. +Line 16: comment to NOT build and test Fortran examples with F2003 option. -Line 17: comment to use an existing source directory. +Line 17: uncomment to use a compressed source file. Line 71: change the CTEST_7Z_COMMAND to a different unzip program. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e98066d..0e97ba0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -611,7 +611,7 @@ set (H5_PRIVATE_HEADERS # specific type checks inside #----------------------------------------------------------------------------- add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) -TARGET_C_PROPERTIES (H5detect ${LIB_TYPE} " " " ") +TARGET_C_PROPERTIES (H5detect STATIC " " " ") if (MSVC OR MINGW) target_link_libraries (H5detect "ws2_32.lib") endif (MSVC OR MINGW) @@ -625,7 +625,7 @@ add_custom_command ( ) add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c) -TARGET_C_PROPERTIES (H5make_libsettings ${LIB_TYPE} " " " ") +TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ") if (MSVC OR MINGW) target_link_libraries (H5make_libsettings "ws2_32.lib") endif (MSVC OR MINGW) diff --git a/src/H5api_adpt.h b/src/H5api_adpt.h index 845a9a0..9b00bd9 100644 --- a/src/H5api_adpt.h +++ b/src/H5api_adpt.h @@ -24,56 +24,6 @@ /* This will only be defined if HDF5 was built with CMake */ #ifdef H5_BUILT_AS_DYNAMIC_LIB -#if defined (hdf5_EXPORTS) - #define _HDF5DLL_ -#else - #define _HDF5USEDLL_ -#endif - -#if defined (hdf5_test_EXPORTS) - #define _HDF5TESTDLL_ -#else - #define _HDF5TESTUSEDLL_ -#endif - -#if defined (hdf5_tools_EXPORTS) - #define _HDF5TOOLSDLL_ -#else - #define _HDF5TOOLSUSEDLL_ -#endif - -#if defined (hdf5_cpp_EXPORTS) - #define HDF5_CPPDLL_EXPORTS -#else - #define HDF5CPP_USEDLL -#endif - -#if defined (hdf5_hl_EXPORTS) - #define _HDF5_HLDLL_EXPORTS_ -#else - #define _HDF5USEHLDLL_ -#endif - -#if defined (hdf5_hl_cpp_EXPORTS) - #define HDF5_HL_CPPDLL_EXPORTS -#else - #define HDF5USE_HLCPPDLL -#endif - -#if defined (hdf5_f90cstub_EXPORTS) - #define HDF5FORT_CSTUB_DLL_EXPORTS -#else - #define HDF5FORT_CSTUB_USEDLL -#endif - -#if defined (hdf5_test_f90cstub_EXPORTS) - #define HDF5FORTTEST_CSTUB_DLL_EXPORTS -#endif - -#if defined (hdf5_hl_f90cstub_EXPORTS) - #define HDF5_HL_F90CSTUBDLL_EXPORTS -#endif - #if defined(hdf5_EXPORTS) #if defined (_MSC_VER) /* MSVC Compiler Case */ #define H5_DLL __declspec(dllexport) @@ -281,144 +231,25 @@ #define HDF5_HL_F90CSTUBDLLVAR extern #endif /* HDF5_HL_F90CSTUBDLL */ -#elif defined(H5_BUILT_AS_STATIC_LIB) +#else #define H5_DLL - #define H5_HLDLL - #define H5_HLCPPDLL - #define HDF5_HL_F90CSTUBDLL #define H5_DLLVAR extern - #define H5_DLLCPP #define H5TEST_DLL #define H5TEST_DLLVAR extern #define H5TOOLS_DLL #define H5TOOLS_DLLVAR extern + #define H5_DLLCPP + #define H5_DLLCPPVAR extern + #define H5_HLDLL + #define H5_HLDLLVAR extern + #define H5_HLCPPDLL + #define H5_HLCPPDLLVAR extern #define H5_FCDLL #define H5_FCDLLVAR extern #define H5_FCTESTDLL #define H5_FCTESTDLLVAR extern - -#else -/* This is the original HDFGroup defined preprocessor code which should still work - * with the VS projects that are maintained by "The HDF Group" - * The Visual Studio project files will not be supported in the next major release of 1.10. - */ - -#if defined(H5_HAVE_WIN32_API) - -#if defined(_HDF5DLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_DLL __declspec(dllexport) -#define H5_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5USEDLL_) -#define H5_DLL __declspec(dllimport) -#define H5_DLLVAR __declspec(dllimport) -#else -#define H5_DLL -#define H5_DLLVAR extern -#endif /* _HDF5DLL_ */ - -#if defined(_HDF5TESTDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TEST_DLL __declspec(dllexport) -#define H5TEST_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TESTUSEDLL_) -#define H5TEST_DLL __declspec(dllimport) -#define H5TEST_DLLVAR __declspec(dllimport) -#else -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#endif /* _HDF5TESTDLL_ */ - -#if defined(_HDF5TOOLSDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TOOLS_DLL __declspec(dllexport) -#define H5TOOLS_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TOOLSUSEDLL_) -#define H5TOOLS_DLL __declspec(dllimport) -#define H5TOOLS_DLLVAR __declspec(dllimport) -#else -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#endif /* _HDF5TOOLSDLL_ */ - -#if defined(_HDF5_HLDLL_EXPORTS_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLDLL __declspec(dllexport) -#elif defined(_HDF5USEHLDLL_) -#define H5_HLDLL __declspec(dllimport) -#else -#define H5_HLDLL -#endif /* _HDF5_HLDLL_EXPORTS */ - -#if defined(HDF5_HL_CPPDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLCPPDLL __declspec(dllexport) -#elif defined(HDF5USE_HLCPPDLL) -#define H5_HLCPPDLL __declspec(dllimport) -#else -#define H5_HLCPPDLL -#endif /*HDF5_HL_CPPDLL_EXPORTS*/ - -#if defined(HDF5_HL_F90CSTUBDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define HDF5_HL_F90CSTUBDLL __declspec(dllexport) -#elif defined(HDF5USE_HLF90CSTUBDLL) -#define HDF5_HL_F90CSTUBDLL __declspec(dllimport) -#else -#define HDF5_HL_F90CSTUBDLL -#endif /*HDF5_HL_F90CSTUBDLL_EXPORTS*/ - - -#if defined(HDF5FORT_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCDLL __declspec(dllexport) -#define H5_FCDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORT_CSTUB_USEDLL) -#define H5_FCDLL __declspec(dllimport) -#define H5_FCDLLVAR __declspec(dllimport) -#else -#define H5_FCDLL -#define H5_FCDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -#if defined(HDF5FORTTEST_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCTESTDLL __declspec(dllexport) -#define H5_FCTESTDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORTTEST_CSTUB_USEDLL) -#define H5_FCTESTDLL __declspec(dllimport) -#define H5_FCTESTDLLVAR __declspec(dllimport) -#else -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -/* Added to export or to import C++ APIs - BMR (02-15-2002) */ -#if defined(HDF5_CPPDLL_EXPORTS) /* this name is generated at creation */ -#define H5_DLLCPP __declspec(dllexport) -#elif defined(HDF5CPP_USEDLL) -#define H5_DLLCPP __declspec(dllimport) -#else -#define H5_DLLCPP -#endif /* HDF5_CPPDLL_EXPORTS */ - -#else /*H5_HAVE_WIN32_API*/ -#define H5_DLL -#define H5_HLDLL -#define H5_HLCPPDLL -#define HDF5_HL_F90CSTUBDLL -#define H5_DLLVAR extern -#define H5_DLLCPP -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#define H5_FCDLL -#define H5_FCDLLVAR extern -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /*H5_HAVE_WIN32_API*/ + #define HDF5_HL_F90CSTUBDLL + #define HDF5_HL_F90CSTUBDLLVAR extern +#endif /* H5_BUILT_AS_DYNAMIC_LIB */ #endif /* H5API_ADPT_H */ - -#endif /* */ diff --git a/test/flush2.c b/test/flush2.c index e719a1f..4f4caf6 100644 --- a/test/flush2.c +++ b/test/flush2.c @@ -187,7 +187,7 @@ main(void) PASSED() else { -#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_ +#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS) SKIPPED(); puts(" DLL will flush the file even when calling _exit, skip this test temporarily"); #elif defined H5_VMS @@ -210,7 +210,7 @@ main(void) PASSED() else { -#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_ +#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS) SKIPPED(); puts(" DLL will flush the file even when calling _exit, skip this test temporarily"); #elif defined H5_VMS diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt index 23eb1e6..dbd72cd 100644 --- a/tools/lib/CMakeLists.txt +++ b/tools/lib/CMakeLists.txt @@ -45,7 +45,7 @@ H5_SET_LIB_OPTIONS ( ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME} ${LIB_TYPE} HDF5_TOOLS_LIB_NAME_RELEASE - HDF5_TOOLS_LIB_NAME_DEBUG + HDF5_TOOLS_LIB_NAME_DEBUG ) #set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES COMPILE_DEFINITIONS H5DIFF_DEBUG) set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES diff --git a/tools/perform/CMakeLists.txt b/tools/perform/CMakeLists.txt index 43e904c..17b40fa 100644 --- a/tools/perform/CMakeLists.txt +++ b/tools/perform/CMakeLists.txt @@ -33,13 +33,13 @@ if (HDF5_BUILD_PERFORM_STANDALONE) ${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c ) add_executable (h5perf_serial_alone ${h5perf_serial_alone_SRCS}) - set_property (TARGET h5perf_serial_alone - APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE - ) TARGET_NAMING (h5perf_serial_alone ${LIB_TYPE}) TARGET_C_PROPERTIES (h5perf_serial_alone ${LIB_TYPE} " " " ") target_link_libraries (h5perf_serial_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5perf_serial_alone PROPERTIES FOLDER perform) + set_property (TARGET h5perf_serial_alone + APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE + ) endif (HDF5_BUILD_PERFORM_STANDALONE) #-- Adding test for chunk @@ -113,13 +113,13 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING) ${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c ) add_executable (h5perf_alone ${h5perf_alone_SRCS}) - set_property (TARGET h5perf_alone - APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE - ) TARGET_NAMING (h5perf_alone ${LIB_TYPE}) TARGET_C_PROPERTIES (h5perf_alone ${LIB_TYPE} " " " ") target_link_libraries (h5perf_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (h5perf_alone PROPERTIES FOLDER perform) + set_property (TARGET h5perf_alone + APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE + ) endif (HDF5_BUILD_PERFORM_STANDALONE) endif (H5_HAVE_PARALLEL AND BUILD_TESTING) -- cgit v0.12