Unverified Commit dd1fe0a9 authored by William F Godoy's avatar William F Godoy Committed by GitHub
Browse files

Merge pull request #1004 from williamfgc/mgard

MGARD initial integration
parents 48e7e4ec 1525aeea
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -121,6 +121,7 @@ mark_as_advanced(CMAKE_POSITION_INDEPENDENT_CODE)
adios_option(BZip2     "Enable support for BZip2 transforms" AUTO)
adios_option(ZFP       "Enable support for ZFP transforms" AUTO)
adios_option(SZ        "Enable support for SZ transforms" AUTO)
adios_option(MGARD     "Enable support for MGARD transforms" AUTO)
adios_option(MPI       "Enable support for MPI" AUTO)
adios_option(DataMan   "Enable support for DataMan" AUTO)
adios_option(SST       "Enable support for SST" AUTO)
@@ -142,7 +143,7 @@ if(ADIOS2_HAVE_MPI)
endif()

set(ADIOS2_CONFIG_OPTS
  BZip2 ZFP SZ MPI DataMan SST ZeroMQ HDF5 Python Fortran SysVShMem
  BZip2 ZFP SZ MGARD MPI DataMan SST ZeroMQ HDF5 Python Fortran SysVShMem
)
GenerateADIOSHeaderConfig(${ADIOS2_CONFIG_OPTS})
configure_file(
+5 −0
Original line number Diff line number Diff line
@@ -25,6 +25,11 @@ if(NOT @BUILD_SHARED_LIBS@)
    find_dependency(ZFP)
  endif()
  
  set(ADIOS2_HAVE_MGARD @ADIOS2_HAVE_MGARD@)
  if(ADIOS2_HAVE_MGARD)
    find_dependency(MGARD)
  endif()

  set(ADIOS2_HAVE_ZeroMQ @ADIOS2_HAVE_ZeroMQ@)
  if(ADIOS2_HAVE_ZeroMQ)
    find_dependency(ZeroMQ)
+7 −0
Original line number Diff line number Diff line
@@ -184,6 +184,13 @@ function(GenerateADIOSPackageConfig)
      list(APPEND ADIOS2_CXX_LIBS ${ZFP_LIBRARIES})
      list(APPEND ADIOS2_CXX_INCS ${ZFP_INCLUDE_DIRS})
    endif()
    if(ADIOS2_HAVE_MGARD)
      install(FILES cmake/FindMGARD.cmake
        DESTINATION ${CMAKE_INSTALL_CMAKEDIR}/Modules
      )
      list(APPEND ADIOS2_CXX_LIBS ${MGARD_LIBRARIES})
      list(APPEND ADIOS2_CXX_INCS ${MGARD_INCLUDE_DIRS})
    endif()
    if(ADIOS2_HAVE_ZeroMQ)
      install(FILES cmake/FindZeroMQ.cmake
        DESTINATION ${CMAKE_INSTALL_CMAKEDIR}/Modules
+10 −0
Original line number Diff line number Diff line
@@ -43,6 +43,16 @@ if(SZ_FOUND)
  set(ADIOS2_HAVE_SZ TRUE)
endif()

# MGARD
if(ADIOS2_USE_MGARD STREQUAL AUTO)
  find_package(MGARD)
elseif(ADIOS2_USE_MGARD)
  find_package(MGARD REQUIRED)
endif()
if(MGARD_FOUND)
  set(ADIOS2_HAVE_MGARD TRUE)
endif()

set(mpi_find_components C)

# Fortran

cmake/FindMGARD.cmake

0 → 100644
+61 −0
Original line number Diff line number Diff line
#------------------------------------------------------------------------------#
# Distributed under the OSI-approved Apache License, Version 2.0.  See
# accompanying file Copyright.txt for details.
#------------------------------------------------------------------------------#
#
# FindMGARD
# -----------
#
# Try to find the MGARD library
#
# This module defines the following variables:
#
#   MGARD_FOUND        - System has MGARD
#   MGARD_INCLUDE_DIRS - The MGARD include directory
#   MGARD_LIBRARIES    - Link these to use MGARD
#
# and the following imported targets:
#   MGARD::MGARD - The MGARD compression library target
#
# You can also set the following variable to help guide the search:
#   MGARD_ROOT - The install prefix for MGARD containing the
#              include and lib folders
#              Note: this can be set as a CMake variable or an
#                    environment variable.  If specified as a CMake
#                    variable, it will override any setting specified
#                    as an environment variable.

if(NOT MGARD_FOUND)
  if((NOT MGARD_ROOT) AND (NOT (ENV{MGARD_ROOT} STREQUAL "")))
    set(MGARD_ROOT "$ENV{MGARD_ROOT}")
  endif()
  if(MGARD_ROOT)
    set(MGARD_INCLUDE_OPTS HINTS ${MGARD_ROOT}/include NO_DEFAULT_PATHS)
    set(MGARD_LIBRARY_OPTS
      HINTS ${MGARD_ROOT}/lib ${MGARD_ROOT}/lib64
      NO_DEFAULT_PATHS
    )
  endif()

  find_path(MGARD_INCLUDE_DIR mgard.h ${MGARD_INCLUDE_OPTS})
  find_library(MGARD_LIBRARY NAMES mgard ${MGARD_LIBRARY_OPTS})
  find_library(ZLIB_LIBRARY NAMES zlib ${SZ_LIBRARY_OPTS})

  include(FindPackageHandleStandardArgs)
  find_package_handle_standard_args(MGARD
    FOUND_VAR MGARD_FOUND
    REQUIRED_VARS MGARD_LIBRARY ZLIB_LIBRARY MGARD_INCLUDE_DIR
  )
  if(MGARD_FOUND)
    set(MGARD_INCLUDE_DIRS ${MGARD_INCLUDE_DIR})
    set(MGARD_LIBRARIES ${MGARD_LIBRARY} ${ZLIB_LIBRARY})
    if(MGARD_FOUND AND NOT TARGET MGARD::MGARD)
      add_library(MGARD::MGARD UNKNOWN IMPORTED)
      set_target_properties(MGARD::MGARD PROPERTIES
        IMPORTED_LOCATION             "${MGARD_LIBRARY}"
        INTERFACE_LINK_LIBRARIES      "${MGARD_LIBRARIES}"
        INTERFACE_INCLUDE_DIRECTORIES "${MGARD_INCLUDE_DIR}"
      )
    endif()
  endif()
endif()
Loading