Skip to content

Commit 1c7e633

Browse files
Merge branch 'HDFGroup:develop' into changelog_LC_final_edits
2 parents c039cc8 + 26a76ba commit 1c7e633

File tree

139 files changed

+21036
-2891
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+21036
-2891
lines changed

.devcontainer/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
FROM mcr.microsoft.com/devcontainers/base:debian
1+
FROM mcr.microsoft.com/devcontainers/base:ubuntu
22

33
RUN apt-get update && apt-get -y install --no-install-recommends \
4-
build-essential cmake cmake-curses-gui default-jdk doxygen gfortran git graphviz \
4+
build-essential clang cmake cmake-curses-gui default-jdk doxygen gfortran git graphviz \
55
less libtool-bin libyajl-dev mpi-default-dev ninja-build pkg-config valgrind wget

.github/workflows/call-workflows.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ jobs:
8484
thread_safety: ""
8585
build_mode: "Debug"
8686

87+
call-release-cross:
88+
name: "Release Cross Compile Workflows"
89+
uses: ./.github/workflows/cross-compile.yml
90+
with:
91+
build_mode: "Release"
92+
8793
call-release-cmake:
8894
name: "Release Workflows"
8995
uses: ./.github/workflows/main.yml
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: hdf5 dev CMake CI
2+
3+
# Triggers the workflow on a call from another workflow
4+
on:
5+
workflow_call:
6+
inputs:
7+
build_mode:
8+
description: "release vs. debug build"
9+
required: true
10+
type: string
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
build_and_test_linux:
17+
name: "Ubuntu mingw64-${{ inputs.build_mode }}"
18+
runs-on: ubuntu-24.04
19+
steps:
20+
- name: Install CMake Dependencies (Linux)
21+
run: |
22+
sudo apt-get update
23+
sudo apt-get install ninja-build graphviz
24+
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
25+
26+
- name: Install Wine64 and dependencies
27+
run: |
28+
sudo apt update
29+
sudo apt install -y wine64 winbind
30+
31+
# - name: Verify Wine64 installation
32+
# run: wine64 --version
33+
34+
- name: Install MinGW64 Cross-Compiler
35+
run: |
36+
sudo apt update
37+
sudo apt-get install -y mingw-w64
38+
sudo apt-get install gfortran-mingw-w64-x86-64-win32
39+
40+
- name: Install Dependencies
41+
uses: ssciwr/doxygen-install@v1
42+
with:
43+
version: "1.13.2"
44+
45+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
46+
- name: Get Sources
47+
uses: actions/[email protected]
48+
49+
# CMAKE CONFIGURE
50+
- name: CMake Configure
51+
run: |
52+
mkdir "${{ runner.workspace }}/build"
53+
cd "${{ runner.workspace }}/build"
54+
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
55+
-G Ninja \
56+
--log-level=VERBOSE \
57+
-DCMAKE_TOOLCHAIN_FILE:STRING=config/toolchain/mingw64.cmake \
58+
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
59+
-DHDF5_ENABLE_DOXY_WARNINGS:BOOL=ON \
60+
-DHDF5_BUILD_DOC:BOOL=ON \
61+
-DHDF5_BUILD_JAVA:BOOL=OFF \
62+
-DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OFF \
63+
-DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON \
64+
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=ON \
65+
-DLIBAEC_USE_LOCALCONTENT:BOOL=OFF \
66+
-DZLIB_USE_LOCALCONTENT:BOOL=OFF \
67+
-DHDF5_PACK_EXAMPLES:BOOL=ON \
68+
-DHDF5_PACKAGE_EXTLIBS:BOOL=ON \
69+
-DHDF5_TEST_API:BOOL=OFF \
70+
-DHDF5_USE_PREGEN:BOOL=ON \
71+
$GITHUB_WORKSPACE
72+
shell: bash
73+
74+
# BUILD
75+
- name: CMake Build
76+
run: cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
77+
working-directory: ${{ runner.workspace }}/build
78+
79+
# RUN TESTS
80+
# - name: CMake Run Tests
81+
# run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V -E "err_compat|filenotclosed|swmr|cache_api"
82+
# working-directory: ${{ runner.workspace }}/build
83+
84+
# RUN Failing TESTS
85+
# - name: CMake Run Tests
86+
# run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V -R "err_compat|filenotclosed|swmr|cache_api"
87+
# working-directory: ${{ runner.workspace }}/build
88+
# continue-on-error: true
89+
90+
- name: CMake Run Package
91+
run: cpack -C ${{ inputs.build_mode }} -V
92+
working-directory: ${{ runner.workspace }}/build
93+
94+
- name: List files in the space
95+
run: |
96+
ls -l ${{ runner.workspace }}/build
97+
98+
- name: Save published binary (linux)
99+
uses: actions/upload-artifact@v4
100+
with:
101+
name: tgz-ubuntu-2404_mingw64-${{ inputs.build_mode }}-binary
102+
path: ${{ runner.workspace }}/build/HDF5-*-win64.zip
103+
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
104+
if: ${{ inputs.build_mode != 'Debug' }}

