Skip to content

Commit

Permalink
Reorg the examples with CMake command flows like in HDF5 (HDFGroup#469)
Browse files Browse the repository at this point in the history
* Reorg examples folder and use techniques from HDF5 examples

* Move files to examples

* remove java examples references
  • Loading branch information
byrnHDF authored Jan 31, 2024
1 parent 52a05af commit 427aa23
Show file tree
Hide file tree
Showing 208 changed files with 904 additions and 727 deletions.
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
cmake_minimum_required (VERSION 3.12)
project (HDF4Examples_HDF_AN C)
project (HDF4Examples_AN C)

#-----------------------------------------------------------------------------
# Define Sources
#-----------------------------------------------------------------------------
include (C_sourcefiles.cmake)

foreach (example ${h4examples})
get_filename_component (example_name ${example} NAME_WE)
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/${example})
foreach (example_name ${h4examples})
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/h4ex_${example_name}.c)
target_link_libraries (hdf_${example_name} ${H4EX_HDF4_LINK_LIBS})
endforeach ()

foreach (example ${h4examples_use})
get_filename_component (example_name ${example} NAME_WE)
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/${example})
foreach (example_name ${h4examples_use})
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/h4ex_${example_name}.c)
target_link_libraries (hdf_${example_name} ${H4EX_HDF4_LINK_LIBS})
endforeach ()

Expand Down Expand Up @@ -56,39 +54,37 @@ if (H4EX_BUILD_TESTING)
endif ()
endmacro ()

foreach (example ${h4examples})
get_filename_component (example_name ${example} NAME_WE)
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/${example_name}")
foreach (example_name ${h4examples})
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/h4ex_${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/h4ex_${example_name}")
add_custom_command (
OUTPUT "${testdest}.tst"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${testsrc}.tst" "${testdest}.tst"
DEPENDS "${testsrc}.tst"
)
list (APPEND HDF4Examples_HDF_AN_TEST_FILES "${testdest}.tst")
list (APPEND HDF4Examples_AN_TEST_FILES "${testdest}.tst")
if (HDF4_BUILD_TOOLS)
add_custom_command (
OUTPUT "${testdest}.ddl"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${testsrc}.ddl" "${testdest}.ddl"
DEPENDS "${testsrc}.ddl"
)
list (APPEND HDF4Examples_HDF_AN_TEST_FILES "${testdest}.ddl")
list (APPEND HDF4Examples_AN_TEST_FILES "${testdest}.ddl")
endif ()
endforeach ()

foreach (example ${h4examples_use})
get_filename_component (example_name ${example} NAME_WE)
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/${example_name}")
foreach (example_name ${h4examples_use})
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/h4ex_${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/h4ex_${example_name}")
add_custom_command (
OUTPUT "${testdest}.tst"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${testsrc}.tst" "${testdest}.tst"
DEPENDS "${testsrc}.tst"
)
list (APPEND HDF4Examples_HDF_AN_TEST_FILES "${testdest}.tst")
list (APPEND HDF4Examples_AN_TEST_FILES "${testdest}.tst")
endforeach ()

foreach (ex_file ${h4examples_files})
Expand All @@ -100,19 +96,17 @@ if (H4EX_BUILD_TESTING)
ARGS -E copy_if_different "${testsrc}" "${testdest}"
DEPENDS "${testsrc}"
)
list (APPEND HDF4Examples_HDF_AN_TEST_FILES "${testdest}")
list (APPEND HDF4Examples_AN_TEST_FILES "${testdest}")
endforeach ()

add_custom_target (HDF4Examples_HDF_AN-files ALL COMMENT "Copying files needed by AN tests"
DEPENDS ${HDF4Examples_HDF_AN_TEST_FILES})
DEPENDS ${HDF4Examples_AN_TEST_FILES})

foreach (example ${h4examples})
get_filename_component (example_name ${example} NAME_WE)
foreach (example_name ${h4examples})
ADD_H4_TEST (${example_name} 1 dumpvg)
endforeach ()

