summaryrefslogtreecommitdiffstats
path: root/HDF5Examples
diff options
context:
space:
mode:
Diffstat (limited to 'HDF5Examples')
-rw-r--r--HDF5Examples/C/H5D/CMakeLists.txt2
-rw-r--r--HDF5Examples/C/H5FLT/CMakeLists.txt10
-rw-r--r--HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.ddl2
-rw-r--r--HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.tst4
-rw-r--r--HDF5Examples/C/H5G/CMakeLists.txt2
-rw-r--r--HDF5Examples/C/H5T/CMakeLists.txt2
-rw-r--r--HDF5Examples/CMakeLists.txt78
-rw-r--r--HDF5Examples/FORTRAN/CMakeLists.txt2
-rw-r--r--HDF5Examples/FORTRAN/H5D/CMakeLists.txt8
-rw-r--r--HDF5Examples/FORTRAN/H5G/CMakeLists.txt8
-rw-r--r--HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt10
-rw-r--r--HDF5Examples/FORTRAN/H5T/CMakeLists.txt15
-rw-r--r--HDF5Examples/JAVA/H5D/CMakeLists.txt23
-rw-r--r--HDF5Examples/JAVA/H5G/CMakeLists.txt23
-rw-r--r--HDF5Examples/JAVA/H5J/CMakeLists.txt23
-rw-r--r--HDF5Examples/JAVA/H5T/CMakeLists.txt23
-rw-r--r--HDF5Examples/config/cmake/HDFExampleMacros.cmake75
-rw-r--r--HDF5Examples/config/cmake/HDFMacros.cmake80
-rw-r--r--HDF5Examples/config/cmake/UseJava.cmake97
-rw-r--r--HDF5Examples/config/cmake/jrunTest.cmake18
20 files changed, 348 insertions, 157 deletions
diff --git a/HDF5Examples/C/H5D/CMakeLists.txt b/HDF5Examples/C/H5D/CMakeLists.txt
index 5df56c1..68cbd23 100644
--- a/HDF5Examples/C/H5D/CMakeLists.txt
+++ b/HDF5Examples/C/H5D/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_C_H5D)
+project (HDF5Examples_C_H5D C)
#-----------------------------------------------------------------------------
# Define Sources
diff --git a/HDF5Examples/C/H5FLT/CMakeLists.txt b/HDF5Examples/C/H5FLT/CMakeLists.txt
index eb386b4..482d65b 100644
--- a/HDF5Examples/C/H5FLT/CMakeLists.txt
+++ b/HDF5Examples/C/H5FLT/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_C_H5FLT)
+project (HDF5Examples_C_H5FLT C)
set (dyn_examples)
@@ -190,6 +190,8 @@ if (H5EX_BUILD_TESTING)
-D "TEST_MASK_ERROR=true"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_REFERENCE=${testname}.tst"
+ -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
+ -D "TEST_ENV_VALUE=${H5EX_HDF5_PLUGIN_PATH}"
-D "TEST_SKIP_COMPARE=1"
-D "TEST_ERRREF=1"
-D "GREP_ERRREF=Filter present but encoding disabled"
@@ -214,6 +216,8 @@ if (H5EX_BUILD_TESTING)
-D "TEST_EXPECT=0"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_REFERENCE=${testname}.tst"
+ -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
+ -D "TEST_ENV_VALUE=${H5EX_HDF5_PLUGIN_PATH}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
)
@@ -233,6 +237,8 @@ if (H5EX_BUILD_TESTING)
-D "TEST_FILTER_REPLACE=PARAMS { \\1 XXXX \\2 }\n"
-D "TEST_EXPECT=0"
-D "TEST_REFERENCE=${testname}.ddl"
+ -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
+ -D "TEST_ENV_VALUE=${H5EX_HDF5_PLUGIN_PATH}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
)
@@ -248,6 +254,8 @@ if (H5EX_BUILD_TESTING)
-D "TEST_FILTER_REPLACE:STRING=PARAMS { XXXX }"
-D "TEST_EXPECT=0"
-D "TEST_REFERENCE=${testname}.ddl"
+ -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
+ -D "TEST_ENV_VALUE=${H5EX_HDF5_PLUGIN_PATH}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
)
diff --git a/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.ddl b/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.ddl
index 7d73913..a8e66c0 100644
--- a/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.ddl
+++ b/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.ddl
@@ -10,7 +10,7 @@ GROUP "/" {
FILTERS {
USER_DEFINED_FILTER {
FILTER_ID 32013
- COMMENT H5Z-ZFP-1.0.1 (ZFP-0.5.5) github.com/LLNL/H5Z-ZFP
+ COMMENT H5Z-ZFP-1.1.1 (ZFP-1.0.0) github.com/LLNL/H5Z-ZFP
PARAMS { XXXX }
}
}
diff --git a/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.tst b/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.tst
index 0a1ba90..dd7197c 100644
--- a/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.tst
+++ b/HDF5Examples/C/H5FLT/tfiles/h5ex_d_zfp.tst
@@ -4,8 +4,8 @@ zfp filter is available for encoding and decoding.
....Close the file and reopen for reading ........
Filter info is available from the dataset creation property
Filter identifier is 32013
- Number of parameters is 6 with the value 5570817
- To find more about the filter check H5Z-ZFP-1.0.1 (ZFP-0.5.5) github.com/LLNL/H5Z-ZFP
+ Number of parameters is 6 with the value 268456209
+ To find more about the filter check H5Z-ZFP-1.1.1 (ZFP-1.0.0) github.com/LLNL/H5Z-ZFP
....Reading zfp compressed data ................
Maximum value in DS1 is 1890.0000
zfp filter is available now since H5Dread triggered loading of the filter.
diff --git a/HDF5Examples/C/H5G/CMakeLists.txt b/HDF5Examples/C/H5G/CMakeLists.txt
index afef556..ffbc614 100644
--- a/HDF5Examples/C/H5G/CMakeLists.txt
+++ b/HDF5Examples/C/H5G/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_C_H5G)
+project (HDF5Examples_C_H5G C)
#-----------------------------------------------------------------------------
# Define Sources
diff --git a/HDF5Examples/C/H5T/CMakeLists.txt b/HDF5Examples/C/H5T/CMakeLists.txt
index 4dcf6cb..0f8884b 100644
--- a/HDF5Examples/C/H5T/CMakeLists.txt
+++ b/HDF5Examples/C/H5T/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_C_H5T)
+project (HDF5Examples_C_H5T C)
#-----------------------------------------------------------------------------
# Define Sources
diff --git a/HDF5Examples/CMakeLists.txt b/HDF5Examples/CMakeLists.txt
index b5fb3e2..e944b9e 100644
--- a/HDF5Examples/CMakeLists.txt
+++ b/HDF5Examples/CMakeLists.txt
@@ -1,11 +1,19 @@
cmake_minimum_required (VERSION 3.12)
-project (H5EXAMPLES C CXX)
+project (H5EXAMPLES C)
+
+#-----------------------------------------------------------------------------
+# Define some CMake variables for use later in the project
+#-----------------------------------------------------------------------------
+set (HDF5EX_C_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/C)
+set (HDF5EX_F90_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/FORTRAN)
+set (HDF5EX_JAVA_DIR ${H5EXAMPLES_SOURCE_DIR}/JAVA)
+set (HDF5EX_RESOURCES_DIR ${H5EXAMPLES_SOURCE_DIR}/config/cmake)
#-----------------------------------------------------------------------------
# Basic HDF5Examples stuff here
#-----------------------------------------------------------------------------
-include (${H5EXAMPLES_SOURCE_DIR}/config/cmake/HDFMacros.cmake)
-include (${H5EXAMPLES_SOURCE_DIR}/config/cmake/HDFExampleMacros.cmake)
+include (${HDF5EX_RESOURCES_DIR}/HDFMacros.cmake)
+include (${HDF5EX_RESOURCES_DIR}/HDFExampleMacros.cmake)
set (CMAKE_JAVA_INCLUDE_PATH "")
SET_HDF_BUILD_TYPE()
@@ -13,13 +21,6 @@ SET_HDF_BUILD_TYPE()
BASIC_SETTINGS (EXAMPLES)
#-----------------------------------------------------------------------------
-# Define some CMake variables for use later in the project
-#-----------------------------------------------------------------------------
-set (HDF5EX_C_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/C)
-set (HDF5EX_F90_SRC_DIR ${H5EXAMPLES_SOURCE_DIR}/FORTRAN)
-set (HDF5EX_JAVA_DIR ${H5EXAMPLES_SOURCE_DIR}/JAVA)
-
-#-----------------------------------------------------------------------------
# HDF5 support
#-----------------------------------------------------------------------------
HDF5_SUPPORT (TRUE)
@@ -37,7 +38,7 @@ if(NOT DEFINED _h5public_h_contents)
string (REGEX REPLACE ".*#define[ \t]+H5_VERS_MAJOR[ \t]+([0-9]*).*$"
"\\1" H5_VERS_MAJOR ${_h5public_h_contents})
string (REGEX REPLACE ".*#define[ \t]+H5_VERS_MINOR[ \t]+([0-9]*).*$"
- "\\1" H5_VERS_MINOR ${_h5public_h_contents})
+ "\\1" H5_VERS_MINOR ${_h5public_h_contents})
string (REGEX REPLACE ".*#define[ \t]+H5_VERS_RELEASE[ \t]+([0-9]*).*$"
"\\1" H5_VERS_RELEASE ${_h5public_h_contents})
string (REGEX REPLACE ".*#define[ \t]+H5_VERS_SUBRELEASE[ \t]+\"([0-9A-Za-z._-]*)\".*$"
@@ -119,11 +120,6 @@ if (H5EX_BUILD_TESTING)
configure_file (${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/CTestCustom.cmake ${PROJECT_BINARY_DIR}/CTestCustom.ctest @ONLY)
endif ()
-#-----------------------------------------------------------------------------
-# Build examples
-#-----------------------------------------------------------------------------
-add_subdirectory (C)
-
if (${H5_LIBVER_DIR} GREATER 16)
#-----------------------------------------------------------------------------
# Option to build Fortran examples
@@ -136,19 +132,22 @@ if (${H5_LIBVER_DIR} GREATER 16)
if (EXISTS "${H5EXAMPLES_SOURCE_DIR}/FORTRAN" AND IS_DIRECTORY "${H5EXAMPLES_SOURCE_DIR}/FORTRAN")
option (HDF_BUILD_FORTRAN "Build FORTRAN support" OFF)
if (HDF_BUILD_FORTRAN AND HDF5_BUILD_FORTRAN)
- set (LINK_Fortran_LIBS ${H5EX_HDF5_LINK_LIBS})
+ set (H5EX_LINK_Fortran_LIBS ${H5EX_HDF5_LINK_LIBS})
# Parallel IO usage requires MPI to be Linked and Included
if (H5_HAVE_PARALLEL)
- set (LINK_Fortran_LIBS ${LINK_Fortran_LIBS} ${MPI_Fortran_LIBRARIES})
+ set (H5EX_LINK_Fortran_LIBS ${H5EX_LINK_Fortran_LIBS} ${MPI_Fortran_LIBRARIES})
if (MPI_Fortran_LINK_FLAGS)
set (CMAKE_Fortran_EXE_LINKER_FLAGS "${MPI_Fortran_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
endif ()
endif ()
- add_subdirectory (FORTRAN)
configure_file (${HDF5EX_F90_SRC_DIR}/H5D/h5_version.h.in ${PROJECT_BINARY_DIR}/FORTRAN/H5D/h5_version.h @ONLY)
+ else ()
+ set (HDF_BUILD_FORTRAN OFF CACHE BOOL "Build examples FORTRAN support" FORCE)
endif ()
+ else ()
+ set (HDF_BUILD_FORTRAN OFF CACHE BOOL "Build examples FORTRAN support" FORCE)
endif ()
if (${H5_LIBVER_DIR} GREATER 18)
@@ -157,16 +156,49 @@ if (${H5_LIBVER_DIR} GREATER 16)
#-----------------------------------------------------------------------------
if (EXISTS "${H5EXAMPLES_SOURCE_DIR}/JAVA" AND IS_DIRECTORY "${H5EXAMPLES_SOURCE_DIR}/JAVA")
option (HDF_BUILD_JAVA "Build JAVA support" OFF)
- if (HDF_BUILD_JAVA AND HDF5_BUILD_JAVA)
- add_subdirectory (JAVA)
- endif ()
+ else ()
+ set (HDF_BUILD_JAVA OFF CACHE BOOL "Build examples JAVA support" FORCE)
endif ()
+ else ()
+ set (HDF_BUILD_JAVA OFF CACHE BOOL "Build examples JAVA support" FORCE)
endif ()
#-----------------------------------------------------------------------------
# Option to build filter examples
#-----------------------------------------------------------------------------
- if (EXISTS "${H5EXAMPLES_SOURCE_DIR}/C/H5F" AND IS_DIRECTORY "${H5EXAMPLES_SOURCE_DIR}/C/H5F")
+ if (EXISTS "${H5EXAMPLES_SOURCE_DIR}/C/H5FLT" AND IS_DIRECTORY "${H5EXAMPLES_SOURCE_DIR}/C/H5FLT")
option (HDF_BUILD_FILTERS "Test filter support" OFF)
+ if (HDF_BUILD_FILTERS AND HDF5_ENABLE_PLUGIN_SUPPORT)
+ if(DEFINED ENV{HDF5_PLUGIN_PATH})
+ message (STATUS "ENV PATH=$ENV{HDF5_PLUGIN_PATH}")
+ set (H5EX_HDF5_PLUGIN_PATH $ENV{HDF5_PLUGIN_PATH})
+ else ()
+ if(NOT DEFINED H5EX_HDF5_PLUGIN_PATH)
+ message (STATUS "LIBRARY PATH=${HDF5_LIBRARY_PATH}/plugin")
+ set (H5EX_HDF5_PLUGIN_PATH ${HDF5_LIBRARY_PATH}/plugin)
+ endif ()
+ endif ()
+ message (STATUS "H5EX_HDF5_PLUGIN_PATH=${H5EX_HDF5_PLUGIN_PATH}")
+ else ()
+ set (HDF_BUILD_FILTERS OFF CACHE BOOL "Build examples PLUGIN filter support" FORCE)
+ endif ()
+ else ()
+ set (HDF_BUILD_FILTERS OFF CACHE BOOL "Build examples PLUGIN filter support" FORCE)
endif ()
+else ()
+ set (HDF_BUILD_FORTRAN OFF} CACHE BOOL "Build examples FORTRAN support" FORCE)
+ set (HDF_BUILD_JAVA OFF CACHE BOOL "Build examples JAVA support" FORCE)
+ set (HDF_BUILD_FILTERS OFF CACHE BOOL "Build examples PLUGIN filter support" FORCE)
endif ()
+
+#-----------------------------------------------------------------------------
+# Build examples
+#-----------------------------------------------------------------------------
+add_subdirectory (C)
+if (HDF_BUILD_FORTRAN AND HDF5_BUILD_FORTRAN)
+ add_subdirectory (FORTRAN)
+endif ()
+if (HDF_BUILD_JAVA AND HDF5_BUILD_JAVA)
+ add_subdirectory (JAVA)
+endif ()
+
diff --git a/HDF5Examples/FORTRAN/CMakeLists.txt b/HDF5Examples/FORTRAN/CMakeLists.txt
index 72582fe..0f05a0e 100644
--- a/HDF5Examples/FORTRAN/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-PROJECT (HDF5Examples_F90 C CXX Fortran)
+PROJECT (HDF5Examples_F90 Fortran)
#-----------------------------------------------------------------------------
# Build the Fortran Examples
diff --git a/HDF5Examples/FORTRAN/H5D/CMakeLists.txt b/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
index dbc126c..5369a49 100644
--- a/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5D/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_FORTRAN_H5D C CXX Fortran)
+project (HDF5Examples_FORTRAN_H5D Fortran)
# --------------------------------------------------------------------
# Notes: When creating examples they should be prefixed
@@ -10,7 +10,7 @@ project (HDF5Examples_FORTRAN_H5D C CXX Fortran)
# Setup include Directories
#-----------------------------------------------------------------------------
INCLUDE_DIRECTORIES (
- ${CMAKE_Fortran_MODULE_DIRECTORY}
+ ${CMAKE_Fortran_MODULE_DIRECTORY}${HDF_MOD_EXT}
${PROJECT_BINARY_DIR}
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
)
@@ -35,7 +35,7 @@ foreach (example_name ${common_examples})
if (H5_HAVE_PARALLEL)
target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_Fortran_INCLUDE_DIRS})
endif ()
- target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${LINK_Fortran_LIBS})
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_LINK_Fortran_LIBS})
set_target_properties (${EXAMPLE_VARNAME}_f90_${example_name} PROPERTIES LINKER_LANGUAGE Fortran)
if (H5EX_BUILD_TESTING)
if (${example_name} STREQUAL "h5ex_d_alloc")
@@ -80,7 +80,7 @@ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.10")
if (H5_HAVE_PARALLEL)
target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_C_INCLUDE_DIRS})
endif ()
- target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_HDF5_LINK_LIBS})
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_LINK_Fortran_LIBS})
if (H5EX_BUILD_TESTING)
add_custom_command (
TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
diff --git a/HDF5Examples/FORTRAN/H5G/CMakeLists.txt b/HDF5Examples/FORTRAN/H5G/CMakeLists.txt
index d2587e0..508283c 100644
--- a/HDF5Examples/FORTRAN/H5G/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5G/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_FORTRAN_H5G C CXX Fortran)
+project (HDF5Examples_FORTRAN_H5G Fortran)
# --------------------------------------------------------------------
# Notes: When creating examples they should be prefixed
@@ -10,7 +10,7 @@ project (HDF5Examples_FORTRAN_H5G C CXX Fortran)
# Setup include Directories
#-----------------------------------------------------------------------------
INCLUDE_DIRECTORIES (
- ${CMAKE_Fortran_MODULE_DIRECTORY}
+ ${CMAKE_Fortran_MODULE_DIRECTORY}${HDF_MOD_EXT}
${PROJECT_BINARY_DIR}
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
)
@@ -35,7 +35,7 @@ foreach (example_name ${common_examples})
if (H5_HAVE_PARALLEL)
target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_Fortran_INCLUDE_DIRS})
endif ()
- target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${LINK_Fortran_LIBS})
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_LINK_Fortran_LIBS})
set_target_properties (${EXAMPLE_VARNAME}_f90_${example_name} PROPERTIES LINKER_LANGUAGE Fortran)
if (H5EX_BUILD_TESTING)
if (NOT ${example_name} STREQUAL "h5ex_g_create" AND NOT ${example_name} STREQUAL "h5ex_g_compact")
@@ -64,7 +64,7 @@ endforeach ()
# if (H5_HAVE_PARALLEL)
# target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_C_INCLUDE_DIRS})
# endif ()
-# target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_HDF5_LINK_LIBS})
+# target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_LINK_Fortran_LIBS})
# if (H5EX_BUILD_TESTING)
# add_custom_command (
# TARGET ${EXAMPLE_VARNAME}_f90_${example_name}
diff --git a/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt b/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt
index 84c9641..792caaf 100644
--- a/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5PAR/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_FORTRAN_H5PAR C CXX Fortran)
+project (HDF5Examples_FORTRAN_H5PAR Fortran)
# --------------------------------------------------------------------
# Notes: When creating examples they should be prefixed
@@ -10,7 +10,7 @@ project (HDF5Examples_FORTRAN_H5PAR C CXX Fortran)
# Setup include Directories
#-----------------------------------------------------------------------------
INCLUDE_DIRECTORIES (
- ${CMAKE_Fortran_MODULE_DIRECTORY}
+ ${CMAKE_Fortran_MODULE_DIRECTORY}${HDF_MOD_EXT}
${PROJECT_BINARY_DIR}
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
)
@@ -33,7 +33,7 @@ foreach (example_name ${examples})
"$<$<BOOL:${${EXAMPLE_VARNAME}_USE_116_API}>:-DH5_USE_116_API>"
)
target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_Fortran_INCLUDE_DIRS})
- target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${LINK_Fortran_LIBS})
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_LINK_Fortran_LIBS})
set_target_properties (${EXAMPLE_VARNAME}_f90_${example_name} PROPERTIES LINKER_LANGUAGE Fortran)
endforeach ()
@@ -59,8 +59,8 @@ if (H5EX_BUILD_TESTING)
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/grepTest.cmake"
)
- set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
- set (last_test "${EXAMPLE_VARNAME}_${testname}")
+ set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall)
+ set (last_test "${EXAMPLE_VARNAME}_f90_${testname}")
endmacro ()
# Ensure that 24 is a multiple of the number of processes.
diff --git a/HDF5Examples/FORTRAN/H5T/CMakeLists.txt b/HDF5Examples/FORTRAN/H5T/CMakeLists.txt
index 67a3ca3..262adf8 100644
--- a/HDF5Examples/FORTRAN/H5T/CMakeLists.txt
+++ b/HDF5Examples/FORTRAN/H5T/CMakeLists.txt
@@ -1,5 +1,14 @@
cmake_minimum_required (VERSION 3.12)
-project (HDF5Examples_FORTRAN_H5T C CXX Fortran)
+project (HDF5Examples_FORTRAN_H5T Fortran)
+
+#-----------------------------------------------------------------------------
+# Setup include Directories
+#-----------------------------------------------------------------------------
+INCLUDE_DIRECTORIES (
+ ${CMAKE_Fortran_MODULE_DIRECTORY}${HDF_MOD_EXT}
+ ${PROJECT_BINARY_DIR}
+ ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+)
#-----------------------------------------------------------------------------
# Define Sources
@@ -21,7 +30,7 @@ include (Fortran_sourcefiles.cmake)
if (H5_HAVE_PARALLEL)
target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_Fortran_INCLUDE_DIRS})
endif ()
- target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${LINK_Fortran_LIBS})
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_LINK_Fortran_LIBS})
set_target_properties (${EXAMPLE_VARNAME}_f90_${example_name} PROPERTIES LINKER_LANGUAGE Fortran)
if (H5EX_BUILD_TESTING)
add_custom_command (
@@ -48,7 +57,7 @@ foreach (example_name ${common_examples})
if (H5_HAVE_PARALLEL)
target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_Fortran_INCLUDE_DIRS})
endif ()
- target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${LINK_Fortran_LIBS})
+ target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EX_LINK_Fortran_LIBS})
set_target_properties (${EXAMPLE_VARNAME}_f90_${example_name} PROPERTIES LINKER_LANGUAGE Fortran)
if (H5EX_BUILD_TESTING)
add_custom_command (
diff --git a/HDF5Examples/JAVA/H5D/CMakeLists.txt b/HDF5Examples/JAVA/H5D/CMakeLists.txt
index 60c35dc..bc06506 100644
--- a/HDF5Examples/JAVA/H5D/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5D/CMakeLists.txt
@@ -3,10 +3,9 @@ project (HDF5Examples_JAVA_H5D Java)
set (CMAKE_VERBOSE_MAKEFILE 1)
-INCLUDE_DIRECTORIES (
- ${HDFJAVA_LIB_DIR}
- ${JAVA_INCLUDE_PATH}
- ${JAVA_INCLUDE_PATH2}
+set_directory_properties(PROPERTIES
+ INCLUDE_DIRECTORIES
+ "${HDFJAVA_LIB_DIR};${JAVA_INCLUDE_PATH};${JAVA_INCLUDE_PATH2}"
)
#-----------------------------------------------------------------------------
@@ -20,6 +19,9 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
+set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
+
set (CMAKE_JAVA_CLASSPATH ".")
foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
@@ -32,13 +34,18 @@ endforeach ()
foreach (example ${HDF_JAVA_EXAMPLES})
get_filename_component (example_name ${example} NAME_WE)
- file (WRITE ${PROJECT_BINARY_DIR}/Manifest.txt
+ file (WRITE ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
"Main-Class: ${example_name}
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name} SOURCES ${example} MANIFEST ${PROJECT_BINARY_DIR}/Manifest.txt)
+ add_jar (${EXAMPLE_VARNAME}_${example_name}
+ SOURCES ${example}
+ MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
+ )
get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -46,9 +53,9 @@ if (H5EX_BUILD_TESTING)
add_test (
NAME ${EXAMPLE_VARNAME}_jnative-h5-${resultfile}
COMMAND "${CMAKE_COMMAND}"
- -D "TEST_TESTER=${CMAKE_Java_RUNTIME}"
+ -D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
- -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
-D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
diff --git a/HDF5Examples/JAVA/H5G/CMakeLists.txt b/HDF5Examples/JAVA/H5G/CMakeLists.txt
index 5f47d59..957934b 100644
--- a/HDF5Examples/JAVA/H5G/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5G/CMakeLists.txt
@@ -3,10 +3,9 @@ project (HDF5Examples_JAVA_GROUPS Java)
set (CMAKE_VERBOSE_MAKEFILE 1)
-INCLUDE_DIRECTORIES (
- ${HDFJAVA_LIB_DIR}
- ${JAVA_INCLUDE_PATH}
- ${JAVA_INCLUDE_PATH2}
+set_directory_properties(PROPERTIES
+ INCLUDE_DIRECTORIES
+ "${HDFJAVA_LIB_DIR};${JAVA_INCLUDE_PATH};${JAVA_INCLUDE_PATH2}"
)
#-----------------------------------------------------------------------------
@@ -20,6 +19,9 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
+set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
+
set (CMAKE_JAVA_CLASSPATH ".")
foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
@@ -32,13 +34,18 @@ endforeach ()
foreach (example ${HDF_JAVA_EXAMPLES})
get_filename_component (example_name ${example} NAME_WE)
- file (WRITE ${PROJECT_BINARY_DIR}/Manifest.txt
+ file (WRITE ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
"Main-Class: ${example_name}
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name} SOURCES ${example} MANIFEST ${PROJECT_BINARY_DIR}/Manifest.txt)
+ add_jar (${EXAMPLE_VARNAME}_${example_name}
+ SOURCES ${example}
+ MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
+ )
get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -46,9 +53,9 @@ if (H5EX_BUILD_TESTING)
add_test (
NAME ${EXAMPLE_VARNAME}_jnative-h5-${resultfile}
COMMAND "${CMAKE_COMMAND}"
- -D "TEST_TESTER=${CMAKE_Java_RUNTIME}"
+ -D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
- -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
-D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
diff --git a/HDF5Examples/JAVA/H5J/CMakeLists.txt b/HDF5Examples/JAVA/H5J/CMakeLists.txt
index 8f1c195..eaefa7d 100644
--- a/HDF5Examples/JAVA/H5J/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5J/CMakeLists.txt
@@ -3,10 +3,9 @@ project (HDF5Examples_JAVA_INTRO Java)
set (CMAKE_VERBOSE_MAKEFILE 1)
-INCLUDE_DIRECTORIES (
- ${HDFJAVA_LIB_DIR}
- ${JAVA_INCLUDE_PATH}
- ${JAVA_INCLUDE_PATH2}
+set_directory_properties(PROPERTIES
+ INCLUDE_DIRECTORIES
+ "${HDFJAVA_LIB_DIR};${JAVA_INCLUDE_PATH};${JAVA_INCLUDE_PATH2}"
)
#-----------------------------------------------------------------------------
@@ -20,6 +19,9 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
+set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
+
set (CMAKE_JAVA_CLASSPATH ".")
foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
@@ -32,13 +34,18 @@ endforeach ()
foreach (example ${HDF_JAVA_EXAMPLES})
get_filename_component (example_name ${example} NAME_WE)
- file (WRITE ${PROJECT_BINARY_DIR}/Manifest.txt
+ file (WRITE ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
"Main-Class: ${example_name}
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name} SOURCES ${example} MANIFEST ${PROJECT_BINARY_DIR}/Manifest.txt)
+ add_jar (${EXAMPLE_VARNAME}_${example_name}
+ SOURCES ${example}
+ MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
+ )
get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -46,9 +53,9 @@ if (H5EX_BUILD_TESTING)
add_test (
NAME ${EXAMPLE_VARNAME}_jnative-h5-${resultfile}
COMMAND "${CMAKE_COMMAND}"
- -D "TEST_TESTER=${CMAKE_Java_RUNTIME}"
+ -D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
- -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
-D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
diff --git a/HDF5Examples/JAVA/H5T/CMakeLists.txt b/HDF5Examples/JAVA/H5T/CMakeLists.txt
index a779a53..0d2cb41 100644
--- a/HDF5Examples/JAVA/H5T/CMakeLists.txt
+++ b/HDF5Examples/JAVA/H5T/CMakeLists.txt
@@ -3,10 +3,9 @@ project (HDF5Examples_JAVA_H5T Java)
set (CMAKE_VERBOSE_MAKEFILE 1)
-INCLUDE_DIRECTORIES (
- ${HDFJAVA_LIB_DIR}
- ${JAVA_INCLUDE_PATH}
- ${JAVA_INCLUDE_PATH2}
+set_directory_properties(PROPERTIES
+ INCLUDE_DIRECTORIES
+ "${HDFJAVA_LIB_DIR};${JAVA_INCLUDE_PATH};${JAVA_INCLUDE_PATH2}"
)
#-----------------------------------------------------------------------------
@@ -20,6 +19,9 @@ else ()
set (CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
endif ()
+set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_INCLUDE_DIRS}")
+set (CMD_ARGS "-Dhdf.hdf5lib.H5.loadLibraryName=${H5EX_JAVA_LIBRARY}$<$<OR:$<CONFIG:Debug>,$<CONFIG:Developer>>:${CMAKE_DEBUG_POSTFIX}>;")
+
set (CMAKE_JAVA_CLASSPATH ".")
foreach (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH})
set (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}")
@@ -32,13 +34,18 @@ endforeach ()
foreach (example ${HDF_JAVA_EXAMPLES})
get_filename_component (example_name ${example} NAME_WE)
- file (WRITE ${PROJECT_BINARY_DIR}/Manifest.txt
+ file (WRITE ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
"Main-Class: ${example_name}
Class-Path: ${HDFJAVA_CLASSJARS}
"
)
- add_jar (${EXAMPLE_VARNAME}_${example_name} SOURCES ${example} MANIFEST ${PROJECT_BINARY_DIR}/Manifest.txt)
+ add_jar (${EXAMPLE_VARNAME}_${example_name}
+ SOURCES ${example}
+ MANIFEST ${PROJECT_BINARY_DIR}/${example_name}_Manifest.txt
+ )
get_target_property (${EXAMPLE_VARNAME}_${example_name}_JAR_FILE ${EXAMPLE_VARNAME}_${example_name} JAR_FILE)
+ get_target_property (${EXAMPLE_VARNAME}_${example_name}_CLASSPATH ${EXAMPLE_VARNAME}_${example_name} CLASSDIR)
+ add_dependencies (${EXAMPLE_VARNAME}_${example_name} ${H5EX_JAVA_LIBRARIES})
endforeach ()
if (H5EX_BUILD_TESTING)
@@ -46,9 +53,9 @@ if (H5EX_BUILD_TESTING)
add_test (
NAME ${EXAMPLE_VARNAME}_jnative-h5-${resultfile}
COMMAND "${CMAKE_COMMAND}"
- -D "TEST_TESTER=${CMAKE_Java_RUNTIME}"
+ -D "TEST_TESTER=${CMAKE_Java_RUNTIME};${CMAKE_Java_RUNTIME_FLAGS}"
-D "TEST_PROGRAM=${resultfile}"
- -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_ARGS:STRING=${ARGN};${CMD_ARGS}"
-D "TEST_CLASSPATH:STRING=${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${EXAMPLE_VARNAME}_${resultfile}_JAR_FILE}"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
diff --git a/HDF5Examples/config/cmake/HDFExampleMacros.cmake b/HDF5Examples/config/cmake/HDFExampleMacros.cmake
index d9bf67f..82fd8ac 100644
--- a/HDF5Examples/config/cmake/HDFExampleMacros.cmake
+++ b/HDF5Examples/config/cmake/HDFExampleMacros.cmake
@@ -1,3 +1,15 @@
+#
+# Copyright by The HDF Group.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://www.hdfgroup.org/licenses.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+#
+
#-------------------------------------------------------------------------------
macro (BASIC_SETTINGS varname)
string (TOUPPER ${varname} EXAMPLE_PACKAGE_VARNAME)
@@ -17,35 +29,7 @@ macro (BASIC_SETTINGS varname)
#-----------------------------------------------------------------------------
# Setup output Directories
#-----------------------------------------------------------------------------
- if (NOT ${EXAMPLE_PACKAGE_NAME}_EXTERNALLY_CONFIGURED)
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Executables."
- )
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Libraries"
- )
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all static libraries."
- )
- set (CMAKE_Fortran_MODULE_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all fortran modules."
- )
- get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
- if(_isMultiConfig)
- set (CMAKE_TEST_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE})
- set (CMAKE_PDB_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all pdb files."
- )
- else ()
- set (CMAKE_TEST_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
- endif ()
- else ()
- # if we are externally configured, but the project uses old cmake scripts
- # this may not be set
- if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
- endif ()
- endif ()
+ SET_HDF_OUTPUT_DIRS(${EXAMPLE_PACKAGE_NAME})
#-----------------------------------------------------------------------------
# Option to use Shared/Static libs, default is static
@@ -63,9 +47,13 @@ macro (BASIC_SETTINGS varname)
set (CMAKE_C_STANDARD 99)
set (CMAKE_C_STANDARD_REQUIRED TRUE)
- set (CMAKE_CXX_STANDARD 98)
- set (CMAKE_CXX_STANDARD_REQUIRED TRUE)
- set (CMAKE_CXX_EXTENSIONS OFF)
+ if (HDF_BUILD_CPP_LIB)
+ ENABLE_LANGUAGE (CXX)
+
+ set (CMAKE_CXX_STANDARD 98)
+ set (CMAKE_CXX_STANDARD_REQUIRED TRUE)
+ set (CMAKE_CXX_EXTENSIONS OFF)
+ endif ()
#-----------------------------------------------------------------------------
# Compiler specific flags : Shouldn't there be compiler tests for these
@@ -73,7 +61,7 @@ macro (BASIC_SETTINGS varname)
if (CMAKE_COMPILER_IS_GNUCC)
set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
endif ()
- if (CMAKE_COMPILER_IS_GNUCXX)
+ if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX)
set (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS}")
endif ()
@@ -84,7 +72,7 @@ macro (BASIC_SETTINGS varname)
if (CMAKE_COMPILER_IS_GNUCC)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0")
endif ()
- if (CMAKE_COMPILER_IS_GNUCXX)
+ if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0")
endif ()
@@ -99,8 +87,10 @@ macro (BASIC_SETTINGS varname)
set (HDF_WARNINGS_BLOCKED 1)
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")
+ if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX)
+ string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w")
+ endif ()
endif ()
if (WIN32)
add_definitions (-D_CRT_SECURE_NO_WARNINGS)
@@ -114,7 +104,9 @@ macro (BASIC_SETTINGS varname)
# Most compilers use -w to suppress warnings.
if (NOT HDF_WARNINGS_BLOCKED)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
+ if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX)
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
+ endif ()
endif ()
endif ()
@@ -233,7 +225,9 @@ macro (HDF5_SUPPORT)
if (HDF_BUILD_JAVA)
if (${HDF5_BUILD_JAVA} AND HDF5_Java_FOUND)
set (CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH};${HDF5_JAVA_INCLUDE_DIRS}")
- message (STATUS "HDF5 jars:${HDF5_JAVA_INCLUDE_DIRS}}")
+ set (H5EX_JAVA_LIBRARY ${HDF5_JAVA_LIBRARY})
+ set (H5EX_JAVA_LIBRARIES ${HDF5_JAVA_LIBRARY})
+ message (STATUS "HDF5 lib:${H5EX_JAVA_LIBRARY} jars:${HDF5_JAVA_INCLUDE_DIRS}}")
else ()
set (HDF_BUILD_JAVA OFF CACHE BOOL "Build Java support" FORCE)
message (STATUS "HDF5 Java libs not found - disable build of Java examples")
@@ -285,11 +279,6 @@ macro (HDF5_SUPPORT)
else ()
set (H5_LIB_TYPE STATIC)
endif ()
-
- #-----------------------------------------------------------------------------
- # Option to build filter examples
- #-----------------------------------------------------------------------------
- option (HDF_BUILD_FILTERS "Test filter support" OFF)
endmacro ()
#-------------------------------------------------------------------------------
diff --git a/HDF5Examples/config/cmake/HDFMacros.cmake b/HDF5Examples/config/cmake/HDFMacros.cmake
index 9ce592d..66a25aa 100644
--- a/HDF5Examples/config/cmake/HDFMacros.cmake
+++ b/HDF5Examples/config/cmake/HDFMacros.cmake
@@ -1,3 +1,50 @@
+#
+# Copyright by The HDF Group.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://www.hdfgroup.org/licenses.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+#
+
+#-------------------------------------------------------------------------------
+# Setup output Directories
+#-----------------------------------------------------------------------------
+macro (SET_HDF_OUTPUT_DIRS package_prefix)
+ if (NOT ${package_prefix}_EXTERNALLY_CONFIGURED)
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY
+ ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Executables."
+ )
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY
+ ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Libraries"
+ )
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
+ ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all static libraries."
+ )
+ set (CMAKE_Fortran_MODULE_DIRECTORY
+ ${PROJECT_BINARY_DIR}/mod CACHE PATH "Single Directory for all fortran modules."
+ )
+ get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+ if(_isMultiConfig)
+ set (CMAKE_TEST_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${HDF_CFG_NAME})
+ set (CMAKE_PDB_OUTPUT_DIRECTORY
+ ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all pdb files."
+ )
+ else ()
+ set (CMAKE_TEST_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+ endif ()
+ else ()
+ # if we are externally configured, but the project uses old cmake scripts
+ # this may not be set and utilities like H5detect will fail
+ if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
+ endif ()
+ endif ()
+endmacro ()
+
#-------------------------------------------------------------------------------
macro (SET_HDF_BUILD_TYPE)
get_property (_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
@@ -157,38 +204,7 @@ macro (HDF_DIR_PATHS package_prefix)
SET_HDF_BUILD_TYPE()
-#-----------------------------------------------------------------------------
-# Setup output Directories
-#-----------------------------------------------------------------------------
- if (NOT ${package_prefix}_EXTERNALLY_CONFIGURED)
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Executables."
- )
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Libraries"
- )
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all static libraries."
- )
- set (CMAKE_Fortran_MODULE_DIRECTORY
- ${PROJECT_BINARY_DIR}/mod CACHE PATH "Single Directory for all fortran modules."
- )
- get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
- if(_isMultiConfig)
- set (CMAKE_TEST_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${HDF_CFG_NAME})
- set (CMAKE_PDB_OUTPUT_DIRECTORY
- ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all pdb files."
- )
- else ()
- set (CMAKE_TEST_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
- endif ()
- else ()
- # if we are externally configured, but the project uses old cmake scripts
- # this may not be set and utilities like H5detect will fail
- if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
- endif ()
- endif ()
+ SET_HDF_OUTPUT_DIRS(${package_prefix})
include (FetchContent)
endmacro ()
diff --git a/HDF5Examples/config/cmake/UseJava.cmake b/HDF5Examples/config/cmake/UseJava.cmake
index 2783cb6..b4af653 100644
--- a/HDF5Examples/config/cmake/UseJava.cmake
+++ b/HDF5Examples/config/cmake/UseJava.cmake
@@ -6,7 +6,7 @@ UseJava
This file provides support for ``Java``. It is assumed that
:module:`FindJava` has already been loaded. See :module:`FindJava` for
-information on how to load Java into your ``CMake`` project.
+information on how to load Java into your CMake project.
Synopsis
^^^^^^^^
@@ -42,6 +42,7 @@ Creating And Installing JARs
add_jar(<target_name>
[SOURCES] <source1> [<source2>...] [<resource1>...]
+ [RESOURCES NAMESPACE <ns1> <resource1>... [NAMESPACE <nsX> <resourceX>...]... ]
[INCLUDE_JARS <jar1> [<jar2>...]]
[ENTRY_POINT <entry>]
[VERSION <version>]
@@ -64,6 +65,34 @@ Creating And Installing JARs
.. versionadded:: 3.4
Support for response files, prefixed by ``@``.
+ ``RESOURCES``
+ .. versionadded:: 3.21
+
+ Adds the named ``<resource>`` files to the jar by stripping the source file
+ path and placing the file beneath ``<ns>`` within the jar.
+
+ For example::
+
+ RESOURCES NAMESPACE "/com/my/namespace" "a/path/to/resource.txt"
+
+ results in a resource accessible via ``/com/my/namespace/resource.txt``
+ within the jar.
+
+ Resources may be added without adjusting the namespace by adding them to
+ the list of ``SOURCES`` (original behavior), in this case, resource
+ paths must be relative to ``CMAKE_CURRENT_SOURCE_DIR``. Adding resources
+ without using the ``RESOURCES`` parameter in out of source builds will
+ almost certainly result in confusion.
+
+ .. note::
+
+ Adding resources via the ``SOURCES`` parameter relies upon a hard-coded
+ list of file extensions which are tested to determine whether they
+ compile (e.g. File.java). ``SOURCES`` files which match the extensions
+ are compiled. Files which do not match are treated as resources. To
+ include uncompiled resources matching those file extensions use
+ the ``RESOURCES`` parameter.
+
``INCLUDE_JARS``
The list of jars are added to the classpath when compiling the java sources
and also to the dependencies of the target. ``INCLUDE_JARS`` also accepts
@@ -264,7 +293,7 @@ Header Generation
.. deprecated:: 3.11
This command will no longer be supported starting with version 10 of the JDK
- due to the `suppression of javah tool <http://openjdk.java.net/jeps/313>`_.
+ due to the `suppression of javah tool <https://openjdk.org/jeps/313>`_.
The :ref:`add_jar(GENERATE_NATIVE_HEADERS) <add_jar>` command should be
used instead.
@@ -526,6 +555,7 @@ function (__java_copy_file src dest comment)
${dest}
DEPENDS ${src}
COMMENT ${comment}
+ VERBATIM
)
endfunction ()
@@ -552,6 +582,58 @@ function(__java_export_jar VAR TARGET PATH)
set(${VAR} "${${VAR}}" PARENT_SCOPE)
endfunction()
+function(__java_copy_resource_namespaces VAR DEST JAVA_RESOURCE_FILES JAVA_RESOURCE_FILES_RELATIVE)
+
+ set(_ns_ID "")
+ set(_ns_VAL "")
+
+ foreach(_item IN LISTS VAR)
+ if(NOT _ns_ID)
+ if(NOT _item STREQUAL "NAMESPACE")
+ message(FATAL_ERROR "UseJava: Expecting \"NAMESPACE\", got\t\"${_item}\"")
+ return()
+ endif()
+ endif()
+
+ if(_item STREQUAL "NAMESPACE")
+ set(_ns_VAL "") # Prepare for next namespace
+ set(_ns_ID "${_item}")
+ continue()
+ endif()
+
+ if( NOT _ns_VAL)
+ # we're expecting the next token to be a namespace value
+ # whatever it is, we're treating it like a namespace
+ set(_ns_VAL "${_item}")
+ continue()
+ endif()
+
+ if(_ns_ID AND _ns_VAL)
+ # We're expecting a file name, check to see if we got one
+ cmake_path(ABSOLUTE_PATH _item OUTPUT_VARIABLE _test_file_name)
+ if (NOT EXISTS "${_test_file_name}")
+ message(FATAL_ERROR "UseJava: File does not exist:\t${_item}")
+ return()
+ endif()
+ endif()
+
+ cmake_path(ABSOLUTE_PATH _item OUTPUT_VARIABLE _abs_file_name)
+ cmake_path(GET _item FILENAME _resource_file_name)
+ set(_dest_resource_file_name "${_ns_VAL}/${_resource_file_name}" )
+
+ __java_copy_file( ${_abs_file_name}
+ ${DEST}/${_dest_resource_file_name}
+ "Copying ${_item} to the build directory")
+
+ list(APPEND RESOURCE_FILES_LIST ${DEST}/${_dest_resource_file_name})
+ list(APPEND RELATIVE_RESOURCE_FILES_LIST ${_dest_resource_file_name})
+
+ endforeach()
+
+ set(${JAVA_RESOURCE_FILES} "${RESOURCE_FILES_LIST}" PARENT_SCOPE)
+ set(${JAVA_RESOURCE_FILES_RELATIVE} "${RELATIVE_RESOURCE_FILES_LIST}" PARENT_SCOPE)
+endfunction()
+
# define helper scripts
set(_JAVA_EXPORT_TARGETS_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/javaTargets.cmake.in)
set(_JAVA_CLASS_FILELIST_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/UseJavaClassFilelist.cmake)
@@ -746,6 +828,13 @@ function(add_jar _TARGET_NAME)
endif ()
endforeach()
+ if(_add_jar_RESOURCES) # Process RESOURCES if it exists
+ __java_copy_resource_namespaces("${_add_jar_RESOURCES}"
+ ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+ _JAVA_RESOURCE_FILES
+ _JAVA_RESOURCE_FILES_RELATIVE)
+ endif()
+
foreach(_JAVA_INCLUDE_JAR IN LISTS _add_jar_INCLUDE_JARS)
if (TARGET ${_JAVA_INCLUDE_JAR})
get_target_property(_JAVA_JAR_PATH ${_JAVA_INCLUDE_JAR} JAR_FILE)
@@ -795,6 +884,7 @@ function(add_jar _TARGET_NAME)
DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Building Java objects for ${_TARGET_NAME}.jar"
+ VERBATIM
)
add_custom_command(
OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
@@ -804,6 +894,7 @@ function(add_jar _TARGET_NAME)
-P ${_JAVA_CLASS_FILELIST_SCRIPT}
DEPENDS ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ VERBATIM
)
else ()
# create an empty java_class_filelist
@@ -834,6 +925,7 @@ function(add_jar _TARGET_NAME)
DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+ VERBATIM
)
else ()
add_custom_command(
@@ -849,6 +941,7 @@ function(add_jar _TARGET_NAME)
WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+ VERBATIM
)
endif ()
diff --git a/HDF5Examples/config/cmake/jrunTest.cmake b/HDF5Examples/config/cmake/jrunTest.cmake
index 2d91ee2..d7d83d4 100644
--- a/HDF5Examples/config/cmake/jrunTest.cmake
+++ b/HDF5Examples/config/cmake/jrunTest.cmake
@@ -1,3 +1,14 @@
+#
+# Copyright by The HDF Group.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://www.hdfgroup.org/licenses.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+#
# jrunTest.cmake executes a command and captures the output in a file. File is then compared
# against a reference file. Exit status of command can also be compared.
cmake_policy(SET CMP0007 NEW)
@@ -36,7 +47,12 @@ else ()
set (LOG_LEVEL "${TEST_LOG_LEVEL}")
endif ()
-message (STATUS "COMMAND: ${TEST_TESTER} -Xmx1024M -Djava.library.path=\"${TEST_LIBRARY_DIRECTORY}\" -cp \"${TEST_CLASSPATH}\" ${TEST_ARGS} ${TEST_PROGRAM} ${ARGN}")
+if (NOT TEST_VOL)
+ message (STATUS "COMMAND: ${TEST_TESTER} -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=${LOG_LEVEL} -Djava.library.path=\"${TEST_LIBRARY_DIRECTORY}\" -cp \"${TEST_CLASSPATH}\" ${TEST_ARGS} ${TEST_PROGRAM} ${ARGN}")
+else ()
+ message (STATUS "USING ${TEST_VOL} ON COMMAND: ${TEST_TESTER} -Xmx1024M -Dorg.slf4j.simpleLogger.defaultLog=${LOG_LEVEL} -Djava.library.path=\"${TEST_LIBRARY_DIRECTORY}\" -cp \"${TEST_CLASSPATH}\" ${TEST_ARGS} ${TEST_PROGRAM} ${ARGN}")
+ set (ENV{HDF5_VOL_CONNECTOR} "${TEST_VOL}")
+endif ()
if (WIN32)
set (ENV{PATH} "$ENV{PATH}\\;${TEST_LIBRARY_DIRECTORY}")