.github/workflows/nvhpc.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ jobs:
1717
name: "nvhpc ${{ inputs.build_mode }}"
1818
runs-on: ubuntu-latest
1919
env:
20-
CUDAVERDOT: "12.9"
21-
NVERDOT: "25.7"
22-
NVERDASH: "25-7"
20+
CUDAVERDOT: "13.0"
21+
NVERDOT: "25.9"
22+
NVERDASH: "25-9"
2323

2424
steps:
2525
- name: Get Sources
@@ -54,15 +54,15 @@ jobs:
5454
echo "OMPI_CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/compilers/bin/nvc++" >> $GITHUB_ENV
5555
echo "OMPI_CC=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/compilers/bin/nvc" >> $GITHUB_ENV
5656
echo "OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/compilers/bin/nvfortran" >> $GITHUB_ENV
57-
echo "CC=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/comm_libs/openmpi4/bin/mpicc" >> $GITHUB_ENV
58-
echo "FC=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/comm_libs/openmpi4/bin/mpifort" >> $GITHUB_ENV
57+
echo "CC=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/comm_libs/hpcx/bin/mpicc" >> $GITHUB_ENV
58+
echo "FC=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/comm_libs/hpcx/bin/mpifort" >> $GITHUB_ENV
5959
echo "LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/cuda/${{ env.CUDAVERDOT }}/lib64:/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/compilers/lib" >> $GITHUB_ENV
6060
echo "DESTDIR=/tmp" >> $GITHUB_ENV
6161
6262
- name: Configure
6363
shell: bash
6464
run: |
65-
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/compilers/bin:$PATH
65+
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/comm_libs/hpcx/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/${{ env.NVERDOT }}/compilers/bin:$PATH
6666
mkdir "${{ runner.workspace }}/build"
6767
cd "${{ runner.workspace }}/build"
6868
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja \
@@ -100,5 +100,6 @@ jobs:
100100
- name: Run Parallel Tests
101101
shell: bash
102102
run: |
103+
export UCX_WARN_UNUSED_ENV_VARS=n
103104
ctest . -R MPI_TEST -E "_by_chunk|_by_pattern" -C ${{ inputs.build_mode }} -V
104105
working-directory: ${{ runner.workspace }}/build

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,12 @@ set (HDF5_DOXYGEN_DIR ${HDF5_SOURCE_DIR}/doxygen)
325325

326326
set (HDF5_SRC_INCLUDE_DIRS ${HDF5_SRC_DIR})
327327

328+
if (HDF5_USE_PREGEN)
329+
set (HDF5_GENERATED_SOURCE_DIR ${HDF5_USE_PREGEN_DIR})
330+
else ()
331+
set (HDF5_GENERATED_SOURCE_DIR ${HDF5_F90_SRC_BINARY_DIR})
332+
endif ()
333+
328334
#-----------------------------------------------------------------------------
329335
# parse the full version number from H5public.h and include in H5_VERS_INFO
330336
#-----------------------------------------------------------------------------

HDF5Examples/C/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ add_subdirectory (${PROJECT_SOURCE_DIR}/H5T)
1111

1212
if (${H5_LIBVER_DIR} GREATER 16)
1313
# add_subdirectory (${PROJECT_SOURCE_DIR}/Perf)
14-
if (USE_SHARED_LIBS AND H5EX_BUILD_FILTERS AND HDF5_PROVIDES_PLUGIN_SUPPORT)
14+
if (USE_SHARED_LIBS AND H5EXAMPLE_BUILD_FILTERS AND HDF5_PROVIDES_PLUGIN_SUPPORT)
1515
add_subdirectory (${PROJECT_SOURCE_DIR}/H5FLT)
1616
endif ()
1717
endif ()
@@ -20,12 +20,12 @@ if (${H5_LIBVER_DIR} GREATER 110)
2020
add_subdirectory (${PROJECT_SOURCE_DIR}/H5VDS)
2121
endif ()
2222