foreach (example ${h4examples_use})
get_filename_component (example_name ${example} NAME_WE)
foreach (example_name ${h4examples_use})
ADD_H4_TEST (${example_name} 0 dumpvg)
endforeach ()
endif ()
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
# Define Sources, one file per application
#-----------------------------------------------------------------------------
set (h4examples
h4ex_AN_create_annotation.c
AN_create_annotation
)
set (h4examples_use
h4ex_AN_get_annotation_info.c
h4ex_AN_read_annotation.c
AN_get_annotation_info
AN_read_annotation
)
set (h4examples_files
General_HDFobjects.hdf
Expand Down
File renamed without changes.
11 changes: 11 additions & 0 deletions HDF4Examples/C/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cmake_minimum_required (VERSION 3.12)
project (HDF4Examples_C C)

#-----------------------------------------------------------------------------
# Define Sources
#-----------------------------------------------------------------------------
add_subdirectory (${PROJECT_SOURCE_DIR}/AN)
add_subdirectory (${PROJECT_SOURCE_DIR}/GR)
add_subdirectory (${PROJECT_SOURCE_DIR}/VD)
add_subdirectory (${PROJECT_SOURCE_DIR}/VG)
add_subdirectory (${PROJECT_SOURCE_DIR}/SD)
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
cmake_minimum_required (VERSION 3.12)
project (HDF4Examples_HDF_GR C)
project (HDF4Examples_GR C)

#-----------------------------------------------------------------------------
# Define Sources
#-----------------------------------------------------------------------------
include (C_sourcefiles.cmake)

foreach (example ${h4examples})
get_filename_component (example_name ${example} NAME_WE)
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/${example})
foreach (example_name ${h4examples})
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/h4ex_${example_name}.c)
target_link_libraries (hdf_${example_name} ${H4EX_HDF4_LINK_LIBS})
endforeach ()

foreach (example ${h4examples_use})
get_filename_component (example_name ${example} NAME_WE)
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/${example})
foreach (example_name ${h4examples_use})
add_executable (hdf_${example_name} ${PROJECT_SOURCE_DIR}/h4ex_${example_name}.c)
target_link_libraries (hdf_${example_name} ${H4EX_HDF4_LINK_LIBS})
endforeach ()

Expand Down Expand Up @@ -56,39 +54,37 @@ if (H4EX_BUILD_TESTING)
endif ()
endmacro ()

foreach (example ${h4examples})
get_filename_component (example_name ${example} NAME_WE)
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/${example_name}")
foreach (example_name ${h4examples})
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/h4ex_${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/h4ex_${example_name}")
add_custom_command (
OUTPUT "${testdest}.tst"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${testsrc}.tst" "${testdest}.tst"
DEPENDS "${testsrc}.tst"
)
list (APPEND HDF4Examples_HDF_GR_TEST_FILES "${testdest}.tst")
list (APPEND HDF4Examples_GR_TEST_FILES "${testdest}.tst")
if (HDF4_BUILD_TOOLS)
add_custom_command (
OUTPUT "${testdest}.ddl"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${testsrc}.ddl" "${testdest}.ddl"
DEPENDS "${testsrc}.ddl"
)
list (APPEND HDF4Examples_HDF_GR_TEST_FILES "${testdest}.ddl")
list (APPEND HDF4Examples_GR_TEST_FILES "${testdest}.ddl")
endif ()
endforeach ()

foreach (example ${h4examples_use})
get_filename_component (example_name ${example} NAME_WE)
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/${example_name}")
foreach (example_name ${h4examples_use})
set (testsrc "${PROJECT_SOURCE_DIR}/testfiles/h4ex_${example_name}")
set (testdest "${PROJECT_BINARY_DIR}/h4ex_${example_name}")
add_custom_command (
OUTPUT "${testdest}.tst"
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${testsrc}.tst" "${testdest}.tst"
DEPENDS "${testsrc}.tst"
)
list (APPEND HDF4Examples_HDF_GR_TEST_FILES "${testdest}.tst")
list (APPEND HDF4Examples_GR_TEST_FILES "${testdest}.tst")
endforeach ()

foreach (ex_file ${h4examples_files})
Expand All @@ -100,19 +96,17 @@ if (H4EX_BUILD_TESTING)
ARGS -E copy_if_different "${testsrc}" "${testdest}"
DEPENDS "${testsrc}"
)
list (APPEND HDF4Examples_HDF_GR_TEST_FILES "${testdest}")
list (APPEND HDF4Examples_GR_TEST_FILES "${testdest}")
endforeach ()

