Skip to content

Commit

Permalink
Merge hdf4-examples repo into library (HDFGroup#465)
Browse files Browse the repository at this point in the history
  • Loading branch information
byrnHDF authored Dec 14, 2023
1 parent 6575843 commit 95f0462
Show file tree
Hide file tree
Showing 214 changed files with 16,937 additions and 68 deletions.
47 changes: 1 addition & 46 deletions CMakeInstallation.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -148,53 +148,8 @@ if (HDF4_PACK_EXAMPLES)
COMPONENT hdfdocuments
)

option (EXAMPLES_DOWNLOAD "Download to use released examples files" OFF)
if (EXAMPLES_DOWNLOAD)
option (EXAMPLES_USE_RELEASE_NAME "Use the released examples artifact name" OFF)
if (EXAMPLES_USE_RELEASE_NAME)
set (EXAMPLES_NAME ${EXAMPLES_TGZ_ORIGNAME})
else ()
set (EXAMPLES_NAME ${HDF4_EXAMPLES_COMPRESSED})
endif ()
if (NOT EXAMPLES_USE_LOCALCONTENT)
set (EXAMPLES_URL ${EXAMPLES_TGZ_ORIGPATH}/${EXAMPLES_NAME})
file (DOWNLOAD ${EXAMPLES_URL} ${HDF4_BINARY_DIR}/${HDF4_EXAMPLES_COMPRESSED} STATUS EX_DL)
message (STATUS "Examples file is ${EXAMPLES_URL} STATUS=${EX_DL}")
else ()
set (EXAMPLES_URL ${TGZPATH}/${EXAMPLES_NAME})
file (COPY_FILE ${EXAMPLES_URL} ${HDF4_BINARY_DIR}/${HDF4_EXAMPLES_COMPRESSED} RESULT EX_DL)
message (STATUS "Examples file is ${EXAMPLES_URL} RESULT=${EX_DL}")
endif ()
if (EXISTS "${HDF4_BINARY_DIR}/${HDF4_EXAMPLES_COMPRESSED}")
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzf ${HDF4_EXAMPLES_COMPRESSED}
WORKING_DIRECTORY ${HDF4_BINARY_DIR}
COMMAND_ECHO STDOUT
)
endif ()
else ()
if (EXISTS "${HDF4_EXAMPLES_COMPRESSED_DIR}/${HDF4_EXAMPLES_COMPRESSED}")
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzf ${HDF4_EXAMPLES_COMPRESSED_DIR}/${HDF4_EXAMPLES_COMPRESSED}
WORKING_DIRECTORY ${HDF4_BINARY_DIR}
COMMAND_ECHO STDOUT
)
endif ()
endif ()
get_filename_component (EX_LAST_EXT ${HDF4_EXAMPLES_COMPRESSED} LAST_EXT)
if (${EX_LAST_EXT} STREQUAL ".zip")
get_filename_component (EX_DIR_NAME ${HDF4_EXAMPLES_COMPRESSED} NAME_WLE)
else ()
get_filename_component (EX_DIR_NAME ${HDF4_EXAMPLES_COMPRESSED} NAME_WLE)
get_filename_component (EX_DIR_NAME ${EX_DIR_NAME} NAME_WLE)
endif ()
execute_process(
COMMAND ${CMAKE_COMMAND} -E rename ${EX_DIR_NAME} HDF4Examples
WORKING_DIRECTORY ${HDF4_BINARY_DIR}
COMMAND_ECHO STDOUT
)
install (
DIRECTORY ${HDF4_BINARY_DIR}/HDF4Examples
DIRECTORY ${HDF4_SOURCE_DIR}/HDF4Examples
DESTINATION ${HDF4_INSTALL_DATA_DIR}
USE_SOURCE_PERMISSIONS
COMPONENT hdfdocuments
Expand Down
41 changes: 20 additions & 21 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,13 @@ set (HDF4_PACKAGE_BUGREPORT "[email protected]")
set (HDF4_PACKAGE_SOVERSION "${H4_VERS_MAJOR}.${H4_VERS_RELEASE}.${H4_VERS_MINOR}")
set (HDF4_PACKAGE_SOVERSION_MAJOR "${H4_VERS_MAJOR}")

#-----------------------------------------------------------------------------
# Set variables needed for installation
#-----------------------------------------------------------------------------
set (HDF4_VERSION_STRING ${HDF4_PACKAGE_VERSION})
set (HDF4_VERSION_MAJOR ${HDF4_PACKAGE_VERSION_MAJOR})
set (HDF4_VERSION_MINOR ${HDF4_PACKAGE_VERSION_MINOR})

#-----------------------------------------------------------------------------
# Include some macros for reusable code
#-----------------------------------------------------------------------------
Expand Down Expand Up @@ -447,7 +454,7 @@ if (MSVC)
endif ()

include (${HDF_RESOURCES_DIR}/HDFCompilerFlags.cmake)
set (CMAKE_MODULE_PATH ${HDF_RESOURCES_DIR} ${HDF_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
set (CMAKE_MODULE_PATH ${HDF_RESOURCES_DIR} ${CMAKE_MODULE_PATH})

#-----------------------------------------------------------------------------
# Include user macros
Expand Down Expand Up @@ -601,26 +608,6 @@ endif ()
add_subdirectory (hdf)
add_subdirectory (mfhdf)

#-----------------------------------------------------------------------------
# Option to build HDF4 Examples
#-----------------------------------------------------------------------------
if (EXISTS "${HDF4_SOURCE_DIR}/mfhdf/examples" AND IS_DIRECTORY "${HDF4_SOURCE_DIR}/mfhdf/examples")
option (HDF4_BUILD_EXAMPLES "Build HDF4 Examples" OFF)
if (HDF4_BUILD_EXAMPLES)
if (HDF4_BUILD_FORTRAN)
if (EXISTS "${HDF4_SOURCE_DIR}/hdf/fortran/examples" AND IS_DIRECTORY "${HDF4_SOURCE_DIR}/hdf/fortran/examples")
add_subdirectory (hdf/fortran/examples)
endif ()
if (EXISTS "${HDF4_SOURCE_DIR}/mfhdf/fortran/examples" AND IS_DIRECTORY "${HDF4_SOURCE_DIR}/mfhdf/fortran/examples")
add_subdirectory (mfhdf/fortran/examples)
endif ()
endif ()

add_subdirectory (hdf/examples)
add_subdirectory (mfhdf/examples)
endif ()
endif ()

#-----------------------------------------------------------------------------
# Option to build HDF4 Java Library
#-----------------------------------------------------------------------------
Expand All @@ -631,6 +618,18 @@ if (EXISTS "${HDF4_SOURCE_DIR}/java" AND IS_DIRECTORY "${HDF4_SOURCE_DIR}/java")
endif ()
endif ()

#-----------------------------------------------------------------------------
# Option to build HDF4 Examples
#-----------------------------------------------------------------------------
if (EXISTS "${HDF4_SOURCE_DIR}/HDF4Examples" AND IS_DIRECTORY "${HDF4_SOURCE_DIR}/HDF4Examples")
option (HDF4_BUILD_EXAMPLES "Build HDF4 Library Examples" ON)
if (HDF4_BUILD_EXAMPLES)
include (${HDF_RESOURCES_DIR}/HDF4ExampleCache.cmake)
set (HDF4_VERSION ${HDF4_PACKAGE_VERSION})
add_subdirectory (HDF4Examples)
endif ()
endif ()

#-----------------------------------------------------------------------------
# Generate the H4config.h file containing user settings needed by compilation
#-----------------------------------------------------------------------------
Expand Down
102 changes: 102 additions & 0 deletions HDF4Examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
cmake_minimum_required (VERSION 3.12)
project (H4EXAMPLES C)

#-----------------------------------------------------------------------------
# Define some CMake variables for use later in the project
#-----------------------------------------------------------------------------
set (HDF4EX_HDFSRC_DIR ${H4EXAMPLES_SOURCE_DIR}/hdf)
set (HDF4EX_HDF_FORTRAN_DIR ${H4EXAMPLES_SOURCE_DIR}/hdf/fortran)
set (HDF4EX_MFHDFSRC_DIR ${H4EXAMPLES_SOURCE_DIR}/mfhdf)
set (HDF4EX_MFHDF_FORTRAN_DIR ${H4EXAMPLES_SOURCE_DIR}/mfhdf/fortran)
set (HDF4EX_JAVA_DIR ${H4EXAMPLES_SOURCE_DIR}/JAVA)
set (HDF4EX_RESOURCES_DIR ${H4EXAMPLES_SOURCE_DIR}/config/cmake)

#-----------------------------------------------------------------------------
# Basic HDF4Examples stuff here
#-----------------------------------------------------------------------------
include (${HDF4EX_RESOURCES_DIR}/HDFMacros.cmake)
include (${HDF4EX_RESOURCES_DIR}/HDFExampleMacros.cmake)
set (CMAKE_JAVA_INCLUDE_PATH "")

SET_HDF_BUILD_TYPE()

BASIC_SETTINGS (EXAMPLES)

#-----------------------------------------------------------------------------
# HDF4 support
#-----------------------------------------------------------------------------
HDF4_SUPPORT (TRUE)
message (STATUS "HDF4 link libs: ${H4EX_HDF4_LINK_LIBS}")

if (WIN32)
set(CMAKE_TEST_LIB_DIRECTORY "${HDF4_TOOLS_DIR}")
else ()
set(CMAKE_TEST_LIB_DIRECTORY "${HDF4_LIBRARY_PATH}")
endif ()

#-----------------------------------------------------------------------------
# All examples need the main include directories
#-----------------------------------------------------------------------------
INCLUDE_DIRECTORIES (${H4EX_HDF4_INCLUDE_DIRS})

#-----------------------------------------------------------------------------
# Dashboard and Testing Settings
#-----------------------------------------------------------------------------
option (H4EX_BUILD_TESTING "Build HDF4 Example Testing" OFF)
if (H4EX_BUILD_TESTING)
set (DART_TESTING_TIMEOUT 1200 CACHE STRING
"Timeout in seconds for each test (default 1200=20minutes)"
)
enable_testing ()
include (CTest)
include (${PROJECT_SOURCE_DIR}/CTestConfig.cmake)
configure_file (${HDF4EX_RESOURCES_DIR}/CTestCustom.cmake ${PROJECT_BINARY_DIR}/CTestCustom.ctest @ONLY)
endif ()

#-----------------------------------------------------------------------------
# Option to build Fortran examples
# Make sure this appears before the CONFIGURE_FILE step
# so that fortran name mangling is detected before writing H4config.h
#-----------------------------------------------------------------------------
# Set default name mangling : overridden by Fortran detection in fortran dir
set (H4_F77_FUNC "H4_F77_FUNC(name,NAME) name ## _")
set (H4_F77_FUNC_ "H4_F77_FUNC_(name,NAME) name ## __")
if (EXISTS "${H4EXAMPLES_SOURCE_DIR}/mfhdf/fortran" AND IS_DIRECTORY "${H4EXAMPLES_SOURCE_DIR}/mfhdf/fortran")
option (HDF_BUILD_FORTRAN "Build FORTRAN support" OFF)
if (HDF_BUILD_FORTRAN AND HDF4_BUILD_FORTRAN)
set (H4EX_LINK_Fortran_LIBS ${H4EX_HDF4_LINK_LIBS})

if (WIN32)
set (H4_F77_FUNC "H4_F77_FUNC(name,NAME) NAME")
set (H4_F77_FUNC_ "H4_F77_FUNC_(name,NAME) NAME")
endif ()
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 ()

#-----------------------------------------------------------------------------
# Option to build JAVA examples
#-----------------------------------------------------------------------------
if (EXISTS "${H4EXAMPLES_SOURCE_DIR}/JAVA" AND IS_DIRECTORY "${H4EXAMPLES_SOURCE_DIR}/JAVA")
option (HDF_BUILD_JAVA "Build JAVA support" OFF)
else ()
set (HDF_BUILD_JAVA OFF CACHE BOOL "Build examples JAVA support" FORCE)
endif ()

#-----------------------------------------------------------------------------
# Build examples
#-----------------------------------------------------------------------------
if (HDF_BUILD_C)
add_subdirectory (hdf/examples)
add_subdirectory (mfhdf/examples)
endif ()
if (HDF_BUILD_FORTRAN AND HDF4_BUILD_FORTRAN)
add_subdirectory (mfhdf/fortran)
add_subdirectory (hdf/fortran)
endif ()
if (HDF_BUILD_JAVA AND HDF4_BUILD_JAVA)
add_subdirectory (JAVA)
endif ()
Loading

0 comments on commit 95f0462

Please sign in to comment.