From e822c1b7a2457992e3dcf16f4c1326cd4bd8a903 Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Tue, 14 Nov 2023 15:09:04 +0100 Subject: [PATCH] trilinos: build with YAML --- HDF5/trilinos/build-xml | 123 ++++++++++++++++++++++++++++++++ HDF5/trilinos/files/config.yaml | 33 +++++++++ 2 files changed, 156 insertions(+) create mode 100755 HDF5/trilinos/build-xml create mode 100644 HDF5/trilinos/files/config.yaml diff --git a/HDF5/trilinos/build-xml b/HDF5/trilinos/build-xml new file mode 100755 index 0000000..df930b9 --- /dev/null +++ b/HDF5/trilinos/build-xml @@ -0,0 +1,123 @@ +#!/usr/bin/env modbuild + + +declare -rx AR=ar + +pbuild::configure() { + declare config_args=() + if [[ "${OS}" == "Linux" ]]; then + BLAS_PREFIX="${OPENBLAS_PREFIX}" + BLAS_INCLUDE_DIRS="${BLAS_PREFIX}/include" + BLAS_LIBRARY_DIRS="${BLAS_PREFIX}/lib64" + BLAS_LIBRARY_NAMES="openblas" + LAPACK_PREFIX="${OPENBLAS_PREFIX}" + + LAPACK_INCLUDE_DIRS="${LAPACK_PREFIX}/include" + LAPACK_LIBRARY_DIRS="${LAPACK_PREFIX}/lib64" + LAPACK_LIBRARY_NAMES="openblas" + config_args+=( "-DBLAS_LIBRARY_DIRS:PATH=${BLAS_LIBRARY_DIRS}" ) + config_args+=( "-DBLAS_INCLUDE_DIRS:PATH=${BLAS_LIBRARY_DIRS}" ) + config_args+=( "-DBLAS_LIBRARY_NAMES:STRING=${BLAS_LIBRARY_NAMES}" ) + config_args+=( "-DLAPACK_LIBRARY_DIRS:PATH=${LAPACK_LIBRARY_DIRS}" ) + config_args+=( "-DLAPACK_INCLUDE_DIRS:PATH=${LAPACK_INCLUDE_DIRS}" ) + config_args+=( "-DLAPACK_LIBRARY_NAMES:STRING=${LAPACK_LIBRARY_NAMES}" ) + fi + PARMETIS_INCLUDE_DIRS="${PARMETIS_PREFIX}/include" + PARMETIS_LIBRARIES="${PARMETIS_PREFIX}/lib/libparmetis.a" + METIS_INCLUDE_DIRS="${PARMETIS_PREFIX}/include" + METIS_LIBRARIES="${PARMETIS_PREFIX}/lib/libmetis.a" + + + if pbuild::version_lt 12.12.0; then + config_args+=( "-DTPL_ENABLE_DLlib:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_QT:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_MPI:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_BLAS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_LAPACK:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_METIS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_ParMETIS:BOOL=ON" ) + config_args+=( "-DTPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES" ) + config_args+=( "-DTPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES" ) + config_args+=( "-DTrilinos_ENABLE_Amesos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos2:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_AztecOO:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Belos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Epetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_EpetraExt:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Galeri:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Ifpack:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Isorropia:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_ML:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_NOX:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Optika:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_Teuchos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Tpetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_TESTS:BOOL=OFF" ) + elif pbuild::version_ge 12.12.0; then + + config_args+=( "-DGtest_SKIP_INSTALL:BOOL=ON" ) + config_args+=( "-DMueLu_ENABLE_Kokkos_Refactor:STRING=ON" ) + config_args+=( "-DMueLu_ENABLE_Kokkos_Refactor_Use_By_Default:STRING=ON" ) + config_args+=( "-DTpetra_ENABLE_DEPRECATED_CODE:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON" ) + config_args+=( "-DTpetra_ENABLE_TESTS:BOOL=OFF" ) + config_args+=( "-DTpetra_ENABLE_EXAMPLES:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_INT_INT:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_INT_LONG:BOOL=ON" ) + config_args+=( "-DTpetra_INST_INT_LONG_LONG:BOOL=OFF" ) + + config_args+=( "-DKokkos_ENABLE_Serial:BOOL=ON" ) + config_args+=( "-DKokkos_ENABLE_OpenMP:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Pthread:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda_UVM:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda_Lambda:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_SERIAL:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_DLlib:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_QT:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_MPI:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_BLAS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_LAPACK:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_METIS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_ParMETIS:BOOL=ON" ) + config_args+=( "-DTPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES" ) + config_args+=( "-DTPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES" ) + config_args+=( "-DTrilinos_ENABLE_SEACAS:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_OpenMP:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos2:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_AztecOO:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Belos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Epetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_EpetraExt:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Galeri:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Ifpack:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Isorropia:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_ML:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_NOX:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Optika:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_Teuchos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Tpetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_TESTS:BOOL=OFF" ) + fi + + cmake \ + -D CMAKE_BUILD_TYPE:STRING=Release \ + -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ + -DCMAKE_CXX_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \ + -DCMAKE_C_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \ + -DCMAKE_CXX_STANDARD:STRING="17" \ + -DCMAKE_Fortran_FLAGS:STRING="-fPIC" \ + "${config_args[@]}" \ + "${SRC_DIR}" || exit 1 +} + +pbuild::install_docfiles Copyright.txt LICENSE README RELEASE_NOTES + diff --git a/HDF5/trilinos/files/config.yaml b/HDF5/trilinos/files/config.yaml new file mode 100644 index 0000000..c253e01 --- /dev/null +++ b/HDF5/trilinos/files/config.yaml @@ -0,0 +1,33 @@ +--- +# yamllint disable rule:line-length +format: 1 +trilinos: + defaults: + group: HDF5 + overlay: base + relstage: stable + systems: [rhel7, rhel8, rhel9] + urls: + - url: https://github.com/trilinos/Trilinos/archive/refs/tags/$P-release-${V_MAJOR}-${V_MINOR}-${V_PATCHLVL}.tar.gz + name: $P-${V_PKG}.tar.gz + + versions: + 14.4.0: + variants: + - relstage: unstable + overlay: devel + group_deps: + compiler: {gcc: [10.4.0]} + mpi: {openmpi: [4.1.5]} + hdf5: {hdf5: [1.10.8]} + build_requires: [cmake/3.25.2, OpenBLAS/0.3.23, parmetis/4.0.3] + + 12.12.1: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [7.3.0]} + mpi: {openmpi: [1.10.7, 2.1.2, 3.0.0]} + hdf5: {hdf5: [1.10.1]} + build_requires: [hdf5/1.10.1, cmake/3.6.3, OpenBLAS/0.2.20, parmetis/4.0.3]