add_custom_target (HDF4Examples_HDF_GR-files ALL COMMENT "Copying files needed by GR tests"
DEPENDS ${HDF4Examples_HDF_GR_TEST_FILES})
DEPENDS ${HDF4Examples_GR_TEST_FILES})

foreach (example ${h4examples})
get_filename_component (example_name ${example} NAME_WE)
foreach (example_name ${h4examples})
ADD_H4_TEST (${example_name} 1 dumpvg)
endforeach ()

foreach (example ${h4examples_use})
get_filename_component (example_name ${example} NAME_WE)
foreach (example_name ${h4examples_use})
ADD_H4_TEST (${example_name} 0 dumpvg)
endforeach ()
endif ()
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
# Define Sources, one file per application
#-----------------------------------------------------------------------------
set (h4examples
h4ex_GR_create_and_write_chunked_image.c
h4ex_GR_create_and_write_image.c
h4ex_GR_write_palette.c
GR_create_and_write_chunked_image
GR_create_and_write_image
GR_write_palette
)
set (h4examples_use
h4ex_GR_get_attribute.c
h4ex_GR_image_info.c
h4ex_GR_modify_image.c
h4ex_GR_read_image.c
h4ex_GR_read_palette.c
h4ex_GR_set_attribute.c
GR_get_attribute
GR_image_info
GR_modify_image
GR_read_image
GR_read_palette
GR_set_attribute
)
set (h4examples_files
General_RImages.hdf
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ INSTALL_FILES= h4ex_VD_create_vdatas.c h4ex_VD_write_mixed_vdata.c \
h4ex_AN_create_annotation.c h4ex_AN_get_annotation_info.c h4ex_AN_read_annotation.c

# Where to install example files
EXAMPLEDIR=$(prefix)/examples/hdf
EXAMPLEDIR=$(prefix)/HDF4Examples/C

# How to build C programs using h4cc
$(EXTRA_PROG): $(H4CC)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.12)
project (HDF4Examples_MFHDF C)
project (HDF4Examples_SD C)

#-----------------------------------------------------------------------------
# Define Sources
Expand Down Expand Up @@ -27,9 +27,8 @@ if (H4EX_BUILD_TESTING)
set (last_test "MFHDF_EXAMPLES-clearall-objects")
endif ()

foreach (example ${examples})
get_filename_component (example_name ${example} NAME_WE)
add_executable (mf_${example_name} ${PROJECT_SOURCE_DIR}/${example})
foreach (example_name ${examples})
add_executable (mf_${example_name} ${PROJECT_SOURCE_DIR}/h4ex_${example_name}.c)
target_link_libraries (mf_${example_name} ${H4EX_HDF4_LINK_LIBS})
if (H4EX_BUILD_TESTING)
add_test (
Expand Down
21 changes: 21 additions & 0 deletions HDF4Examples/C/SD/C_sourcefiles.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#-----------------------------------------------------------------------------
# Define Sources, one file per application
#-----------------------------------------------------------------------------
set (examples
SD_create_sds
SD_write_to_sds
SD_write_slab
SD_alter_sds_values
SD_unlimited_sds
SD_compress_sds
SD_mv_sds_to_external
SD_read_from_sds
SD_read_subsets
SD_get_info
SD_find_sds_by_name
SD_set_get_dim_info
SD_dimscale_vs_sds
SD_set_attr
SD_get_attr
SD_chunking_example
)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit 427aa23

Please sign in to comment.