23-
if (H5EX_ENABLE_PARALLEL AND H5_HAVE_PARALLEL AND HDF5_PROVIDES_PARALLEL)
23+
if (H5EXAMPLE_ENABLE_PARALLEL AND H5_HAVE_PARALLEL AND HDF5_PROVIDES_PARALLEL)
2424
add_subdirectory (${PROJECT_SOURCE_DIR}/H5PAR)
2525
endif ()
2626

2727
#-- Add High Level Examples
28-
if (H5EX_BUILD_HL AND HDF5_PROVIDES_HL_LIB)
28+
if (H5EXAMPLE_BUILD_HL AND HDF5_PROVIDES_HL_LIB)
2929
add_subdirectory (HL)
3030
endif ()
3131

HDF5Examples/C/H5D/CMakeLists.txt

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ foreach (example_name ${common_examples})
1212
else ()
1313
add_executable (${EXAMPLE_VARNAME}_${example_name} ${PROJECT_SOURCE_DIR}/${example_name}.c)
1414
endif ()
15-
target_compile_options(${EXAMPLE_VARNAME}_${example_name}
15+
target_compile_options (${EXAMPLE_VARNAME}_${example_name}
1616
PRIVATE
1717
"$<$<BOOL:${${EXAMPLE_VARNAME}_USE_16_API}>:-DH5_USE_16_API>"
1818
"$<$<BOOL:${${EXAMPLE_VARNAME}_USE_18_API}>:-DH5_USE_18_API>"
@@ -24,8 +24,8 @@ foreach (example_name ${common_examples})
2424
if (H5_HAVE_PARALLEL)
2525
target_include_directories (${EXAMPLE_VARNAME}_${example_name} PUBLIC ${MPI_C_INCLUDE_DIRS})
2626
endif ()
27-
target_link_libraries (${EXAMPLE_VARNAME}_${example_name} ${H5EX_HDF5_LINK_LIBS})
28-
if (H5EX_BUILD_TESTING)
27+
target_link_libraries (${EXAMPLE_VARNAME}_${example_name} ${H5EXAMPLE_HDF5_LINK_LIBS})
28+
if (H5EXAMPLE_BUILD_TESTING)
2929
add_custom_command (
3030
TARGET ${EXAMPLE_VARNAME}_${example_name}
3131
POST_BUILD
@@ -38,7 +38,7 @@ endforeach ()
3838
if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.8")
3939
foreach (example_name ${1_8_examples})
4040
add_executable (${EXAMPLE_VARNAME}_${example_name} ${PROJECT_SOURCE_DIR}/${example_name}.c)
41-
target_compile_options(${EXAMPLE_VARNAME}_${example_name}
41+
target_compile_options (${EXAMPLE_VARNAME}_${example_name}
4242
PRIVATE
4343
"$<$<BOOL:${${EXAMPLE_VARNAME}_USE_16_API}>:-DH5_USE_16_API>"
4444
"$<$<BOOL:${${EXAMPLE_VARNAME}_USE_18_API}>:-DH5_USE_18_API>"
@@ -50,8 +50,8 @@ if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.8")
5050
if (H5_HAVE_PARALLEL)
5151
target_include_directories (${EXAMPLE_VARNAME}_${example_name} PUBLIC ${MPI_C_INCLUDE_DIRS})
5252
endif ()
53-
target_link_libraries (${EXAMPLE_VARNAME}_${example_name} ${H5EX_HDF5_LINK_LIBS})
54-
if (H5EX_BUILD_TESTING)
53+
target_link_libraries (${EXAMPLE_VARNAME}_${example_name} ${H5EXAMPLE_HDF5_LINK_LIBS})
54+
if (H5EXAMPLE_BUILD_TESTING)
5555
add_custom_command (
5656
TARGET ${EXAMPLE_VARNAME}_${example_name}
5757
POST_BUILD
@@ -77,8 +77,8 @@ endif ()
7777
# if (H5_HAVE_PARALLEL)
7878
# target_include_directories (${EXAMPLE_VARNAME}_${example_name} PUBLIC ${MPI_C_INCLUDE_DIRS})
7979
# endif ()
80-
# target_link_libraries (${EXAMPLE_VARNAME}_${example_name} ${H5EX_HDF5_LINK_LIBS})
81-
# if (H5EX_BUILD_TESTING)
80+
# target_link_libraries (${EXAMPLE_VARNAME}_${example_name} ${H5EXAMPLE_HDF5_LINK_LIBS})
81+
# if (H5EXAMPLE_BUILD_TESTING)
8282
# add_custom_command (
8383
# TARGET ${EXAMPLE_VARNAME}_${example_name}
8484
# POST_BUILD
@@ -90,7 +90,7 @@ endif ()
9090
#endif ()
9191
#if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.12")
9292
# foreach (example_name ${1_12_examples})
93-
# if (H5EX_BUILD_TESTING)
93+
# if (H5EXAMPLE_BUILD_TESTING)
9494
# add_custom_command (
9595
# TARGET ${EXAMPLE_VARNAME}_${example_name}
9696
# POST_BUILD
@@ -102,7 +102,7 @@ endif ()
102102
#endif ()
103103
#if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "1.14")
104104
# foreach (example_name ${1_14_examples})
105-
# if (H5EX_BUILD_TESTING)
105+
# if (H5EXAMPLE_BUILD_TESTING)
106106
# add_custom_command (
107107
# TARGET ${EXAMPLE_VARNAME}_${example_name}
108108
# POST_BUILD
@@ -114,7 +114,7 @@ endif ()
114114
#endif ()
115115
#if (HDF5_VERSION_MAJOR VERSION_GREATER_EQUAL "2.0")
116116
# foreach (example_name ${2_0_examples})
117-
# if (H5EX_BUILD_TESTING)
117+
# if (H5EXAMPLE_BUILD_TESTING)
118118
# add_custom_command (
119119
# TARGET ${EXAMPLE_VARNAME}_${example_name}
120120
# POST_BUILD
@@ -213,47 +213,52 @@ if (HDF5_PROVIDES_TOOLS)
213213
# endforeach ()
214214
endif ()
215215

216-
if (H5EX_BUILD_TESTING)
216+
if (H5EXAMPLE_BUILD_TESTING)
217217
macro (ADD_H5_TEST testname)
218218
add_test (
219219
NAME ${EXAMPLE_VARNAME}_${testname}-clearall
220-
COMMAND ${CMAKE_COMMAND}
221-
-E remove
222-
${testname}.h5
220+
COMMAND ${CMAKE_COMMAND} -E remove ${testname}.h5
223221
)
224222
if (HDF5_ENABLE_USING_MEMCHECKER)
225-
add_test (NAME ${EXAMPLE_VARNAME}_${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:${EXAMPLE_VARNAME}_${testname}>)
226-
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
223+
add_test (NAME ${EXAMPLE_VARNAME}_${testname} COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_${testname}>)
224+
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
225+
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
226+
ENVIRONMENT "${CROSSCOMPILING_PATH}"
227+
)
227228
else ()
228229
add_test (
229230
NAME ${EXAMPLE_VARNAME}_${testname}
230231
COMMAND "${CMAKE_COMMAND}"
231-
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
232232
-D "TEST_PROGRAM=$<TARGET_FILE:${EXAMPLE_VARNAME}_${testname}>"
233233
-D "TEST_ARGS:STRING="
234234
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
235235
-D "TEST_EXPECT=0"
236236
-D "TEST_OUTPUT=${testname}.out"
237237
-D "TEST_REFERENCE=${testname}.tst"
238238
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
239-
-P "${H5EX_RESOURCES_DIR}/runTest.cmake"
239+
-P "${H5EXAMPLE_RESOURCES_DIR}/runTest.cmake"
240+
)
241+
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
242+
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
243+
ENVIRONMENT "${CROSSCOMPILING_PATH}"
240244
)
241-
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
242245
if (HDF5_PROVIDES_TOOLS)
243246
add_test (
244247
NAME ${EXAMPLE_VARNAME}_H5DUMP-${testname}
245248
COMMAND "${CMAKE_COMMAND}"
246-
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
247-
-D "TEST_PROGRAM=${H5EX_HDF5_DUMP_EXECUTABLE}"
249+
-D "TEST_PROGRAM=${H5EXAMPLE_HDF5_DUMP_EXECUTABLE}"
248250
-D "TEST_ARGS:STRING=${ARGN};${testname}.h5"
249251
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
250252
-D "TEST_OUTPUT=${testname}.ddl.out"
251253
-D "TEST_EXPECT=0"
252254
-D "TEST_REFERENCE=${testname}.ddl"
253255
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
254-
-P "${H5EX_RESOURCES_DIR}/runTest.cmake"
256+
-P "${H5EXAMPLE_RESOURCES_DIR}/runTest.cmake"
257+
)
258+
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
259+
DEPENDS ${EXAMPLE_VARNAME}_${testname}
260+
ENVIRONMENT "${CROSSCOMPILING_PATH}"
255261
)
256-
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
257262
endif ()
258263
endif ()
259264
endmacro ()

0 commit comments

Comments
 (0)