From 72d83a6f9458d6a99f78694ca92aac5ee5cf49af Mon Sep 17 00:00:00 2001 From: kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com> Date: Fri, 13 May 2022 15:26:53 -0500 Subject: Ascent: Patch 0.8.0 for finding ADIOS2. (#30609) --- .../packages/ascent/ascent-find-adios2-pr922.patch | 99 ++++++++++++++++++++++ var/spack/repos/builtin/packages/ascent/package.py | 3 + 2 files changed, 102 insertions(+) create mode 100644 var/spack/repos/builtin/packages/ascent/ascent-find-adios2-pr922.patch diff --git a/var/spack/repos/builtin/packages/ascent/ascent-find-adios2-pr922.patch b/var/spack/repos/builtin/packages/ascent/ascent-find-adios2-pr922.patch new file mode 100644 index 0000000000..037d6a89c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/ascent/ascent-find-adios2-pr922.patch @@ -0,0 +1,99 @@ +diff --git a/src/cmake/thirdparty/SetupADIOS.cmake b/src/cmake/thirdparty/SetupADIOS.cmake +index 7a7f038d..4b56b7e0 100644 +--- a/src/cmake/thirdparty/SetupADIOS.cmake ++++ b/src/cmake/thirdparty/SetupADIOS.cmake +@@ -10,32 +10,32 @@ + # + ############################################################################### + +-# first Check for ADIOS_DIR ++# first Check for ADIOS_ROOT + +-if(NOT ADIOS_DIR) +- MESSAGE(FATAL_ERROR "ADIOS support needs explicit ADIOS_DIR") ++if(NOT ADIOS_ROOT) ++ MESSAGE(FATAL_ERROR "ADIOS support needs explicit ADIOS_ROOT") + endif() + +-MESSAGE(STATUS "Looking for ADIOS using ADIOS_DIR = ${ADIOS_DIR}") ++MESSAGE(STATUS "Looking for ADIOS using ADIOS_ROOT = ${ADIOS_ROOT}") + + # CMake's FindADIOS module uses the ADIOS_ROOT env var +-set(ADIOS_ROOT ${ADIOS_DIR}) ++set(ADIOS_ROOT ${ADIOS_ROOT}) + set(ENV{ADIOS_ROOT} ${ADIOS_ROOT}) + + # Use CMake's FindADIOS module, which uses hdf5's compiler wrappers to extract + # all the info about the hdf5 install +-include(${ADIOS_DIR}/etc/FindADIOS.cmake) ++include(${ADIOS_ROOT}/etc/FindADIOS.cmake) + +-# FindADIOS sets ADIOS_DIR to it's installed CMake info if it exists +-# we want to keep ADIOS_DIR as the root dir of the install to be ++# FindADIOS sets ADIOS_ROOT to it's installed CMake info if it exists ++# we want to keep ADIOS_ROOT as the root dir of the install to be + # consistent with other packages + +-set(ADIOS_DIR ${ADIOS_ROOT} CACHE PATH "" FORCE) ++set(ADIOS_ROOT ${ADIOS_ROOT} CACHE PATH "" FORCE) + # not sure why we need to set this, but we do + #set(ADIOS_FOUND TRUE CACHE PATH "" FORCE) + + if(NOT ADIOS_FOUND) +- message(FATAL_ERROR "ADIOS_DIR is not a path to a valid ADIOS install") ++ message(FATAL_ERROR "ADIOS_ROOT is not a path to a valid ADIOS install") + endif() + + blt_register_library(NAME adios +diff --git a/src/cmake/thirdparty/SetupADIOS2.cmake b/src/cmake/thirdparty/SetupADIOS2.cmake +index d93c3e5b..3133c72c 100644 +--- a/src/cmake/thirdparty/SetupADIOS2.cmake ++++ b/src/cmake/thirdparty/SetupADIOS2.cmake +@@ -10,21 +10,39 @@ + # + ############################################################################### + +-# first Check for ADIOS_DIR +-if(NOT ADIOS2_DIR) +- MESSAGE(FATAL_ERROR "ADIOS2 support needs explicit ADIOS2_DIR") ++# Handle legacy usage of ADIOS2_DIR ++if (ADIOS2_DIR AND NOT ADIOS2_ROOT) ++ # If find_package(ADIOS2) has already been called this will fail ++ if (NOT EXISTS ${ADIOS2_DIR}/include) ++ get_filename_component(tmp "${ADIOS2_DIR}" DIRECTORY) ++ get_filename_component(tmp "${tmp}" DIRECTORY) ++ get_filename_component(tmp "${tmp}" DIRECTORY) ++ if (EXISTS ${tmp}/include) ++ set(ADIOS2_ROOT "${tmp}" CACHE PATH "") ++ else () ++ message(FATAL_ERROR "Could not determine ADIOS2_ROOT from ADIOS2_DIR") ++ endif () ++ else () ++ set(ADIOS2_ROOT "${ADIOS2_DIR}" CACHE PATH "") ++ endif () ++endif () ++ ++# Check for ADIOS_ROOT ++if(NOT ADIOS2_ROOT) ++ MESSAGE(FATAL_ERROR "ADIOS2 support needs explicit ADIOS2_ROOT") + endif() + +-MESSAGE(STATUS "Looking for ADIOS2 using ADIOS2_DIR = ${ADIOS2_DIR}") ++MESSAGE(STATUS "Looking for ADIOS2 using ADIOS2_ROOT = ${ADIOS2_ROOT}") + +-set(ADIOS2_DIR_ORIG ${ADIOS2_DIR}) ++set(ADIOS2_DIR_ORIG ${ADIOS2_ROOT}) + + find_package(ADIOS2 REQUIRED + NO_DEFAULT_PATH +- PATHS ${ADIOS2_DIR}/lib/cmake/adios2) ++ PATHS ${ADIOS2_ROOT}) + ++# ADIOS2_DIR is set by find_package + message(STATUS "FOUND ADIOS2 at ${ADIOS2_DIR}") + + blt_register_library(NAME adios2 +- INCLUDES ${ADIOS2_INCLUDE_DIR} +- LIBRARIES ${ADIOS2_LIB_DIRS} ${ADIOS2_LIBRARIES} ) ++ INCLUDES ${ADIOS2_INCLUDE_DIR} ++ LIBRARIES ${ADIOS2_LIB_DIRS} ${ADIOS2_LIBRARIES} ) diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py index f5f5390820..be3ca2a333 100644 --- a/var/spack/repos/builtin/packages/ascent/package.py +++ b/var/spack/repos/builtin/packages/ascent/package.py @@ -102,6 +102,9 @@ class Ascent(CMakePackage, CudaPackage): # patch for allowing +shared+cuda # https://github.com/Alpine-DAV/ascent/pull/903 patch('ascent-shared-cuda-pr903.patch', when='@0.8.0') + # patch for finding ADIOS2 more reliably + # https://github.com/Alpine-DAV/ascent/pull/922 + patch('ascent-find-adios2-pr922.patch', when='@0.8.0') ########################################################################## # package dependencies -- cgit v1.2.3-60-g2f50