diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 355ebf2c..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,1244 +0,0 @@ -cmake_minimum_required(VERSION 3.23.1) -################################ -# GEOS_TPL -################################ -project(geosx_tpl LANGUAGES C CXX Fortran) - -set( ENABLE_DOXYGEN ON CACHE BOOL "" ) -option( GEOSXTPL_ENABLE_DOXYGEN "" ON ) -if ( NOT ENABLE_DOXYGEN ) - set( GEOSXTPL_ENABLE_DOXYGEN "OFF" ) -endif() -set( ENABLE_DOXYGEN OFF CACHE BOOL "" FORCE ) - - -################################ -# BLT -################################ -set( BLT_CXX_STD c++17 CACHE STRING "" FORCE ) - -if (DEFINED BLT_SOURCE_DIR) - # Support having a shared BLT outside of the repository if given a BLT_SOURCE_DIR - - if (NOT EXISTS ${BLT_SOURCE_DIR}/SetupBLT.cmake) - message(FATAL_ERROR "Given BLT_SOURCE_DIR does not contain SetupBLT.cmake") - endif() -else() - # Use internal BLT if no BLT_SOURCE_DIR is given - set(BLT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/cmake/blt" CACHE PATH "") - if (NOT EXISTS ${BLT_SOURCE_DIR}/SetupBLT.cmake) - message(FATAL_ERROR - "The BLT submodule is not present. " - "Run the following two commands in your git repository: \n" - " git submodule init\n" - " git submodule update" ) - endif() -endif() - -include(${BLT_SOURCE_DIR}/SetupBLT.cmake) - -################################ -# General GEOSX TPL Info -################################ -include(ExternalProject) - -option( BUILD_SHARED_LIBS "" OFF ) - -option( ENABLE_CALIPER "" ON ) -option( ENABLE_HYPRE "" ON ) -option( ENABLE_TRILINOS "" ON ) -option( ENABLE_PETSC "" OFF ) -option( ENABLE_SCOTCH "" ON ) -option( ENABLE_SUITESPARSE "" ON ) -option( ENABLE_VTK "" ON ) -option( ENABLE_VTK_WRAP_PYTHON "" OFF ) - -option( ENABLE_NINJA "" OFF ) - -include(ProcessorCount) -ProcessorCount(NUM_CORES) - -set(NUM_PROC ${NUM_CORES} CACHE STRING "") -message( "Running with NUM_PROC = ${NUM_PROC}") - -set(TPL_MIRROR_DIR "${CMAKE_SOURCE_DIR}/tplMirror") -set(build_list ) - -set( CMAKE_POSITION_INDEPENDENT_CODE ON ) - -# Set up C flags -string(REPLACE "-Wall" "" C_FLAGS_NO_WARNINGS ${CMAKE_C_FLAGS}) -string(REPLACE "-Wextra" "" C_FLAGS_NO_WARNINGS ${C_FLAGS_NO_WARNINGS}) -set(C_FLAGS_NO_WARNINGS "${C_FLAGS_NO_WARNINGS} -w") -string(STRIP ${C_FLAGS_NO_WARNINGS} C_FLAGS_NO_WARNINGS) - -# Set up CXX flags -string(REPLACE "-Wall" "" CXX_FLAGS_NO_WARNINGS ${CMAKE_CXX_FLAGS}) -string(REPLACE "-Wextra" "" CXX_FLAGS_NO_WARNINGS ${CXX_FLAGS_NO_WARNINGS}) -set(CXX_FLAGS_NO_WARNINGS "${CXX_FLAGS_NO_WARNINGS} -w") -string(STRIP ${CXX_FLAGS_NO_WARNINGS} CXX_FLAGS_NO_WARNINGS) - -string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE_UPPER) - -# Setup Ninja support -if (ENABLE_NINJA) - message(STATUS "Ninja is enabled") - set(TPL_BUILD_COMMAND ninja) - set(TPL_INSTALL_COMMAND ninja install) - set(TPL_GENERATOR Ninja) -else() - set(TPL_BUILD_COMMAND make -j ${NUM_PROC} ) - set(TPL_INSTALL_COMMAND make install) - set(TPL_GENERATOR "Unix Makefiles") -endif() - -message(STATUS "Build command = ${TPL_BUILD_COMMAND}") - -include(GNUInstallDirs) -include( cmake/thirdparty/FindMathLibraries.cmake ) - - -set( GEOSX_LOCALINDEX_TYPE "std::ptrdiff_t" CACHE STRING "" ) -set( GEOSX_GLOBALINDEX_TYPE "long long int" CACHE STRING "" ) - -if( GEOSX_LOCALINDEX_TYPE STREQUAL "int" ) - set( GEOSX_LOCALINDEX_TYPE_FLAG "0" CACHE STRING "" FORCE ) -elseif( GEOSX_LOCALINDEX_TYPE STREQUAL "long int" ) - set( GEOSX_LOCALINDEX_TYPE_FLAG "1" CACHE STRING "" FORCE ) -elseif( GEOSX_LOCALINDEX_TYPE STREQUAL "long long int" ) - set( GEOSX_LOCALINDEX_TYPE_FLAG "2" CACHE STRING "" FORCE ) -elseif( GEOSX_LOCALINDEX_TYPE STREQUAL "std::ptrdiff_t" ) - set( GEOSX_LOCALINDEX_TYPE_FLAG "3" CACHE STRING "" FORCE ) -else( TRUE ) - message( FATAL_ERROR "GEOSX_LOCALINDEX_TYPE_FLAG not set for ${GEOSX_LOCALINDEX_TYPE}" ) -endif() - -if( GEOSX_GLOBALINDEX_TYPE STREQUAL "int" ) - set( GEOSX_GLOBALINDEX_TYPE_FLAG "0" CACHE STRING "" FORCE ) -elseif( GEOSX_GLOBALINDEX_TYPE STREQUAL "long int" ) - set( GEOSX_GLOBALINDEX_TYPE_FLAG "1" CACHE STRING "" FORCE ) -elseif( GEOSX_GLOBALINDEX_TYPE STREQUAL "long long int" ) - set( GEOSX_GLOBALINDEX_TYPE_FLAG "2" CACHE STRING "" FORCE ) -else( TRUE ) - message( FATAL_ERROR "GEOSX_GLOBALINDEX_TYPE_FLAG not set for ${GEOSX_GLOBALINDEX_TYPE}" ) -endif() - - - - -################################ -# UNCRUSTIFY -################################ -set(UNCRUSTIFY_DIR "${CMAKE_INSTALL_PREFIX}/uncrustify") -set(UNCRUSTIFY_URL "${TPL_MIRROR_DIR}/uncrustify-401a409.zip") -message(STATUS "Building uncrustify found at ${UNCRUSTIFY_URL}") - -ExternalProject_Add( uncrustify - URL ${UNCRUSTIFY_URL} - PREFIX ${PROJECT_BINARY_DIR}/uncrustify - INSTALL_DIR ${UNCRUSTIFY_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_INSTALL_PREFIX= - -DCMAKE_CXX_STANDARD=11 - -DNoGitVersionString:BOOL=ON - ) - -list(APPEND build_list uncrustify ) - - -################################ -# Doxygen -################################ - -if( GEOSXTPL_ENABLE_DOXYGEN ) - - set(DOXYGEN_DIR "${CMAKE_INSTALL_PREFIX}/doxygen") - set(DOXYGEN_URL "${TPL_MIRROR_DIR}/doxygen-1.8.20.tar.gz") - message(STATUS "Building Doxygen found at ${DOXYGEN_URL}") - - ExternalProject_Add( doxygen - URL ${DOXYGEN_URL} - PREFIX ${PROJECT_BINARY_DIR}/doxygen - INSTALL_DIR ${DOXYGEN_DIR} - BUILD_COMMAND make -j ${NUM_PROC} - INSTALL_COMMAND make install - CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_INSTALL_PREFIX= - -DCMAKE_CXX_FLAGS=${TPL_CXX_STANDARD} - ) - - list(APPEND build_list doxygen ) - -endif() - -################################ -# HDF5 -################################ -set( HDF5_DEPENDENCIES "" ) -set(HDF5_DIR "${CMAKE_INSTALL_PREFIX}/hdf5") -set(HDF5_URL "${TPL_MIRROR_DIR}/hdf5-1.12.1.tar.gz") -message(STATUS "Building HDF5 found at ${HDF5_URL}") - -if( ${ENABLE_MPI} ) - set( HDF5_C_COMPILER ${MPI_C_COMPILER} ) - set( HDF5_CXX_COMPILER ${MPI_CXX_COMPILER} ) -else() - set( HDF5_C_COMPILER ${CMAKE_C_COMPILER} ) - set( HDF5_CXX_COMPILER ${CMAKE_CXX_COMPILER} ) -endif() - -# Build hdf5 in RelWithDebInfo mode to avoid errors when compiling -# Silo: Silo's autogen script fails to find the hdf5 library if it is -# built in Debug mode with CMake due to hdf5 naming convention (see -# https://github.com/LLNL/Silo/issues/369). -if( CMAKE_BUILD_TYPE MATCHES Debug ) - set( HDF5_CMAKE_BUILD_TYPE RelWithDebInfo ) -else() - set( HDF5_CMAKE_BUILD_TYPE CMAKE_BUILD_TYPE ) -endif() - -ExternalProject_Add( hdf5 - URL ${HDF5_URL} - PREFIX ${PROJECT_BINARY_DIR}/hdf5 - INSTALL_DIR ${HDF5_DIR} - BUILD_COMMAND make -j ${NUM_PROC} - INSTALL_COMMAND make install - CMAKE_ARGS -D CMAKE_C_COMPILER:STRING=${HDF5_C_COMPILER} - -D CMAKE_CXX_COMPILER:STRING=${HDF5_CXX_COMPILER} - -D CMAKE_C_FLAGS:STRING=${C_FLAGS_NO_WARNINGS} - -D CMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_FLAGS:STRING=${CXX_FLAGS_NO_WARNINGS} - -D CMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_BUILD_TYPE:STRING=${HDF5_CMAKE_BUILD_TYPE} - -D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} - -D HDF5_ENABLE_PARALLEL:BOOL=${ENABLE_MPI} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CMAKE_INSTALL_PREFIX:PATH= - -D BUILD_SHARED_LIBS:BOOL=ON - -D BUILD_STATIC_LIBS:BOOL=OFF - -D BUILD_TESTING:BOOL=OFF - -D HDF5_BUILD_EXAMPLES:BOOL=OFF - -D HDF5_BUILD_TOOLS:BOOL=ON - -D HDF5_BUILD_UTILS:BOOL=OFF - ) - -list(APPEND HDF5_DEPENDENCIES hdf5 ) -list(APPEND build_list hdf5 ) - - -################################ -# Conduit -################################ -set(CONDUIT_DIR "${CMAKE_INSTALL_PREFIX}/conduit") -set(CONDUIT_URL "${TPL_MIRROR_DIR}/conduit-0.9.2.tar.gz") -message(STATUS "Building Conduit found at ${CONDUIT_URL}") - -if( ${ENABLE_MPI} ) - set( CONDUIT_C_COMPILER ${MPI_C_COMPILER} ) - set( CONDUIT_CXX_COMPILER ${MPI_CXX_COMPILER} ) -else() - set( CONDUIT_C_COMPILER ${CMAKE_C_COMPILER} ) - set( CONDUIT_CXX_COMPILER ${CMAKE_CXX_COMPILER} ) -endif() - -ExternalProject_Add( conduit - URL ${CONDUIT_URL} - PREFIX ${PROJECT_BINARY_DIR}/conduit - SOURCE_SUBDIR src - INSTALL_DIR ${CONDUIT_DIR} - DEPENDS ${HDF5_DEPENDENCIES} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D ENABLE_DOCS=OFF - -D ENABLE_EXAMPLES=OFF - -D ENABLE_FORTRAN=OFF - -D ENABLE_TESTS=OFF - -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -D ENABLE_MPI=${ENABLE_MPI} - -D BLT_SOURCE_DIR=${BLT_SOURCE_DIR} - -D HDF5_DIR=${HDF5_DIR} - -# This is to work around a bug in how hdf5 is used in conduit (it exposes an MPI header) -# Once this is fixed remove the next three lines (ENABLE_FIND_MPI and using the MPI wrappers) -# and uncomment out the 4 after (using serial compilers and MPI wrappers separately) - -D ENABLE_FIND_MPI=OFF - -D CMAKE_C_COMPILER=${CONDUIT_C_COMPILER} - -D CMAKE_C_FLAGS=${C_FLAGS_NO_WARNINGS} - -D CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_COMPILER=${CONDUIT_CXX_COMPILER} - -D CMAKE_CXX_FLAGS=${CXX_FLAGS_NO_WARNINGS} - -D CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -# -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -# -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -# -DMPI_C_COMPILER=${MPI_C_COMPILER} -# -DMPI_CXX_COMPILER=${MPI_CXX_COMPILER} - -D ENABLE_OPENMP=${ENABLE_OPENMP} - -D CMAKE_INSTALL_PREFIX:PATH= - -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D BLT_CXX_STD:STRING=c++14 - ) - -list(APPEND build_list conduit ) - - -################################ -# SILO -################################ -set(SILO_DIR "${CMAKE_INSTALL_PREFIX}/silo") -set(SILO_URL "${TPL_MIRROR_DIR}/silo-4.11.1-bsd.tar.xz") -message(STATUS "Building SILO found at ${SILO_URL}") - -string(REPLACE ";" " " HDF5_C_FLAGS_STR "${HDF5_C_FLAGS}") - -# -Wno-error=xxx flags are needed to build Silo release 4.11 with -# AppleClang or regular Clang due to implicit declaration of 'zfp_init_zfp'. -file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/config_silo_for_geos "\ -../silo/configure \ -CC=\"${HDF5_C_COMPILER}\" \ -CXX=\"${HDF5_CXX_COMPILER}\" \ -CFLAGS=\"${HDF5_C_FLAGS_STR} ${C_FLAGS_NO_WARNINGS} -Wno-error=implicit-function-declaration -Wno-error=int-conversion\" \ -LIBS=\"-ldl\" \ ---prefix=${SILO_DIR} \ ---build=${SILO_BUILD_TYPE} \ ---with-hdf5=${HDF5_DIR}/include,${HDF5_DIR}/lib \ ---disable-fortran \ ---enable-optimization \ ---disable-silex \ ---enable-shared=no \ ---enable-static=yes \ ---with-pic=yes\n") - -ExternalProject_Add( silo - URL ${SILO_URL} - PREFIX ${PROJECT_BINARY_DIR}/silo - INSTALL_DIR ${SILO_DIR} -# PATCH_COMMAND patch src/hdf5_drv/H5FDsilo.c < ${TPL_MIRROR_DIR}/silo-4.11.patch - DEPENDS ${HDF5_DEPENDENCIES} - CONFIGURE_COMMAND cat ${PROJECT_BINARY_DIR}/config_silo_for_geos && . ${PROJECT_BINARY_DIR}/config_silo_for_geos - BUILD_COMMAND make -j ${NUM_PROC} - INSTALL_COMMAND make install ) - -list(APPEND build_list silo ) - - -################################ -# RAJA -################################ - - -set(RAJA_DIR "${CMAKE_INSTALL_PREFIX}/raja") -set(RAJA_URL "${TPL_MIRROR_DIR}/RAJA-v2025.03.0.tar.gz") - - -message(STATUS "Building RAJA found at ${RAJA_URL}") - -ExternalProject_Add( raja - URL ${RAJA_URL} - PREFIX ${PROJECT_BINARY_DIR}/raja - INSTALL_DIR ${RAJA_DIR} - DEPENDS ${RAJA_DEPENDS} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D CMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -D CMAKE_CXX_COMPILER:PATH=${CMAKE_CXX_COMPILER} - -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} - -D ENABLE_CUDA:BOOL=${ENABLE_CUDA} - -D RAJA_ENABLE_CUDA:BOOL=${ENABLE_CUDA} - -D RAJA_ENABLE_NV_TOOLS_EXT:BOOL=${ENABLE_CUDA_NVTOOLSEXT} - -D RAJA_ENABLE_ROCTX:BOOL=${ENABLE_ROCTX} - -D CMAKE_CUDA_COMPILER=${CMAKE_CUDA_COMPILER} - -D CUDA_TOOLKIT_ROOT_DIR=${CUDA_TOOLKIT_ROOT_DIR} - -D CMAKE_CUDA_ARCHITECTURES:STRING=${CMAKE_CUDA_ARCHITECTURES} - -D CMAKE_CUDA_FLAGS:STRING=${RAJA_CUDA_FLAGS} - -D ENABLE_TESTS:BOOL=OFF - -D ENABLE_EXAMPLES:BOOL=OFF - -D ENABLE_OPENMP:BOOL=${ENABLE_OPENMP} - -D CMAKE_INSTALL_PREFIX:PATH= - -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - ) - -list(APPEND build_list raja ) - - -################################ -# CHAI -################################ -set(CHAI_DIR "${CMAKE_INSTALL_PREFIX}/chai") -set(CHAI_URL "${TPL_MIRROR_DIR}/chai-2025.03.0.tar.gz") -message(STATUS "Building CHAI found at ${CHAI_URL}") - -ExternalProject_Add( chai - PREFIX ${PROJECT_BINARY_DIR}/chai - URL ${CHAI_URL} - INSTALL_DIR ${CHAI_DIR} - DEPENDS raja - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D CMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -D CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -D CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D CMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} - -D ENABLE_CUDA:BOOL=${ENABLE_CUDA} - -D CHAI_ENABLE_CUDA:BOOL=${ENABLE_CUDA} - -D CMAKE_CUDA_COMPILER=${CMAKE_CUDA_COMPILER} - -D CUDA_TOOLKIT_ROOT_DIR=${CUDA_TOOLKIT_ROOT_DIR} - -D CMAKE_CUDA_ARCHITECTURES:STRING=${CMAKE_CUDA_ARCHITECTURES} - -D CMAKE_CUDA_FLAGS:STRING=${CHAI_CUDA_FLAGS} - -D ENABLE_OPENMP=${ENABLE_OPENMP} - -D CMAKE_INSTALL_PREFIX:PATH= - -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} - -D ENABLE_TESTS=OFF - -D ENABLE_BENCHMARKS=OFF - -D ENABLE_EXAMPLES=OFF - -D ENABLE_DOCS=OFF - -D ENABLE_DOXYGEN=OFF - -D ENABLE_SPHINX=OFF - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CHAI_ENABLE_RAJA_PLUGIN=ON - -D RAJA_DIR=${RAJA_DIR}/lib/cmake/raja - -D UMPIRE_ENABLE_C=ON - ) - -list(APPEND build_list chai ) - - -################################ -# Caliper and Adiak -################################ -if (ENABLE_CALIPER) - set(ADIAK_DIR "${CMAKE_INSTALL_PREFIX}/adiak") - set(ADIAK_URL "${TPL_MIRROR_DIR}/adiak-0.4.0.tar.gz") - message(STATUS "Building Adiak found at ${ADIAK_URL}") - - ExternalProject_Add( adiak - URL ${ADIAK_URL} - PREFIX ${PROJECT_BINARY_DIR}/adiak - INSTALL_DIR ${ADIAK_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D CMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER} - -D CMAKE_C_FLAGS:STRING=${C_FLAGS_NO_WARNINGS} - -D CMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER} - -D CMAKE_CXX_FLAGS:STRING=${CXX_FLAGS_NO_WARNINGS} - -D CMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} - -D WITH_MPI:BOOL=${ENABLE_MPI} - -D MPI_C_COMPILER:STRING=${MPI_C_COMPILER} - -D MPI_CXX_COMPILER:STRING=${MPI_CXX_COMPILER} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CMAKE_INSTALL_PREFIX:PATH= - -D BLT_SOURCE_DIR=${BLT_SOURCE_DIR} - ) - - - set(CALIPER_DIR "${CMAKE_INSTALL_PREFIX}/caliper") - set(CALIPER_URL "${TPL_MIRROR_DIR}/Caliper-2.12.0.tar.gz") - message(STATUS "Building Caliper found at ${CALIPER_URL}") - - set(CALIPER_WITH_CUPTI OFF) - - if(ENABLE_CALIPER_WITH_CUPTI) - set(CALIPER_WITH_CUPTI ON) - endif() - - ExternalProject_Add( caliper - URL ${CALIPER_URL} - PREFIX ${PROJECT_BINARY_DIR}/caliper - INSTALL_DIR ${CALIPER_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - DEPENDS adiak - CMAKE_ARGS -D CMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER} - -D CMAKE_C_FLAGS:STRING=${C_FLAGS_NO_WARNINGS} - -D CMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER} - -D CMAKE_CXX_FLAGS:STRING=${CXX_FLAGS_NO_WARNINGS} - -D CMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} - -D WITH_MPI:BOOL=${ENABLE_MPI} - -D MPI_C_COMPILER:STRING=${MPI_C_COMPILER} - -D MPI_CXX_COMPILER:STRING=${MPI_CXX_COMPILER} - -D CUDA_TOOLKIT_ROOT_DIR:PATH=${CUDA_TOOLKIT_ROOT_DIR} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CMAKE_INSTALL_PREFIX:PATH= - -D WITH_PAPI:BOOL=${ENABLE_PAPI} - -D PAPI_PREFIX:STRING=${PAPI_PREFIX} - -D WITH_ADIAK:BOOL=ON - -D adiak_DIR:STRING=${ADIAK_DIR}/lib/cmake/adiak/ - -D WITH_CUPTI=${CALIPER_WITH_CUPTI} - -D WITH_NVPROF=${ENABLE_CUDA} - ) - - list(APPEND build_list caliper adiak) -else() - set( ENABLE_CALIPER_HYPRE OFF CACHE BOOL "" FORCE ) -endif() - - -################################ -# MATHPRESSO/ASMJIT -################################ -if (DEFINED ENABLE_MATHPRESSO AND NOT ENABLE_MATHPRESSO) - message(STATUS "MATHPRESSO disabled") -else() - set(MATHPRESSO_DIR "${CMAKE_INSTALL_PREFIX}/mathpresso") - set(MATHPRESSO_URL "${TPL_MIRROR_DIR}/mathpresso-24d60e5.zip") - set(ASMJIT_URL "${TPL_MIRROR_DIR}/asmjit-2e93826.zip") - message(STATUS "Building MATHPRESSO found at ${MATHPRESSO_URL}") - - ExternalProject_Add( mathpresso - URL ${MATHPRESSO_URL} - PREFIX ${PROJECT_BINARY_DIR}/mathpresso - INSTALL_DIR ${MATHPRESSO_DIR} - PATCH_COMMAND cd ${PROJECT_BINARY_DIR} && unzip ${ASMJIT_URL} - BUILD_COMMAND make -j ${NUM_PROC} - INSTALL_COMMAND mkdir -p /include && - mkdir -p /lib && - make INSTALL_DIR= install && - cp libmathpresso.a /lib/ - CMAKE_ARGS -D MATHPRESSO_STATIC=TRUE - -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -D ASMJIT_DIR=${PROJECT_BINARY_DIR}/asmjit-master - -D CMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -D CMAKE_C_FLAGS=${C_FLAGS_NO_WARNINGS} - -D CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -D CMAKE_CXX_FLAGS=${CXX_FLAGS_NO_WARNINGS} - -D CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} - -D CMAKE_INSTALL_PREFIX:PATH= - -D CMAKE_CXX_STANDARD=11 - -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - ) - - list(APPEND build_list mathpresso ) -endif() - - -################################ -# PUGIXML -################################ -set(PUGIXML_DIR "${CMAKE_INSTALL_PREFIX}/pugixml") -set(PUGIXML_URL "${TPL_MIRROR_DIR}/pugixml-1.13.tar.gz") - -message(STATUS "Building PUGIXML found at ${PUGIXML_URL}") - -ExternalProject_Add( pugixml - PREFIX ${PROJECT_BINARY_DIR}/pugixml - URL ${PUGIXML_URL} - INSTALL_DIR ${PUGIXML_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - -DCMAKE_INSTALL_PREFIX:PATH= - -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} - -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} ) - -list(APPEND build_list pugixml ) - -################################ -# TRILINOS -################################ -if (ENABLE_TRILINOS) - set(TRILINOS_DIR "${CMAKE_INSTALL_PREFIX}/trilinos") - set(TRILINOS_URL "${TPL_MIRROR_DIR}/trilinos-release-16-0-0.tar.gz") - - message(STATUS "Building TRILINOS found at ${TRILINOS_URL}") - - if ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 16.0 ) - set(TRILINOS_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS}") - set(TRILINOS_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS} -include cstdint") - set(TRILINOS_Fortran_FLAGS "-fPIC ${CMAKE_Fortran_FLAGS}") - else() - set(TRILINOS_C_FLAGS "${C_FLAGS_NO_WARNINGS}") - set(TRILINOS_CXX_FLAGS "${CXX_FLAGS_NO_WARNINGS} -include cstdint") - set(TRILINOS_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") - endif() - - - - if( ENABLE_MKL ) - set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS} - -D TPL_ENABLE_MKL:BOOL=ON - -D TPL_MKL_INCLUDE_DIRS:PATH=${MKL_INCLUDE_DIRS} - -D TPL_MKL_LIBRARIES:STRING=${MKL_LIBRARIES}) - endif() - - if ( ENABLE_ESSL ) - set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS} - -D HAVE_dggsvd3:BOOL=ON) - endif() - - if ( DEFINED OpenMP_Fortran_FLAGS ) - set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS} - -D OpenMP_Fortran_FLAGS:STRING=${OpenMP_Fortran_FLAGS}) - endif() - - if ( DEFINED OpenMP_Fortran_LIB_NAMES ) - set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS} - -D OpenMP_Fortran_LIB_NAMES:STRING=${OpenMP_Fortran_LIB_NAMES}) - endif() - - if( ${ENABLE_MPI} ) - set( TRILINOS_C_COMPILER ${MPI_C_COMPILER} ) - set( TRILINOS_CXX_COMPILER ${MPI_CXX_COMPILER} ) - set( TRILINOS_Fortran_COMPILER ${MPI_Fortran_COMPILER} ) - else() - set( TRILINOS_C_COMPILER ${CMAKE_C_COMPILER} ) - set( TRILINOS_CXX_COMPILER ${CMAKE_CXX_COMPILER} ) - set( TRILINOS_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} ) - endif() - - ExternalProject_Add( trilinos - PREFIX ${PROJECT_BINARY_DIR}/trilinos - URL ${TRILINOS_URL} - INSTALL_DIR ${TRILINOS_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_CACHE_ARGS -DTPL_BLAS_LIBRARIES:STRING=${BLAS_LIBRARIES} - -DTPL_LAPACK_LIBRARIES:STRING=${LAPACK_LIBRARIES} - CMAKE_ARGS -D CMAKE_C_COMPILER:PATH=${TRILINOS_C_COMPILER} - -D CMAKE_C_FLAGS:STRING=${TRILINOS_C_FLAGS} - -D CMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_COMPILER:PATH=${TRILINOS_CXX_COMPILER} - -D CMAKE_CXX_FLAGS:STRING=${TRILINOS_CXX_FLAGS} - -D CMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_Fortran_COMPILER:PATH=${TRILINOS_Fortran_COMPILER} - -D CMAKE_Fortran_FLAGS:STRING=${TRILINOS_Fortran_FLAGS} - -D CMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE} - -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D CMAKE_INSTALL_PREFIX:PATH= - -D CMAKE_INSTALL_LIBDIR:PATH=lib64 - -D TPL_ENABLE_MPI:BOOL=${ENABLE_MPI} - -D BUILD_SHARED_LIBS:BOOL=ON - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D Trilinos_ENABLE_OpenMP:BOOL=${ENABLE_OPENMP} - -D Trilinos_ENABLE_Fortran:BOOL=ON - -D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" - -D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} - -D Trilinos_ENABLE_TESTS:BOOL=OFF - -D Trilinos_ENABLE_Gtest:BOOL=OFF - -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF - -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF - -D Trilinos_ENABLE_Epetra:BOOL=ON - -D Trilinos_ENABLE_EpetraExt:BOOL=ON - -D Trilinos_ENABLE_Tpetra:BOOL=ON - -D Trilinos_ENABLE_Kokkos:BOOL=ON - -D Trilinos_ENABLE_Stratimikos:BOOL=ON - -D Trilinos_ENABLE_Amesos:BOOL=ON - -D Trilinos_ENABLE_AztecOO:BOOL=ON - -D Trilinos_ENABLE_Ifpack:BOOL=ON - -D Trilinos_ENABLE_Teuchos:BOOL=ON - -D Trilinos_ENABLE_Zoltan:BOOL=ON - -D Trilinos_ENABLE_ML:BOOL=ON - -D Trilinos_ENABLE_Thyra:BOOL=ON - -D Trilinos_ENABLE_STK:BOOL=OFF - -D Trilinos_ENABLE_TrilinosCouplings:BOOL=ON - -D Trilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON - -D Epetra_SHOW_DEPRECATED_WARNINGS::BOOL=OFF - -D EpetraExt_SHOW_DEPRECATED_WARNINGS::BOOL=OFF - -D ML_SHOW_DEPRECATED_WARNINGS::BOOL=OFF - -D AztecOO_SHOW_DEPRECATED_WARNINGS::BOOL=OFF - -D Ifpack_SHOW_DEPRECATED_WARNINGS::BOOL=OFF - ${TRILINOS_EXTRA_ARGS} - ) - - list(APPEND build_list trilinos ) -endif() - - -################################ -# PARMETIS -# (also METIS is built; note that the idx_t data type is defined to be -# 64 bit signed integer) -################################ - -set(PARMETIS_DIR "${CMAKE_INSTALL_PREFIX}/parmetis") -set(METIS_DIR "${CMAKE_INSTALL_PREFIX}/metis") -set(PARMETIS_URL "${TPL_MIRROR_DIR}/parmetis-4.0.3-IDXTYPEWIDTH_64.tar.gz") - -if( ${ENABLE_MPI} ) - message(STATUS "Building PARMETIS found at ${PARMETIS_URL}") - - ExternalProject_Add( parmetis - PREFIX ${PROJECT_BINARY_DIR}/parmetis - URL ${PARMETIS_URL} - INSTALL_DIR ${PARMETIS_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D GKLIB_PATH=../parmetis/metis/GKlib - -D METIS_PATH=../parmetis/metis - -D CMAKE_C_COMPILER=${MPI_C_COMPILER} - -D CMAKE_CXX_COMPILER=${MPI_CXX_COMPILER} - -D CMAKE_C_FLAGS=${C_FLAGS_NO_WARNINGS} - -D CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_FLAGS=${CXX_FLAGS_NO_WARNINGS} - -D CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CMAKE_INSTALL_PREFIX:PATH= - ) - - list(APPEND build_list parmetis ) -endif() - -message(STATUS "Building METIS found at ${PARMETIS_URL}") - -ExternalProject_Add( metis - PREFIX ${PROJECT_BINARY_DIR}/metis - URL ${PARMETIS_URL} - INSTALL_DIR ${METIS_DIR} - SOURCE_SUBDIR metis - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D GKLIB_PATH=../metis/metis/GKlib - -D CMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -D CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -D CMAKE_C_FLAGS=${C_FLAGS_NO_WARNINGS} - -D CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_FLAGS=${CXX_FLAGS_NO_WARNINGS} - -D CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CMAKE_INSTALL_PREFIX:PATH= - ) - -list(APPEND build_list metis ) - - -################################ -# SUPERLU -- -################################ -if( ENABLE_MPI ) - set(SUPERLU_DIR "${CMAKE_INSTALL_PREFIX}/superlu_dist") - set(SUPERLU_URL "${TPL_MIRROR_DIR}/superlu_dist-0f6efc3.tar.gz") - - if ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 16.0 ) - set(SUPERLU_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS}") - set(SUPERLU_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS}") - set(SUPERLU_Fortran_FLAGS "-fPIC ${CMAKE_Fortran_FLAGS}") - else() - set(SUPERLU_C_FLAGS "${C_FLAGS_NO_WARNINGS}") - set(SUPERLU_CXX_FLAGS "${CXX_FLAGS_NO_WARNINGS}") - set(SUPERLU_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") - endif() - - - set(PARMETIS_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/parmetis/include;${CMAKE_INSTALL_PREFIX}/metis/include) - set(PARMETIS_LIBRARIES ${CMAKE_INSTALL_PREFIX}/parmetis/lib/libparmetis.a;${CMAKE_INSTALL_PREFIX}/metis/lib/libmetis.a) - - message(STATUS "Building SUPERLU found at ${SUPERLU_URL}") - ExternalProject_Add( superlu_dist - PREFIX ${PROJECT_BINARY_DIR}/superlu_dist - URL ${SUPERLU_URL} - INSTALL_DIR ${SUPERLU_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - DEPENDS parmetis metis - CMAKE_CACHE_ARGS -DTPL_PARMETIS_INCLUDE_DIRS:STRING=${CMAKE_INSTALL_PREFIX}/parmetis/include;${CMAKE_INSTALL_PREFIX}/metis/include - -DTPL_PARMETIS_LIBRARIES:STRING=${CMAKE_INSTALL_PREFIX}/parmetis/lib/libparmetis.a;${CMAKE_INSTALL_PREFIX}/metis/lib/libmetis.a - -DTPL_BLAS_LIBRARIES:STRING=${BLAS_LIBRARIES} - -DTPL_LAPACK_LIBRARIES:STRING=${LAPACK_LIBRARIES} - CMAKE_ARGS -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D XSDK_INDEX_SIZE=64 - -D CMAKE_C_COMPILER=${MPI_C_COMPILER} - -D CMAKE_CXX_COMPILER=${MPI_CXX_COMPILER} - -D CMAKE_Fortran_COMPILER=${MPI_Fortran_COMPILER} - -D MPI_C_COMPILER=${MPI_C_COMPILER} - -D MPI_CXX_COMPILER=${MPI_CXX_COMPILER} - -D CMAKE_C_STANDARD=99 - -D CMAKE_C_FLAGS=${SUPERLU_C_FLAGS} - -D CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} - -D CMAKE_CXX_FLAGS=${SUPERLU_CXX_FLAGS} - -D CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} - -D CMAKE_Fortran_FLAGS=${SUPERLU_Fortran_FLAGS} - -D CMAKE_Fortran_FLAGS_RELEASE=${CMAKE_Fortran_FLAGS_RELEASE} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CMAKE_INSTALL_PREFIX:PATH= - -D enable_openmp=${ENABLE_OPENMP} - ) - - list(APPEND build_list superlu_dist ) -endif() - -################################ -# HYPRE -################################ - -if( ENABLE_HYPRE ) - set( HYPRE_DIR "${CMAKE_INSTALL_PREFIX}/hypre" ) - set( HYPRE_URL "${TPL_MIRROR_DIR}/hypre-v2.32.0-33-g21e5953dd.tar.gz" ) - set( HYPRE_DEPENDS "" ) - - - message(STATUS "Building HYPRE found at ${HYPRE_URL}") - - set( HYPRE_C_COMPILER ${CMAKE_C_COMPILER} ) - set( HYPRE_CXX_COMPILER ${CMAKE_CXX_COMPILER} ) - set( HYPRE_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} ) - set( HYPRE_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS} ${CMAKE_C_FLAGS_${BUILD_TYPE_UPPER}}" ) - set( HYPRE_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS} ${CMAKE_CXX_FLAGS_${BUILD_TYPE_UPPER}}" ) - set( HYPRE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_${BUILD_TYPE_UPPER}}" ) - - if( ENABLE_MPI ) - set( HYPRE_C_COMPILER ${MPI_C_COMPILER} ) - set( HYPRE_CXX_COMPILER ${MPI_CXX_COMPILER} ) - set( HYPRE_Fortran_COMPILER ${MPI_Fortran_COMPILER} ) - set( HYPRE_SUPERLU_LIBS "${SUPERLU_DIR}/lib/libsuperlu_dist.a ${PARMETIS_DIR}/lib/libparmetis.a ${METIS_DIR}/lib/libmetis.a -lstdc++" ) - if( ENABLE_OPENMP ) - set( HYPRE_SUPERLU_LIBS "${HYPRE_SUPERLU_LIBS} ${OpenMP_C_FLAGS}" ) # Sergey: why is this needed? - endif() - set( HYPRE_SUPERLU_FLAGS "--with-dsuperlu --with-dsuperlu-include=${SUPERLU_DIR}/include --with-dsuperlu-lib=\"${HYPRE_SUPERLU_LIBS}\"" ) - list( APPEND HYPRE_DEPENDS superlu_dist ) - endif() - - if( ENABLE_OPENMP ) - set( HYPRE_OPENMP_FLAG --with-openmp ) - set( HYPRE_C_FLAGS "${HYPRE_C_FLAGS} ${OpenMP_C_FLAGS}" ) - set( HYPRE_CXX_FLAGS "${HYPRE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" ) - endif() - - if( ENABLE_HYPRE_DEVICE STREQUAL "CUDA" ) - if( NOT ENABLE_CUDA ) - message( FATAL_ERROR "Non-compatible options: HYPRE device cannot be set to CUDA when ENABLE_CUDA is OFF" ) - else() - list( APPEND HYPRE_DEPENDS chai ) - string( SUBSTRING ${CUDA_ARCH} 3 -1 HYPRE_CUDA_SM ) # sm_XY -> XY - set( HYPRE_CUDA_FLAGS "\ ---with-cuda --with-cuda-home=${CUDA_TOOLKIT_ROOT_DIR} \ ---enable-cusparse \ ---enable-cusolver \ ---enable-unified-memory \ ---with-gpu-arch=${HYPRE_CUDA_SM} \ ---with-umpire \ ---with-umpire-include=${CHAI_DIR}/include \ ---with-umpire-lib-dirs=${CHAI_DIR}/lib \ ---with-umpire-libs=umpire " ) - endif() - elseif( ENABLE_HYPRE_DEVICE STREQUAL "HIP" ) - message( FATAL_ERROR "hip tpls build only supported through spack" ) - endif() - - if( CMAKE_HOST_APPLE ) - set( HYPRE_INT_FLAG "--enable-bigint" ) - else() - set( HYPRE_INT_FLAG "--enable-mixedint" ) - endif() - - if( ENABLE_CALIPER_HYPRE ) - set( HYPRE_CALIPER_FLAGS "--with-caliper --with-caliper-include=\"${CALIPER_DIR}/include\" --with-caliper-lib=\"${CALIPER_DIR}/libs/caliper.a\"" ) - list( APPEND HYPRE_DEPENDS caliper ) - endif() - - if( CMAKE_BUILD_TYPE MATCHES Debug ) - set( HYPRE_DEBUG_FLAG "--enable-debug" ) - endif() - - file(WRITE ${PROJECT_BINARY_DIR}/config_hypre_for_geos "\ - ./configure \ - CC=${HYPRE_C_COMPILER} \ - CFLAGS=\"${HYPRE_C_FLAGS}\" \ - CXX=${HYPRE_CXX_COMPILER} \ - CXXFLAGS=\"${HYPRE_CXX_FLAGS}\" \ - FC=${HYPRE_Fortran_COMPILER} \ - FCFLAGS=\"${HYPRE_Fortran_FLAGS}\" \ - --prefix=${HYPRE_DIR} \ - --with-print-errors \ - ${HYPRE_DEBUG_FLAG} \ - ${HYPRE_INT_FLAG} \ - --with-blas-lib=\"${BLAS_LINK_LINE}\" \ - --with-lapack-lib=\"${LAPACK_LINK_LINE}\" \ - ${HYPRE_SUPERLU_FLAGS} \ - ${HYPRE_OPENMP_FLAG} \ - ${HYPRE_CUDA_FLAGS} \ - ${HYPRE_CALIPER_FLAGS}\n") - - ExternalProject_Add( hypre - URL ${HYPRE_URL} - PREFIX ${PROJECT_BINARY_DIR}/hypre - INSTALL_DIR ${HYPRE_DIR} - DEPENDS ${HYPRE_DEPENDS} - BINARY_DIR ${PROJECT_BINARY_DIR}/hypre/src/hypre/src - CONFIGURE_COMMAND cat ${PROJECT_BINARY_DIR}/config_hypre_for_geos && . ${PROJECT_BINARY_DIR}/config_hypre_for_geos - BUILD_COMMAND make -j ${NUM_PROC} VERBOSE=1 - INSTALL_COMMAND make install - ) - - list( APPEND build_list hypre ) -endif() - -################################ -# SUITESPARSE -################################ -if(ENABLE_SUITESPARSE) - set(SUITESPARSE_DIR "${CMAKE_INSTALL_PREFIX}/suitesparse") - set(SUITESPARSE_URL "${TPL_MIRROR_DIR}/SuiteSparse-5.10.1.tar.gz") - - message(STATUS "Building SUITESPARSE found at ${SUITESPARSE_URL}") - - set( SUITESPARSE_DEPENDS metis ) - - if( GEOSX_GLOBALINDEX_TYPE_FLAG EQUAL 0 ) - set( SUITESPARSE_LONG_INT_FLAGS "-DSuiteSparse_long=int -DSuiteSparse_long_max=2147483647 -DSuiteSparse_long_idd=\\\"d\\\" -D\'SuiteSparse_long_id=\\\"%d\\\"\'" ) - elseif( GEOSX_GLOBALINDEX_TYPE_FLAG EQUAL 2 ) - set( SUITESPARSE_LONG_INT_FLAGS "-D\'SuiteSparse_long=long long int\' -DSuiteSparse_long_max=2147483647 -DSuiteSparse_long_idd=\\\"d\\\" -D\'SuiteSparse_long_id=\\\"%d\\\"\'" ) - endif() - - set( SUITESPARSE_C_FLAGS "${CMAKE_C_FLAGS_${BUILD_TYPE_UPPER}}" ) - set( SUITESPARSE_CXX_FLAGS "${CMAKE_CXX_FLAGS_${BUILD_TYPE_UPPER}}" ) - set( SUITESPARSE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_${BUILD_TYPE_UPPER}}" ) - - set( SUITESPARSE_C_COMPILER ${CMAKE_C_COMPILER} ) - set( SUITESPARSE_CXX_COMPILER ${CMAKE_CXX_COMPILER} ) - set( SUITESPARSE_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} ) - - if (ENABLE_OPENMP) - set(SUITESPARSE_OPENMP_FLAG "${OpenMP_C_FLAGS}") - endif() - - set( SUITESPARSE_CONFIG_ARGS "CC=${SUITESPARSE_C_COMPILER} \ -CFLAGS=\"${SUITESPARSE_C_FLAGS} ${SUITESPARSE_LONG_INT_FLAGS}\" \ -CXX=${SUITESPARSE_CXX_COMPILER} \ -CXXFLAGS=\"${SUITESPARSE_CXX_FLAGS}\" \ -FC=${SUITESPARSE_Fortran_COMPILER} \ -FCFLAGS=\"${SUITESPARSE_Fortran_FLAGS}\" \ -JOBS=${NUM_PROC} \ -CFOPENMP=${SUITESPARSE_OPENMP_FLAG} \ -INSTALL=${SUITESPARSE_DIR} \ -BLAS=\"${BLAS_LINK_LINE}\" \ -LAPACK=\"${LAPACK_LINK_LINE}\" \ -MY_METIS_LIB=\"${CMAKE_INSTALL_PREFIX}/metis/lib/libmetis.a\" \ -MY_METIS_INC=\"${CMAKE_INSTALL_PREFIX}/metis/include\" \ -CUDA=no") - - # UMFPACK dependencies - set( SUITESPARSE_PACKAGES "SuiteSparse_config;AMD;BTF;CAMD;CCOLAMD;COLAMD;CHOLMOD;KLU;UMFPACK" ) - - set( SUITESPARSE_BUILD_CMD "" ) - foreach( PKG ${SUITESPARSE_PACKAGES} ) - set( SUITESPARSE_BUILD_CMD "${SUITESPARSE_BUILD_CMD}cd ${PKG} && \ -make ${SUITESPARSE_CONFIG_ARGS} library && \ -cd ..\n" ) - endforeach() - - set( SUITESPARSE_INSTALL_CMD "" ) - foreach( PKG ${SUITESPARSE_PACKAGES} ) - set( SUITESPARSE_INSTALL_CMD "${SUITESPARSE_INSTALL_CMD}cd ${PKG} && \ -make ${SUITESPARSE_CONFIG_ARGS} install && \ -cd ..\n" ) - endforeach() - - file(WRITE ${PROJECT_BINARY_DIR}/config_suitesparse_for_geos "make config ${SUITESPARSE_CONFIG_ARGS}\n") - file(WRITE ${PROJECT_BINARY_DIR}/build_suitesparse_for_geos ${SUITESPARSE_BUILD_CMD}) - file(WRITE ${PROJECT_BINARY_DIR}/install_suitesparse_for_geos ${SUITESPARSE_INSTALL_CMD}) - - ExternalProject_Add( suitesparse - URL ${SUITESPARSE_URL} - PREFIX ${PROJECT_BINARY_DIR}/suitesparse - INSTALL_DIR ${SUITESPARSE_DIR} - DEPENDS ${SUITESPARSE_DEPENDS} - BINARY_DIR ${PROJECT_BINARY_DIR}/suitesparse/src/suitesparse - CONFIGURE_COMMAND cat ${PROJECT_BINARY_DIR}/config_suitesparse_for_geos && . ${PROJECT_BINARY_DIR}/config_suitesparse_for_geos - BUILD_COMMAND cat ${PROJECT_BINARY_DIR}/build_suitesparse_for_geos && . ${PROJECT_BINARY_DIR}/build_suitesparse_for_geos - INSTALL_COMMAND cat ${PROJECT_BINARY_DIR}/install_suitesparse_for_geos && . ${PROJECT_BINARY_DIR}/install_suitesparse_for_geos - ) - - list(APPEND build_list suitesparse ) -endif(ENABLE_SUITESPARSE) - -################################ -# SCOTCH -################################ - -if( ENABLE_SCOTCH ) - set( SCOTCH_DIR "${CMAKE_INSTALL_PREFIX}/scotch" ) - set( SCOTCH_URL "${TPL_MIRROR_DIR}/scotch-v7.0.3.tar.gz" ) - - message( STATUS "Building SCOTCH found at ${SCOTCH_URL}" ) - - if( NOT ENABLE_MPI ) - message( FATAL_ERROR "Building Scotch without MPI is not supported." ) - endif() - - set( SCOTCH_C_FLAGS "${C_FLAGS_NO_WARNINGS} ${CMAKE_C_FLAGS_${BUILD_TYPE_UPPER}} -Wno-error=implicit-function-declaration -fPIC -DINTSIZE64 -DIDXSIZE64 -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_METIS_PREFIX -Drestrict=__restrict" ) - set( SCOTCH_LD_FLAGS "-lm" ) - - # OSX does not have pthread barriers used by Scotch - if( NOT CMAKE_HOST_APPLE ) - set( SCOTCH_C_FLAGS "${SCOTCH_C_FLAGS} -DCOMMON_PTHREAD -DSCOTCH_PTHREAD_MPI" ) - set( SCOTCH_LD_FLAGS "${SCOTCH_LD_FLAGS} -pthread" ) - endif() - - set( SCOTCH_CONFIG "\ -EXE = -OBJ = .o -LIB = .a -MAKE = make -AR = ar -ARFLAGS = -ruv -CAT = cat -CCS = ${MPI_C_COMPILER} -CCP = ${MPI_C_COMPILER} -CCD = ${MPI_C_COMPILER} -CFLAGS = ${SCOTCH_C_FLAGS} -CLIBFLAGS = -LDFLAGS = ${SCOTCH_LD_FLAGS} -CP = cp -FLEX = flex -LN = ln -MKDIR = mkdir -p -MV = mv -RANLIB = ranlib -BISON = bison -prefix = ${SCOTCH_DIR} -" ) - - file(WRITE ${PROJECT_BINARY_DIR}/scotch_makefile.inc "${SCOTCH_CONFIG}") - set( SCOTCH_BUILD_DIR "${PROJECT_BINARY_DIR}/scotch/src/scotch/src" ) - if ( NOT DEFINED SCOTCH_NUM_PROC ) - set( SCOTCH_NUM_PROC 2 ) - endif() - ExternalProject_Add( scotch - URL ${SCOTCH_URL} - PREFIX ${PROJECT_BINARY_DIR}/scotch - INSTALL_DIR ${SCOTCH_DIR} - BINARY_DIR ${SCOTCH_BUILD_DIR} - CONFIGURE_COMMAND cp ${PROJECT_BINARY_DIR}/scotch_makefile.inc ${SCOTCH_BUILD_DIR}/Makefile.inc - BUILD_COMMAND make -j 2 ptscotch scotch ptesmumps esmumps - INSTALL_COMMAND make install - ) - - list(APPEND build_list scotch ) - -endif() - -################################ -# PETSC -################################ - -if( ENABLE_PETSC ) - set(PETSC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/petsc") - set(PETSC_URL "${TPL_MIRROR_DIR}/petsc-3.19.4.tar.gz") - - message(STATUS "Building PETSC found at ${PETSC_URL}") - - set( PETSC_C_COMPILER ${CMAKE_C_COMPILER} ) - set( PETSC_CXX_COMPILER ${CMAKE_CXX_COMPILER} ) - set( PETSC_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} ) - set( PETSC_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS} ${CMAKE_C_FLAGS_${BUILD_TYPE_UPPER}}" ) - set( PETSC_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS} ${CMAKE_CXX_FLAGS_${BUILD_TYPE_UPPER}}" ) - set( PETSC_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_${BUILD_TYPE_UPPER}}" ) - - if( ENABLE_OPENMP ) - set(PETSC_OPENMP_FLAG "--with-openmp=1") - set(PETSC_C_FLAGS "${PETSC_C_FLAGS} ${OpenMP_C_FLAGS}") - set(PETSC_CXX_FLAGS "${PETSC_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - set(PETSC_Fortran_FLAGS "${PETSC_Fortran_FLAGS} ${OpenMP_Fortran_FLAGS}") - - if( PETSC_OMP_DIR ) - set(PETSC_OMP_DIR_FLAG "--with-openmp-dir=${PETSC_OMP_DIR}") - endif() - endif() - - if( CMAKE_BUILD_TYPE MATCHES Debug ) - set(PETSC_DEBUG_FLAG "--with-debugging=1") - else() - set(PETSC_DEBUG_FLAG "--with-debugging=0") - endif() - - set( PETSC_DEPENDS ) - set( PETSC_DEP_FLAG "" ) - - if( ENABLE_MPI ) - set( PETSC_C_COMPILER ${MPI_C_COMPILER} ) - set( PETSC_CXX_COMPILER ${MPI_CXX_COMPILER} ) - set( PETSC_Fortran_COMPILER ${MPI_Fortran_COMPILER} ) - set( PETSC_MPI_FLAG "--with-mpi=1" ) - set( PETSC_DEP_FLAGS "${PETSC_DEP_FLAG} --with-parmetis-dir=${PARMETIS_DIR} --with-superlu_dist-dir=${SUPERLU_DIR}") - list( APPEND PETSC_DEPENDS parmetis metis superlu_dist ) - else() - set( PETSC_MPI_FLAG "--with-mpi=0" ) - endif() - - if( ENABLE_SCOTCH ) - set( PETSC_DEP_FLAGS "${PETSC_DEP_FLAG} --with-ptscotch-dir=${SCOTCH_DIR}" ) - list( APPEND PETSC_DEPENDS scotch ) - endif() - - string(REPLACE ";" " " PETSC_BLAS_LIBS "${BLAS_LIBRARIES}") - string(REPLACE ";" " " PETSC_LAPACK_LIBS "${LAPACK_LIBRARIES}") - - file(WRITE ${PROJECT_BINARY_DIR}/config_petsc_for_geos "\ -./configure \ ---prefix=${PETSC_INSTALL_DIR} \ ---CC=${PETSC_C_COMPILER} \ ---CFLAGS=\"${PETSC_C_FLAGS}\" \ ---CXX=${PETSC_CXX_COMPILER} \ ---CXXFLAGS=\"${PETSC_CXX_FLAGS}\" \ ---FC=${PETSC_Fortran_COMPILER} \ ---FFLAGS=\"${PETSC_Fortran_FLAGS}\" \ ---with-fortran-bindings=0 \ ---with-metis-dir=${CMAKE_INSTALL_PREFIX}/metis \ ---with-64-bit-indices=1 \ ---known-mpi-int64_t=0 \ ---with-blas-lib=\"${PETSC_BLAS_LIBS}\" \ ---with-lapack-lib=\"${PETSC_LAPACK_LIBS}\" \ -${PETSC_DEBUG_FLAG} \ -${PETSC_OPENMP_FLAG} \ -${PETSC_OMP_DIR_FLAG} \ -${PETSC_MPI_FLAG} \ -${PETSC_DEP_FLAG}\n") - - ExternalProject_Add( petsc - URL ${PETSC_URL} - PREFIX ${PROJECT_BINARY_DIR}/petsc #outer petsc directory - DEPENDS ${PETSC_DEPENDS} - BINARY_DIR ${PROJECT_BINARY_DIR}/petsc/src/petsc - INSTALL_DIR ${PETSC_INSTALL_DIR} - CONFIGURE_COMMAND cat ${PROJECT_BINARY_DIR}/config_petsc_for_geos && . ${PROJECT_BINARY_DIR}/config_petsc_for_geos - BUILD_COMMAND make -j ${NUM_PROC} - INSTALL_COMMAND make install - ) - - list(APPEND build_list petsc ) -endif() - -################################ -# VTK -################################ -if( ENABLE_VTK ) - set( VTK_DIR "${CMAKE_INSTALL_PREFIX}/vtk" ) - set( VTK_URL "${TPL_MIRROR_DIR}/VTK-9.3.1.tar.gz" ) - - message( STATUS "Building VTK found at ${VTK_URL}" ) - - # Depending on the platform, the install directory could be 'lib' or 'lib64'. - # This makes the 'rpath' task more complicated to deal with a single script ('CMAKE_INSTALL_RPATH' option). - # Defining explicitly 'lib' deals with this issue. - # I'm no cmake expert and I do not know if there was a better way to deal with it. - set( VTK_CMAKE_INSTALL_LIBDIR "lib" ) - -if( ENABLE_MPI ) - set( VTK_C_COMPILER ${MPI_C_COMPILER} ) - set( VTK_CXX_COMPILER ${MPI_CXX_COMPILER} ) - set( VTK_USE_MPI ON ) - set( VTK_MODULE_ENABLE_VTK_IOParallelXML YES ) - set( VTK_MODULE_ENABLE_VTK_FiltersParallelDIY2 YES ) -else() - set( VTK_C_COMPILER ${CMAKE_C_COMPILER} ) - set( VTK_CXX_COMPILER ${CMAKE_CXX_COMPILER} ) - set( VTK_USE_MPI OFF ) - set( VTK_MODULE_ENABLE_VTK_IOParallelXML NO ) - set( VTK_MODULE_ENABLE_VTK_FiltersParallelDIY2 NO ) -endif( ENABLE_MPI ) - - ExternalProject_Add( vtk - PREFIX ${PROJECT_BINARY_DIR}/vtk - URL ${VTK_URL} - INSTALL_DIR ${VTK_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND "${TPL_INSTALL_COMMAND}" - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D CMAKE_C_COMPILER=${VTK_C_COMPILER} - -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D CMAKE_CXX_COMPILER=${VTK_CXX_COMPILER} - -D CMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} - -D VTK_USE_MPI=${VTK_USE_MPI} - -D VTK_MODULE_ENABLE_VTK_IOParallelXML=${VTK_MODULE_ENABLE_VTK_IOParallelXML} - -D VTK_MODULE_ENABLE_VTK_FiltersParallelDIY2=${VTK_MODULE_ENABLE_VTK_FiltersParallelDIY2} - -D CMAKE_INSTALL_PREFIX:PATH= - -D CMAKE_INSTALL_LIBDIR=${VTK_CMAKE_INSTALL_LIBDIR} - -D CMAKE_INSTALL_RPATH:PATH=/${VTK_CMAKE_INSTALL_LIBDIR} - -D VTK_GROUP_ENABLE_Imaging=DONT_WANT - -D VTK_GROUP_ENABLE_MPI=DONT_WANT - -D VTK_GROUP_ENABLE_Qt=DONT_WANT - -D VTK_GROUP_ENABLE_Rendering=DONT_WANT - -D VTK_GROUP_ENABLE_StandAlone=DONT_WANT - -D VTK_GROUP_ENABLE_Views=DONT_WANT - -D VTK_GROUP_ENABLE_Web=DONT_WANT - -D VTK_BUILD_ALL_MODULES=OFF - -D VTK_WRAP_PYTHON=${ENABLE_VTK_WRAP_PYTHON} - -D VTK_WRAP_JAVA=OFF - -D VTK_MODULE_ENABLE_VTK_vtkm=DONT_WANT - -D VTK_MODULE_ENABLE_VTK_IOXML=YES - -D VTK_MODULE_ENABLE_VTK_IOLegacy=YES - -D VTK_BUILD_TESTING=OFF - -D VTK_LEGACY_REMOVE=ON ) - - list( APPEND build_list vtk ) -endif( ENABLE_VTK ) - -################################ -# FMT -################################ -set(FMT_DIR "${CMAKE_INSTALL_PREFIX}/fmt") -set(FMT_URL "${TPL_MIRROR_DIR}/fmt-11.0.1.tar.gz") - -message(STATUS "Building FMT found at ${FMT_URL}") - -ExternalProject_Add( fmt - PREFIX ${PROJECT_BINARY_DIR}/fmt - URL ${FMT_URL} - INSTALL_DIR ${FMT_DIR} - BUILD_COMMAND ${TPL_BUILD_COMMAND} - INSTALL_COMMAND ${TPL_INSTALL_COMMAND} - CMAKE_GENERATOR ${TPL_GENERATOR} - CMAKE_ARGS -D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -D CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -D CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - -D CMAKE_INSTALL_PREFIX:PATH= - -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} - -D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -D CMAKE_CXX_STANDARD=14 - -D CMAKE_CXX_VISIBILITY_PRESET:STRING=default - -D CMAKE_VISIBILITY_INLINES_HIDDEN:BOOL=OFF - -D FMT_TEST:BOOL=OFF ) - -list(APPEND build_list fmt) - - -################################ -# Create target that builds all dependencies -################################ -message(STATUS "Building = ${build_list}") - -blt_add_executable( NAME tpl - SOURCES tpl.cpp ) - -add_dependencies( tpl ${build_list} ) - -# Clean up -add_custom_command( TARGET tpl POST_BUILD - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/config_silo_for_geos - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/config_hypre_for_geos - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/config_suitesparse_for_geos - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/build_suitesparse_for_geos - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/install_suitesparse_for_geos ) diff --git a/docker/pangea-spack.yaml b/docker/pangea-spack.yaml index 41a58997..02f13c47 100644 --- a/docker/pangea-spack.yaml +++ b/docker/pangea-spack.yaml @@ -42,40 +42,20 @@ spack: mpi: [openmpi] - # v0.6.2 - blt: - require: "@git.9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35=develop" - hypre: require: "@git.21e5953ddc6daaa24699236108866afa597a415c" - # v2025.0.3.0 - chai: - require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - - # v2025.0.3.0 - umpire: - require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" - - # v2025.0.3.0 - raja: - require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" - - # v2025.0.3.0 - camp: - require: "@git.ee0a3069a7ae72da8bcea63c06260fad34901d43=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - - # v0.9.2 - conduit: - require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" + # # v2025.0.3.0 + # chai: + # require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - uncrustify: - require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2" + # # v2025.0.3.0 + # umpire: + # require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" + # # v2025.0.3.0 + # raja: + # require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" superlu-dist: require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1" diff --git a/docker/rocky-spack.yaml b/docker/rocky-spack.yaml index 0f5b08ba..460174bc 100644 --- a/docker/rocky-spack.yaml +++ b/docker/rocky-spack.yaml @@ -22,6 +22,7 @@ spack: flags: cflags: -pthread cxxflags: -pthread + ldflags: -lstdc++fs modules: [] operating_system: rocky8 paths: @@ -59,41 +60,21 @@ spack: lapack: [netlib-lapack] mpi: [openmpi] - - # v0.6.2 - blt: - require: "@git.9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35=develop" - hypre: require: "@git.21e5953ddc6daaa24699236108866afa597a415c" - # v2025.0.3.0 - chai: - require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - - # v2025.0.3.0 - umpire: - require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" - - # v2025.0.3.0 - raja: - require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" - - # v2025.0.3.0 - camp: - require: "@git.ee0a3069a7ae72da8bcea63c06260fad34901d43=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - - # v0.9.2 - conduit: - require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" + # # v2025.0.3.0 + # chai: + # require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - uncrustify: - require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2" + # # v2025.0.3.0 + # umpire: + # require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" + # # v2025.0.3.0 + # raja: + # require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" + superlu-dist: require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1" diff --git a/docker/spack.yaml b/docker/spack.yaml index c82e84cf..48f0876a 100644 --- a/docker/spack.yaml +++ b/docker/spack.yaml @@ -145,41 +145,21 @@ spack: lapack: [netlib-lapack] mpi: [openmpi] - - # v0.6.2 - blt: - require: "@git.9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35=develop" - hypre: require: "@git.21e5953ddc6daaa24699236108866afa597a415c" - # v2025.0.3.0 - chai: - require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - - # v2025.0.3.0 - umpire: - require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" - - # v2025.0.3.0 - raja: - require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" - - # v2025.0.3.0 - camp: - require: "@git.ee0a3069a7ae72da8bcea63c06260fad34901d43=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - - # v0.9.2 - conduit: - require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" + # # v2025.0.3.0 + # chai: + # require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - uncrustify: - require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2" + # # v2025.0.3.0 + # umpire: + # require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" + # # v2025.0.3.0 + # raja: + # require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" + superlu-dist: require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1" diff --git a/docker/stanford-spack.yaml b/docker/stanford-spack.yaml index 0e2ee449..aa958fac 100644 --- a/docker/stanford-spack.yaml +++ b/docker/stanford-spack.yaml @@ -43,40 +43,21 @@ spack: blas: [openblas] lapack: [openblas] - # v0.6.2 - blt: - require: "@git.9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35=develop" - hypre: require: "@git.21e5953ddc6daaa24699236108866afa597a415c" - # v2025.0.3.0 - chai: - require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - - # v2025.0.3.0 - umpire: - require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" - - # v2025.0.3.0 - raja: - require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" - - # v2025.0.3.0 - camp: - require: "@git.ee0a3069a7ae72da8bcea63c06260fad34901d43=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - - # v0.9.2 - conduit: - require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" + # # v2025.0.3.0 + # chai: + # require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - uncrustify: - require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2" + # # v2025.0.3.0 + # umpire: + # require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" + # # v2025.0.3.0 + # raja: + # require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" + superlu-dist: require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1" diff --git a/scripts/config-build.py b/scripts/config-build.py deleted file mode 100755 index 2bc2bed1..00000000 --- a/scripts/config-build.py +++ /dev/null @@ -1,221 +0,0 @@ -#!/usr/bin/env python -# Python wrapper script for generating the correct cmake line with the options specified by the user. -# -# Please keep parser option names as close to possible as the names of the cmake options they are wrapping. - -import argparse -import logging -import os -import shutil -import subprocess -import stat -import sys - - -def extract_cmake_location(file_path): - logging.info("Extracting cmake entry from host config file " + file_path) - if os.path.exists(file_path): - cmake_line_prefix = "# cmake executable path: " - file_handle = open(file_path, "r") - content = file_handle.readlines() - for line in content: - if line.startswith(cmake_line_prefix): - return line.split(" ")[4].strip() - logging.info("Could not find a cmake entry in host config file. Using ${PATH}.") - return None - - -def parse_args(cli_arguments): - """ - Parse command line arguments into an ArgumentParser instance. - :param cli_arguments: The command line arguments as an array of string. - :return: The ArgumentParser instance. - """ - parser = argparse.ArgumentParser(description="Configure cmake build.") - - group = parser.add_mutually_exclusive_group() - group.add_argument("-bp", - "--buildpath", - dest="build_path", - type=str, - default="", - help="Specify path for build directory. If both `--buildpath` and `--buildrootdir` are not specified, the build directory will be created in current directory, in a subdirectory named `build--`. The `--buildpath` option is not compatible with `--buildrootdir`.") - - group.add_argument("-br", - "--buildrootdir", - dest="build_root_dir", - type=str, - default="", - metavar="BUILD_ROOT_DIR", - help="Specify path for root of build directory. The build directory will be created as `BUILD_ROOT_DIR/build--`. The `--buildrootdir` option is not compatible with `--buildpath`.") - - group = parser.add_mutually_exclusive_group() - group.add_argument("-ip", - "--installpath", - dest="install_path", - type=str, - default="", - help="Specify path for installation directory. If both `--installpath` and `--buildpathdir` are not specified, the install directory will be created in current directory, in a subdirectory named `install--`. The `--installpath` option is not compatible with `--installrootdir`.") - - group.add_argument("-ir", - "--installrootdir", - dest="install_root_dir", - type=str, - default="", - metavar="INSTALL_ROOT_DIR", - help="Specify path for root of install directory. The install directory will be created as `INSTALL_ROOT_DIR/build--`. The `--installrootdir` option is not compatible with `--installpath`.") - - parser.add_argument("-bt", - "--buildtype", - dest="build_type", - type=str, - choices=["Release", "Debug", "RelWithDebInfo", "MinSizeRel"], - default="Debug", - help="build type.") - - parser.add_argument("-e", - "--eclipse", - action='store_true', - help="create an eclipse project file.") - - parser.add_argument("-n", - "--ninja", - action='store_true', - help="Create a ninja project.") - - parser.add_argument("-x", - "--xcode", - action='store_true', - help="create an xcode project.") - - parser.add_argument("-ecc", - "--exportcompilercommands", - dest="export_compiler_commands", - action='store_true', - help="generate a compilation database. Can be used by the clang tools such as clang-modernize. Will create a file called 'compile_commands.json' in build directory.") - - parser.add_argument("-hc", - "--hostconfig", - dest="host_config", - required=True, - type=str, - help="select a specific host-config file to initalize CMake's cache") - - args, unknown_args = parser.parse_known_args(cli_arguments) - if unknown_args: - logging.info("Passing the following unknown arguments directly to cmake: %s" % unknown_args) - return args, unknown_args - - -def main(calling_script, args, unknown_args): - ######################## - # Find CMake Cache File - ######################## - scripts_dir = os.path.dirname(os.path.abspath(calling_script)) - - cache_file = os.path.abspath(args.host_config) - platform_info = os.path.split(cache_file)[1] - if platform_info.endswith(".cmake"): - platform_info = platform_info[:-6] - - assert os.path.exists(cache_file), "Could not find cmake cache file '%s'." % cache_file - logging.info("Using host config file: '%s'." % cache_file) - - ##################### - # Setup Build Dir - ##################### - if args.build_path: - # use explicit build path - build_path = args.build_path - else: - # use platform info & build type - build_path = "-".join(["build", platform_info, args.build_type.lower()]) - if args.build_root_dir != "": - build_path = os.path.join(args.build_root_dir, build_path) - - logging.info("Build path is: " + build_path) - - build_path = os.path.abspath(build_path) - - if os.path.exists(build_path): - logging.info("Build directory '%s' already exists. Deleting..." % build_path) - shutil.rmtree(build_path) - - logging.info("Creating build directory '%s'..." % build_path) - os.makedirs(build_path) - - ##################### - # Setup Install Dir - ##################### - # For install directory, we will clean up old ones, but we don't need to create it, cmake will do that. - if args.install_path != "": - install_path = os.path.abspath(args.install_path) - else: - # use platform info & build type - install_path = "-".join(["install", platform_info, args.build_type.lower()]) - if args.install_root_dir != "": - install_path = os.path.join(args.install_root_dir, install_path) - - install_path = os.path.abspath(install_path) - - if os.path.exists(install_path): - logging.info("Install directory '%s' already exists. Deleting..." % install_path) - shutil.rmtree(install_path) - - logging.info("Creating install path '%s'..." % install_path) - os.makedirs(install_path) - - ############################ - # Build CMake command line - ############################ - - cmake_line = list() - cmake_line.append(extract_cmake_location(cache_file) or "cmake") - - # Add build type (opt or debug) - cmake_line.append("-DCMAKE_BUILD_TYPE=" + args.build_type) - - cmake_line.append("-DCMAKE_INSTALL_PREFIX=%s" % install_path) - - if args.export_compiler_commands: - cmake_line.append("-DCMAKE_EXPORT_COMPILE_COMMANDS=ON") - - if args.eclipse: - cmake_line.append('-G"Eclipse CDT4 - Unix Makefiles"') - - if args.ninja: - cmake_line.append('-GNinja') - - if args.xcode: - cmake_line.append('-GXcode') - - for unknown_arg in unknown_args: - if not unknown_arg.startswith('-D'): - logging.warning("Additional argument '%s' does not start with '-D'. Keeping it nevertheless." % unknown_arg) - cmake_line.append(unknown_arg) - - # Append cache file at the end of the command line to make previous argument visible to the cache. - cmake_line.append("-C%s" % cache_file) - - cmake_line.append(os.path.normpath(os.path.join(scripts_dir, ".."))) - - # Dump the cmake command to file for convenience - cmake_cmd = os.path.join(build_path, "cmake_cmd") - with open(cmake_cmd, "w") as cmd_file: - cmd_file.write(" ".join(cmake_line) + os.linesep) - st = os.stat(cmake_cmd) - os.chmod(cmake_cmd, st.st_mode | stat.S_IEXEC) - - ############################ - # Run CMake - ############################ - logging.info("Changing to build directory '%s'" % build_path) - os.chdir(build_path) - with open(cmake_cmd, "r") as cmd_file: - logging.info("Executing cmake line: '%s'" % cmd_file.read().rstrip(os.linesep)) - subprocess.call(cmake_cmd, shell=True) - - -if __name__ == '__main__': - logging.basicConfig(format='[%(filename)s]:[%(levelname)s]: %(message)s', level=logging.INFO) - main(sys.argv[0], *parse_args(sys.argv[1:])) diff --git a/scripts/setupLC-TPL-helper.bash b/scripts/setupLC-TPL-helper.bash deleted file mode 100755 index 38abf15d..00000000 --- a/scripts/setupLC-TPL-helper.bash +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash - -## Builds the TPLs for a specific system and host config. -## Usage ./setupLC-TPL-helper.bash pathToGeosxDirectory pathToInstallDirectory machine compiler commandToGetANode [extra arguments to config-build ] -GEOS_DIR=$1 -INSTALL_DIR=$2 -MACHINE=$3 -COMPILER=$4 -GET_A_NODE=$5 - -if [[ ${MACHINE} == "ruby" ||\ - ${MACHINE} == "dane" ]]; then - CMAKE_VERSION=cmake/3.26.3 -elif [[ ${MACHINE} == "lassen" ]]; then - CMAKE_VERSION=cmake/3.29.2 -fi - -## Eat up the command line arguments so the rest can be forwarded to config-build. -shift -shift -shift -shift -shift - -CONFIG=$MACHINE-$COMPILER -LOG_FILE=$CONFIG.log -HOST_CONFIG=$GEOS_DIR/host-configs/LLNL/$CONFIG.cmake -INSTALL_DIR=$INSTALL_DIR/install-$CONFIG-release - -echo "Building the TPLs on $MACHINE for $HOST_CONFIG to be installed at $INSTALL_DIR. Progress will be written to $LOG_FILE." - -ssh $MACHINE -t " -. /etc/profile && -cd $PWD && -module load $CMAKE_VERSION -python3 scripts/config-build.py -hc $HOST_CONFIG -bt Release -ip $INSTALL_DIR $@ && -cd build-$CONFIG-release && -$GET_A_NODE make && -exit" > $LOG_FILE 2>&1 - -## Check the last three lines of the log file. A BLT smoke test should be the last -## thing built and should show up on one of the final lines. -tail -3 $LOG_FILE | grep -E "\[100%\] Built target blt_.*_smoke" > /dev/null -if [ $? -eq 0 ]; then - chmod g+rx -R $INSTALL_DIR - chgrp GEOS -R $INSTALL_DIR - echo "Build of $HOST_CONFIG completed successfully." - exit 0 -else - echo "Build of $HOST_CONFIG seemed to fail, check $LOG_FILE." - exit 1 -fi diff --git a/scripts/setupLC-TPL.bash b/scripts/setupLC-TPL.bash deleted file mode 100755 index c88b46be..00000000 --- a/scripts/setupLC-TPL.bash +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -## Builds the TPLs on all LC systems. Must be run from the top level TPL directory. -## Usage ./setupLC-TPL.bash pathToGeosDirectory pathToInstallDirectory [extra arguments to config-build ] -GEOS_DIR=$1 -INSTALL_DIR=$2 - -## Eat up the command line arguments so the rest can be forwarded to setupLC-TPL-helper. -shift -shift - -## Trap the interupt signal and kill all children. -trap 'killall' INT - -killall() { - trap '' INT TERM # ignore INT and TERM while shutting down - echo "**** Shutting down. Killing chid processes ****" # added double quotes - kill -TERM 0 # fixed order, send TERM not INT - wait - echo DONE -} - -mkdir toBeDeleted -mv build-* toBeDeleted -rm -rf toBeDeleted & - -echo "Building all LC TPLs from $GEOS_DIR to be installed at $INSTALL_DIR" - -./scripts/setupLC-TPL-helper.bash $GEOS_DIR $INSTALL_DIR ruby clang-14 "srun -N 1 -t 90 -n 1 -A vortex" $@ & -./scripts/setupLC-TPL-helper.bash $GEOS_DIR $INSTALL_DIR ruby gcc-12 "srun -N 1 -t 90 -n 1 -A vortex" $@ & -./scripts/setupLC-TPL-helper.bash $GEOS_DIR $INSTALL_DIR dane gcc-12 "srun -N 1 -t 90 -n 1 -A vortex" $@ & -./scripts/setupLC-TPL-helper.bash $GEOS_DIR $INSTALL_DIR lassen gcc-8-cuda-11 "lalloc 1 -qpdebug" $@ & -./scripts/setupLC-TPL-helper.bash $GEOS_DIR $INSTALL_DIR lassen clang-13-cuda-11 "lalloc 1 -qpdebug" $@ & -./scripts/setupLC-TPL-helper.bash $GEOS_DIR $INSTALL_DIR lassen clang-10-cuda-11 "lalloc 1 -qpdebug" $@ & -./scripts/setupLC-TPL-helper.bash $GEOS_DIR $INSTALL_DIR lassen clang-13-cuda-12 "lalloc 1 -qpdebug" $@ & - -wait - -chmod -R g+rx $INSTALL_DIR -chgrp -R GEOS $INSTALL_DIR - -echo "Complete" diff --git a/scripts/spack_configs/blueos_3_ppc64le_ib_p9/spack.yaml b/scripts/spack_configs/blueos_3_ppc64le_ib_p9/spack.yaml index 045401d1..f483c048 100644 --- a/scripts/spack_configs/blueos_3_ppc64le_ib_p9/spack.yaml +++ b/scripts/spack_configs/blueos_3_ppc64le_ib_p9/spack.yaml @@ -106,32 +106,17 @@ spack: hypre: require: "@git.21e5953ddc6daaa24699236108866afa597a415c" - # v2025.0.3.0 - chai: - require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" + # # v2025.0.3.0 + # chai: + # require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - # v2025.0.3.0 - umpire: - require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" + # # v2025.0.3.0 + # umpire: + # require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" - # v2025.0.3.0 - raja: - require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" - - # v2025.0.3.0 - camp: - require: "@git.ee0a3069a7ae72da8bcea63c06260fad34901d43=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - - # v0.9.2 - conduit: - require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" - - uncrustify: - require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2" + # # v2025.0.3.0 + # raja: + # require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" superlu-dist: require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1" diff --git a/scripts/spack_configs/macOS/spack.yaml b/scripts/spack_configs/macOS/spack.yaml index 71ab3714..537c3542 100644 --- a/scripts/spack_configs/macOS/spack.yaml +++ b/scripts/spack_configs/macOS/spack.yaml @@ -32,6 +32,26 @@ spack: BISON: bison FLEX: flex extra_rpaths: [] + - compiler: + spec: apple-clang@15.0.0 + paths: + cc: /usr/bin/clang + cxx: /usr/bin/clang++ + f77: /opt/homebrew/bin/gfortran + fc: /opt/homebrew/bin/gfortran + flags: + cflags: + cxxflags: + fflags: + operating_system: sonoma + target: aarch64 + modules: [] + environment: + set: # Needed for scotch + BISON: bison + FLEX: flex + extra_rpaths: [] + packages: all: @@ -42,41 +62,11 @@ spack: blas: [netlib-lapack] lapack: [netlib-lapack] - # v0.6.2 - blt: - require: "@git.9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35=develop" # master - 10/18/24 hypre: require: "@git.c893886d15eb57e87dd36efec23693ece3ddc88e" - # v2024.07.0 - chai: - require: "@git.df7741f1dbbdc5fff5f7d626151fdf1904e62b19=develop" - - # v2024.07.0 - umpire: - require: "@git.abd729f40064175e999a83d11d6b073dac4c01d2=develop" - - # v2024.07.0 - raja: - require: "@git.4d7fcba55ebc7cb972b7cc9f6778b48e43792ea1=develop" - - # v2024.07.0 - camp: - require: "@git.0f07de4240c42e0b38a8d872a20440cb4b33d9f5=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - - # v0.9.2 - conduit: - require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" - - uncrustify: - require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2" - superlu-dist: require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1" @@ -120,7 +110,7 @@ spack: externals: - spec: diffutils@3.11 prefix: /opt/homebrew/opt/diffutils - + autoconf: buildable: False externals: @@ -151,4 +141,16 @@ spack: buildable: False externals: - spec: addr2line@2.43.1 - prefix: /opt/homebrew/opt/binutils \ No newline at end of file + prefix: /opt/homebrew/opt/binutils + + zlib: + buildable: False + externals: + - spec: zlib@1.3.1 + prefix: /opt/homebrew/opt/zlib + + python: + buildable: false + externals: + - spec: python@3.13.2 + prefix: /opt/homebrew/opt/python@3.13 \ No newline at end of file diff --git a/scripts/spack_configs/toss_4_x86_64_ib/spack.yaml b/scripts/spack_configs/toss_4_x86_64_ib/spack.yaml index e66cd9ce..837d6554 100644 --- a/scripts/spack_configs/toss_4_x86_64_ib/spack.yaml +++ b/scripts/spack_configs/toss_4_x86_64_ib/spack.yaml @@ -102,33 +102,18 @@ spack: hypre: require: "@git.21e5953ddc6daaa24699236108866afa597a415c" - # v2025.0.3.0 - chai: - require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - - # v2025.0.3.0 - umpire: - require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" - - # v2025.0.3.0 - raja: - require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" - - # v2025.0.3.0 - camp: - require: "@git.ee0a3069a7ae72da8bcea63c06260fad34901d43=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - - # v0.9.2 - conduit: - require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" - - uncrustify: - require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2" - + # # v2025.0.3.0 + # chai: + # require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" + + # # v2025.0.3.0 + # umpire: + # require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" + + # # v2025.0.3.0 + # raja: + # require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" + superlu-dist: require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1" diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index d2b8815e..f503716a 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -88,7 +88,7 @@ class Geosx(CMakePackage, CudaPackage): depends_on('cmake@3.24:', type='build') - depends_on('blt') + depends_on('blt@0.6.2') # # Virtual packages @@ -100,26 +100,24 @@ class Geosx(CMakePackage, CudaPackage): # # Performance portability # - depends_on('raja ~examples~exercises~shared') + depends_on('raja@2024.07.0 ~examples~exercises~shared') depends_on("raja~openmp", when="~openmp") depends_on("raja+openmp", when="+openmp") - depends_on('umpire +c~examples+fortran~device_alloc~shared') + depends_on('umpire@2024.07.0 +c~examples+fortran~device_alloc~shared') depends_on("umpire~openmp", when="~openmp") depends_on("umpire+openmp", when="+openmp") - depends_on('chai +raja~examples~shared') + depends_on('chai@2024.07.0 +raja~examples~shared') depends_on("chai~openmp", when="~openmp") depends_on("chai+openmp", when="+openmp") - depends_on('camp') - with when('+cuda'): for sm_ in CudaPackage.cuda_arch_values: depends_on('raja+cuda cuda_arch={0}'.format(sm_), when='cuda_arch={0}'.format(sm_)) depends_on('umpire+cuda cuda_arch={0}'.format(sm_), when='cuda_arch={0}'.format(sm_)) depends_on('chai+cuda~separable_compilation cuda_arch={0}'.format(sm_), when='cuda_arch={0}'.format(sm_)) - depends_on('camp+cuda cuda_arch={0}'.format(sm_), when='cuda_arch={0}'.format(sm_)) + depends_on('camp@2024.07.0+cuda cuda_arch={0}'.format(sm_), when='cuda_arch={0}'.format(sm_)) # # IO @@ -127,10 +125,10 @@ class Geosx(CMakePackage, CudaPackage): depends_on('hdf5@1.12.1') depends_on('silo@4.11.1-bsd~fortran~shared') - depends_on('conduit~test~fortran~hdf5_compat~shared') + depends_on('conduit@0.9.2~test~fortran~hdf5_compat~shared') depends_on('adiak@0.4.0 ~shared', when='+caliper') - depends_on('caliper~gotcha~sampler~libunwind~libdw', when='+caliper') + depends_on('caliper@2.12.0~gotcha~sampler~libunwind~libdw', when='+caliper') depends_on('pugixml@1.13 ~shared') @@ -182,7 +180,7 @@ class Geosx(CMakePackage, CudaPackage): # # Dev tools # - depends_on('uncrustify', when='+uncrustify') + depends_on('uncrustify@0.80.1', when='+uncrustify') # # Documentation diff --git a/tplMirror/Caliper-2.12.0.tar.gz b/tplMirror/Caliper-2.12.0.tar.gz deleted file mode 100644 index 12c4753f..00000000 --- a/tplMirror/Caliper-2.12.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e76d64905e4c17676d78047a8e84edbcbe4176edf789850fce42f69a7d9d1e2 -size 2089422 diff --git a/tplMirror/RAJA-v2025.03.0.tar.gz b/tplMirror/RAJA-v2025.03.0.tar.gz deleted file mode 100644 index 49233dc7..00000000 --- a/tplMirror/RAJA-v2025.03.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60d047e04e7e7855f7b31e5f54bf66e465c52a6efb3871ace33cc8da1cb1b9ae -size 11182913 diff --git a/tplMirror/SuiteSparse-5.10.1.tar.gz b/tplMirror/SuiteSparse-5.10.1.tar.gz deleted file mode 100644 index 0748b2cb..00000000 --- a/tplMirror/SuiteSparse-5.10.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acb4d1045f48a237e70294b950153e48dce5b5f9ca8190e86c2b8c54ce00a7ee -size 59919745 diff --git a/tplMirror/VTK-9.3.1.tar.gz b/tplMirror/VTK-9.3.1.tar.gz deleted file mode 100644 index af0dec3b..00000000 --- a/tplMirror/VTK-9.3.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8354ec084ea0d2dc3d23dbe4243823c4bfc270382d0ce8d658939fd50061cab8 -size 99964158 diff --git a/tplMirror/adiak-0.4.0.tar.gz b/tplMirror/adiak-0.4.0.tar.gz deleted file mode 100644 index ef29dc36..00000000 --- a/tplMirror/adiak-0.4.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5f789998004a68f540d5d787a2062d8aa6a828f4787064221c5081f287a7b334 -size 1318684 diff --git a/tplMirror/asmjit-2e93826.zip b/tplMirror/asmjit-2e93826.zip deleted file mode 100644 index bd53b33e..00000000 --- a/tplMirror/asmjit-2e93826.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9182e6293d2c88661ee9457d4d1da4bd20fbb3d51a0603315176d243bd887ed5 -size 1289947 diff --git a/tplMirror/chai-2025.03.0.tar.gz b/tplMirror/chai-2025.03.0.tar.gz deleted file mode 100644 index 088ebdda..00000000 --- a/tplMirror/chai-2025.03.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:144917f3185b7d112392e9f99c1fbc74b9e0be79cdbee445e0879ea2487d3d73 -size 23937809 diff --git a/tplMirror/conduit-0.9.2.tar.gz b/tplMirror/conduit-0.9.2.tar.gz deleted file mode 100644 index 3c2c7838..00000000 --- a/tplMirror/conduit-0.9.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a5368bf2232e927db84d14b917c587a82389ca50d5a8e2b1f52bf7764a9f6cb -size 23576501 diff --git a/tplMirror/doxygen-1.8.20.tar.gz b/tplMirror/doxygen-1.8.20.tar.gz deleted file mode 100644 index b43cc788..00000000 --- a/tplMirror/doxygen-1.8.20.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3dbdf8814d6e68233d5149239cb1f0b40b4e7b32eef2fd53de8828fedd7aca15 -size 5065824 diff --git a/tplMirror/fmt-11.0.1.tar.gz b/tplMirror/fmt-11.0.1.tar.gz deleted file mode 100644 index c80cd4d1..00000000 --- a/tplMirror/fmt-11.0.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d009f7f89ac84c0a83f79ed602463d092fbf66763766a907c97fd02b100f5e9 -size 698903 diff --git a/tplMirror/hdf5-1.12.1.tar.gz b/tplMirror/hdf5-1.12.1.tar.gz deleted file mode 100644 index dd1398ee..00000000 --- a/tplMirror/hdf5-1.12.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:232d28ebc00917d39e6cf304a9a0b7b6d7849c4431042a82a9c248c32eb38b49 -size 13126779 diff --git a/tplMirror/hypre-v2.32.0-33-g21e5953dd.tar.gz b/tplMirror/hypre-v2.32.0-33-g21e5953dd.tar.gz deleted file mode 100644 index 30ea331e..00000000 --- a/tplMirror/hypre-v2.32.0-33-g21e5953dd.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6865203871f36b3160c21a7d565136cbc977bef707559b0b2f1788d8ced7ed9 -size 4400580 diff --git a/tplMirror/mathpresso-24d60e5.zip b/tplMirror/mathpresso-24d60e5.zip deleted file mode 100644 index edf1c96f..00000000 --- a/tplMirror/mathpresso-24d60e5.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21db69668f6787293d0b27ba61e4bf913522b0e137a47830fb66415f764d6bb1 -size 68177 diff --git a/tplMirror/parmetis-4.0.3-IDXTYPEWIDTH_64.tar.gz b/tplMirror/parmetis-4.0.3-IDXTYPEWIDTH_64.tar.gz deleted file mode 100644 index a5af258f..00000000 --- a/tplMirror/parmetis-4.0.3-IDXTYPEWIDTH_64.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:998f6a566b5738e0237af6096dd4ca954175c2b490b967f8b32c01563f7ac037 -size 5582306 diff --git a/tplMirror/petsc-3.19.4.tar.gz b/tplMirror/petsc-3.19.4.tar.gz deleted file mode 100644 index 8d69e955..00000000 --- a/tplMirror/petsc-3.19.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c941b71be52c3b764214e492df60109d12f97f7d854c97a44df0c4d958b3906 -size 16630006 diff --git a/tplMirror/pugixml-1.13.tar.gz b/tplMirror/pugixml-1.13.tar.gz deleted file mode 100644 index 444889ec..00000000 --- a/tplMirror/pugixml-1.13.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c5ad5d7caeb791420408042a7d88c2c6180781bf218feca259fd9d840a888e1 -size 573528 diff --git a/tplMirror/scotch-v7.0.3.tar.gz b/tplMirror/scotch-v7.0.3.tar.gz deleted file mode 100644 index f3e3cc8b..00000000 --- a/tplMirror/scotch-v7.0.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b5351f0ffd6fcae9ae7eafeccaa5a25602845b9ffd1afb104db932dd4d4f3c5 -size 7042800 diff --git a/tplMirror/silo-4.11.1-bsd.tar.xz b/tplMirror/silo-4.11.1-bsd.tar.xz deleted file mode 100644 index a53ead5a..00000000 Binary files a/tplMirror/silo-4.11.1-bsd.tar.xz and /dev/null differ diff --git a/tplMirror/silo-4.11.patch b/tplMirror/silo-4.11.patch deleted file mode 100644 index f599d994..00000000 --- a/tplMirror/silo-4.11.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- silo/src/silo/src/hdf5_drv/H5FDsilo.c 2021-09-10 15:22:52.000000000 -0700 -+++ ../tplMirror/H5FDsilo.c 2022-04-12 11:56:04.981156000 -0700 -@@ -252,13 +252,13 @@ - snprintf(msg, sizeof(msg), Msg "(errno=%d, \"%s\")", \ - Errno, strerror(Errno)); \ - ret_value = Ret; \ -- H5Epush_ret(Func, Cls, Maj, Min, msg, Ret) \ -+ H5Epush_ret(Func, Cls, Maj, Min, msg, Ret); \ - } - #else - #define H5E_PUSH_HELPER(Func,Cls,Maj,Min,Msg,Ret,Errno) \ - { \ - ret_value = Ret; \ -- H5Epush_ret(Func, Cls, Maj, Min, Msg, Ret) \ -+ H5Epush_ret(Func, Cls, Maj, Min, Msg, Ret); \ - } - #endif - -@@ -1355,7 +1355,7 @@ - assert(sizeof(hsize_t)<=8); - memcpy(p, &file->block_size, sizeof(hsize_t)); - if (H5Tconvert(H5T_NATIVE_HSIZE, H5T_STD_U64LE, 1, buf+8, NULL, H5P_DEFAULT)<0) -- H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1) -+ H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1); - - return 0; - } -@@ -1383,14 +1383,14 @@ - - /* Make sure the name/version number is correct */ - if (strcmp(name, "LLNLsilo")) -- H5Epush_ret(func, H5E_ERR_CLS, H5E_FILE, H5E_BADVALUE, "invalid silo superblock", -1) -+ H5Epush_ret(func, H5E_ERR_CLS, H5E_FILE, H5E_BADVALUE, "invalid silo superblock", -1); - - buf += 8; - /* Decode block size */ - assert(sizeof(hsize_t)<=8); - memcpy(x, buf, 8); - if (H5Tconvert(H5T_STD_U64LE, H5T_NATIVE_HSIZE, 1, x, NULL, H5P_DEFAULT)<0) -- H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1) -+ H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1); - ap = (hsize_t*)x; - /*file->block_size = *ap; ignore stored value for now */ - diff --git a/tplMirror/superlu_dist-0f6efc3.tar.gz b/tplMirror/superlu_dist-0f6efc3.tar.gz deleted file mode 100644 index 7957f077..00000000 --- a/tplMirror/superlu_dist-0f6efc3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:638ee5ac163173d1a3e0c12d1f5ac6225fb97ce69cbd712d7755b2678e6c6fa8 -size 1705455 diff --git a/tplMirror/superlu_dist-9.0.0.tar.gz b/tplMirror/superlu_dist-9.0.0.tar.gz deleted file mode 100644 index 07e8b255..00000000 --- a/tplMirror/superlu_dist-9.0.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa43d33d4b1b0f5f7b5ad7685e9a6bc25088832c6c74d2ab8f75a2c9f4e9e955 -size 2913310 diff --git a/tplMirror/trilinos-release-16-0-0.tar.gz b/tplMirror/trilinos-release-16-0-0.tar.gz deleted file mode 100644 index 917acdf6..00000000 --- a/tplMirror/trilinos-release-16-0-0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:46bfc40419ed2aa2db38c144fb8e61d4aa8170eaa654a88d833ba6b92903f309 -size 198059287 diff --git a/tplMirror/uncrustify-401a409.zip b/tplMirror/uncrustify-401a409.zip deleted file mode 100644 index 49773d2b..00000000 --- a/tplMirror/uncrustify-401a409.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:91724ed4cb39f9280c39dcdc81c542d5a19d54821bb9f0f9ff26e60077fc3358 -size 2610668