summaryrefslogtreecommitdiffstats
path: root/config/cmake
diff options
context:
space:
mode:
authorrawarren <richardwarren2@verizon.net>2021-11-29 21:25:23 (GMT)
committerGitHub <noreply@github.com>2021-11-29 21:25:23 (GMT)
commit720ddb20f347f5ea4e573c44f64e1886d1dc1038 (patch)
treebdd32da8424488f6d10221518c08ed907ac2be18 /config/cmake
parent9cdc6d58bdc0a8bce74559d15fae1284beb82033 (diff)
downloadhdf5-720ddb20f347f5ea4e573c44f64e1886d1dc1038.zip
hdf5-720ddb20f347f5ea4e573c44f64e1886d1dc1038.tar.gz
hdf5-720ddb20f347f5ea4e573c44f64e1886d1dc1038.tar.bz2
Add support for parallel tools based on the 3rd party library mpiFileUtils (libMFU) … (#1177)
Adds tool h5dwalk and configure options to enable building it. Co-authored-by: Richard Warren <Richard.Warren@hdfgroup.org> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Richard.Warren <richard.warren@jelly.ad.hdfgroup.org> Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
Diffstat (limited to 'config/cmake')
-rw-r--r--config/cmake/FindCIRCLE.cmake49
-rw-r--r--config/cmake/FindDTCMP.cmake48
-rw-r--r--config/cmake/FindMFU.cmake100
3 files changed, 197 insertions, 0 deletions
diff --git a/config/cmake/FindCIRCLE.cmake b/config/cmake/FindCIRCLE.cmake
new file mode 100644
index 0000000..b36d76c
--- /dev/null
+++ b/config/cmake/FindCIRCLE.cmake
@@ -0,0 +1,49 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindCIRCLE
+--------
+
+Find the native CIRCLE includes and library
+
+This module defines
+
+::
+
+ CIRCLE_INCLUDE_DIR, where to find CIRCLE.h, etc.
+ CIRCLE_LIBRARIES, the libraries required to use CIRCLE.
+ CIRCLE_FOUND, If false, do not try to use CIRCLE.
+
+also defined, but not for general use are
+
+::
+
+ CIRCLE_LIBRARY, where to find the CIRCLE library.
+#]=======================================================================]
+
+if(DEFINED ENV{MFU_ROOT})
+ set(ENV{MFU_INCLUDE} "$ENV{MFU_ROOT}/include")
+ set(ENV{MFU_LIB} "$ENV{MFU_ROOT}/lib")
+ set(ENV{MFU_LIB64} "$ENV{MFU_ROOT}/lib64")
+else()
+ message("CIRCLE_LIBRARY: If you have problems building this library,\nconsider setting the MFU_ROOT environment variable to indicate\nwhere to find the support libraries and header files!")
+endif()
+
+find_path(CIRCLE_INCLUDE_DIR
+ NAMES libcircle.h
+ HINTS ENV MFU_INCLUDE)
+
+find_library(CIRCLE_LIBRARY
+ NAMES circle
+ HINTS ENV MFU_LIB ENV MFU_LIB64
+ )
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(CIRCLE REQUIRED_VARS CIRCLE_LIBRARY CIRCLE_INCLUDE_DIR)
+
+if(CIRCLE_FOUND)
+ set(CIRCLE_LIBRARIES ${CIRCLE_LIBRARY} )
+endif()
+
+mark_as_advanced(CIRCLE_INCLUDE_DIR CIRCLE_LIBRARY)
diff --git a/config/cmake/FindDTCMP.cmake b/config/cmake/FindDTCMP.cmake
new file mode 100644
index 0000000..b95ef20
--- /dev/null
+++ b/config/cmake/FindDTCMP.cmake
@@ -0,0 +1,48 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindDTCMP
+--------
+
+Find the native DTCMP includes and library
+
+This module defines
+
+::
+
+ DTCMP_INCLUDE_DIR, where to find DTCMP.h, etc.
+ DTCMP_LIBRARIES, the libraries required to use DTCMP.
+ DTCMP_FOUND, If false, do not try to use DTCMP.
+
+also defined, but not for general use are
+
+::
+
+ DTCMP_LIBRARY, where to find the DTCMP library.
+#]=======================================================================]
+
+if(DEFINED ENV{MFU_ROOT})
+ set(ENV{MFU_INCLUDE} "$ENV{MFU_ROOT}/include")
+ set(ENV{MFU_LIB} "$ENV{MFU_ROOT}/lib")
+ set(ENV{MFU_LIB64} "$ENV{MFU_ROOT}/lib64")
+else()
+ message("DTCMP_LIBRARY: If you have problems building this library,\nconsider setting the MFU_ROOT environment variable to indicate\nwhere to find the support libraries and header files!")
+endif()
+
+find_path(DTCMP_INCLUDE_DIR
+ NAMES dtcmp.h
+ HINTS ENV MFU_INCLUDE)
+
+find_library(DTCMP_LIBRARY
+ NAMES dtcmp
+ HINTS ENV MFU_LIB ENV MFU_LIB64)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(DTCMP REQUIRED_VARS DTCMP_LIBRARY DTCMP_INCLUDE_DIR)
+
+if(DTCMP_FOUND)
+ set(DTCMP_LIBRARIES ${DTCMP_LIBRARY} )
+endif()
+
+mark_as_advanced(DTCMP_INCLUDE_DIR DTCMP_LIBRARY)
diff --git a/config/cmake/FindMFU.cmake b/config/cmake/FindMFU.cmake
new file mode 100644
index 0000000..37699e2
--- /dev/null
+++ b/config/cmake/FindMFU.cmake
@@ -0,0 +1,100 @@
+#
+# 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.
+#
+#########################################################################
+
+# - Derived from the FindTiff.cmake and FindJPEG.cmake that is included with cmake
+# FindMFU
+
+# Find the native MFU includes and library
+
+# Imported targets
+##################
+
+# This module defines the following :prop_tgt:`IMPORTED` targets:
+#
+# MFU::MFU
+# The MFU library, if found.
+#
+# Result variables
+###################
+
+# This module will set the following variables in your project:
+
+# MFU_FOUND, true if the MFU headers and libraries were found.
+# MFU_INCLUDE_DIR, the directory containing the MFU headers.
+# MFU_INCLUDE_DIRS, the directory containing the MFU headers.
+# MFU_LIBRARIES, libraries to link against to use MFU.
+
+# Cache variables
+#################
+
+# The following variables may also be set:
+
+# MFU_LIBRARY, where to find the MFU library.
+# message (STATUS "Finding MFU library and headers..." )
+#########################################################################
+
+
+
+FIND_PATH(MFU_INCLUDE_DIR
+ NAMES mfu.h
+ HINTS "$ENV{MFU_ROOT}/include"
+)
+FIND_LIBRARY(MFU_LIBRARY
+ NAMES mfu
+ HINTS "$ENV{MFU_ROOT}/lib64"
+)
+
+if(NOT MFU_LIBRARY)
+ set(mfu_names ${MFU_NAMES} mfu libmfu)
+ find_library(MFU_LIBRARY NAMES ${mfu_names})
+ include(SelectLibraryConfigurations)
+ select_library_configurations(MFU)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(MFU
+ REQUIRED_VARS MFU_LIBRARY MFU_INCLUDE_DIR)
+
+if(MFU_FOUND)
+ set(MFU_LIBRARIES "${MFU_LIBRARY}")
+ set(MFU_INCLUDE_DIRS "${MFU_INCLUDE_DIR}")
+ set(LL_PATH "$ENV{MFU_ROOT}/lib64:$ENV{MFU_ROOT}/lib")
+ if(NOT TARGET MFU::MFU)
+ add_library(MFU::MFU UNKNOWN IMPORTED)
+ if(MFU_INCLUDE_DIRS)
+ set_target_properties(MFU::MFU PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${MFU_INCLUDE_DIRS}")
+ endif()
+ if(EXISTS "${MFU_LIBRARY}")
+ set_target_properties(MFU::MFU PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${MFU_LIBRARY}")
+ endif()
+ endif()
+endif()
+
+# Report the results.
+if (NOT MFU_FOUND)
+ set (MFU_DIR_MESSAGE
+ "Mfu was not found. Make sure MFU_LIBRARY and MFU_INCLUDE_DIR are set or set the MFU_INSTALL environment variable."
+ )
+ if (NOT MFU_FIND_QUIETLY)
+ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15.0")
+ message (VERBOSE "${MFU_DIR_MESSAGE}")
+ endif ()
+ else ()
+ if (MFU_FIND_REQUIRED)
+ message (FATAL_ERROR "Mfu was NOT found and is Required by this project")
+ endif ()
+ endif ()
+endif ()