summaryrefslogtreecommitdiffstats
path: root/CMakePlugins.cmake
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2020-10-16 16:09:02 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2020-10-16 16:09:02 (GMT)
commit72f5f74b67f72364b9c5b23e9d0c3ad69b1eb19b (patch)
tree8a9153cb16930982a2d56bb7f0918fb1b89e583d /CMakePlugins.cmake
parentee5662650911ef3eded80ccc6c1748e74e045353 (diff)
downloadhdf5-72f5f74b67f72364b9c5b23e9d0c3ad69b1eb19b.zip
hdf5-72f5f74b67f72364b9c5b23e9d0c3ad69b1eb19b.tar.gz
hdf5-72f5f74b67f72364b9c5b23e9d0c3ad69b1eb19b.tar.bz2
OESS-98 add CMake option to build plugins project within hdf5
Diffstat (limited to 'CMakePlugins.cmake')
-rw-r--r--CMakePlugins.cmake56
1 files changed, 56 insertions, 0 deletions
diff --git a/CMakePlugins.cmake b/CMakePlugins.cmake
new file mode 100644
index 0000000..da8de42
--- /dev/null
+++ b/CMakePlugins.cmake
@@ -0,0 +1,56 @@
+#
+# 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://support.hdfgroup.org/ftp/HDF5/releases.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+#
+
+include (ExternalProject)
+#option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO")
+set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)")
+set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ)
+if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ option (PLUGIN_USE_EXTERNAL "Use External Library Building for filter PLUGIN" 1)
+ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT")
+ set (PLUGIN_URL ${PLUGIN_GIT_URL} CACHE STRING "Path to PLUGIN git repository")
+ set (PLUGIN_BRANCH ${PLUGIN_GIT_BRANCH})
+ elseif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ if (NOT TGZPATH)
+ set (TGZPATH ${HDF5_SOURCE_DIR})
+ endif ()
+ set (PLUGIN_URL ${TGZPATH}/${PLUGIN_TGZ_NAME})
+ if (NOT EXISTS "${PLUGIN_URL}")
+ set (HDF5_ENABLE_PLUGIN_SUPPORT OFF CACHE BOOL "" FORCE)
+ message (STATUS "Filter PLUGIN file ${PLUGIN_URL} not found")
+ endif ()
+ else ()
+ set (PLUGIN_USE_EXTERNAL 0)
+ endif ()
+endif ()
+
+#-----------------------------------------------------------------------------
+# Option for PLUGIN support
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF)
+if (HDF5_ENABLE_PLUGIN_SUPPORT)
+ if (NOT PLUGIN_USE_EXTERNAL)
+ find_package (PLUGIN NAMES ${PLUGIN_PACKAGE_NAME}${HDF_PACKAGE_EXT})
+ if (NOT PLUGIN_FOUND)
+ find_package (PLUGIN) # Legacy find
+ endif ()
+ endif ()
+ if (NOT PLUGIN_FOUND)
+ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ EXTERNAL_PLUGIN_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
+ message (STATUS "Filter PLUGIN is built")
+ else ()
+ message (FATAL_ERROR " PLUGIN is Required for PLUGIN support in HDF5")
+ endif ()
+ endif ()
+ message (STATUS "Filter PLUGIN is ON")
+endif ()