diff --git a/.github/workflows/build_variant.yml b/.github/workflows/build_variant.yml index a6738f6866..3118a13745 100644 --- a/.github/workflows/build_variant.yml +++ b/.github/workflows/build_variant.yml @@ -70,6 +70,7 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -84,6 +85,7 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -98,6 +100,7 @@ jobs: fortran: "NO", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -112,6 +115,7 @@ jobs: fortran: "NO", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -126,6 +130,7 @@ jobs: fortran: "NO", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -140,6 +145,7 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -154,6 +160,7 @@ jobs: fortran: "NO", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -168,6 +175,7 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "YES", extra: "", @@ -182,6 +190,7 @@ jobs: fortran: "NO", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "APPLICATIONS=NO LEGACY=NO", @@ -196,6 +205,7 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "YES", gtest: "YES", extra: "", @@ -210,6 +220,7 @@ jobs: fortran: "YES", use_kokkos: "YES", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "", @@ -224,6 +235,7 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "NO", extra: "OMIT_DEPRECATED=YES", @@ -238,6 +250,7 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "NO", + use_faodel: "NO", use_catalyst2: "NO", gtest: "YES", extra: "MODERN=YES", @@ -252,6 +265,22 @@ jobs: fortran: "YES", use_kokkos: "NO", use_adios2: "YES", + use_faodel: "NO", + use_catalyst2: "NO", + gtest: "YES", + extra: "", + sanitizer: "NO" # address, integer, thread, memory, undefined + } + - { + name: "FAODEL enabled", + os: ubuntu-latest, + compiler: "mpi", + debug: "NO", + threadsafe: "NO", + fortran: "YES", + use_kokkos: "NO", + use_adios2: "NO", + use_faodel: "YES", use_catalyst2: "NO", gtest: "YES", extra: "", @@ -277,10 +306,10 @@ jobs: run: ls ${HOME} && ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}/lib - name: install additional TPL - if: ${{ matrix.config.use_kokkos == 'YES' || matrix.config.use_adios2 == 'YES' || matrix.config.gtest == 'YES' || matrix.config.use_catalyst == 'YES' }} + if: ${{ matrix.config.use_kokkos == 'YES' || matrix.config.use_adios2 == 'YES' || matrix.config.gtest == 'YES' || matrix.config.use_faodel == 'YES' || matrix.config.use_catalyst == 'YES' }} run: | set -x - COMPILER=${{ matrix.config.compiler }} KOKKOS=${{ matrix.config.use_kokkos }} ADIOS2=${{ matrix.config.use_adios2 }} CATALYST2=${{ matrix.config.use_catalyst2 }} GNU_PARALLEL=OFF GTEST=${{ matrix.config.gtest }} INSTALL_PATH=${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} ./install-tpl.sh + COMPILER=${{ matrix.config.compiler }} KOKKOS=${{ matrix.config.use_kokkos }} ADIOS2=${{ matrix.config.use_adios2 }} CATALYST2=${{ matrix.config.use_catalyst2 }} FAODEL=${{ matrix.config.use_faodel }} GNU_PARALLEL=OFF GTEST=${{ matrix.config.gtest }} INSTALL_PATH=${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} ./install-tpl.sh ls ${HOME} && ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}/lib ### diff --git a/TPL/faodel/runcmake.sh b/TPL/faodel/runcmake.sh index 428e383a23..be2886b319 100644 --- a/TPL/faodel/runcmake.sh +++ b/TPL/faodel/runcmake.sh @@ -6,9 +6,9 @@ if [ "X$ACCESS" == "X" ] ; then echo "ACCESS set to ${ACCESS}" fi INSTALL_PATH=${INSTALL_PATH:-${ACCESS}} - . ${ACCESS}/TPL/compiler.sh +BOOST_ROOT=${BOOST_ROOT:-${INSTALL_PATH}} if [ "X$BOOST_ROOT" == "X" ] ; then BOOST_ROOT=$(cd ../../../..; pwd) echo "Faodel requires these Boost packages: atomic log log_setup serialization" @@ -27,7 +27,7 @@ cmake .. \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} \ -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON \ -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DBUILD_SHARED_LIBS:BOOL=ON \ -DGTEST_ROOT=${GTEST_ROOT} \ -DBOOST_ROOT=${BOOST_ROOT} \ -DFaodel_NETWORK_LIBRARY=nnti \ diff --git a/install-tpl.sh b/install-tpl.sh index 4443907d13..836a1b3eb7 100755 --- a/install-tpl.sh +++ b/install-tpl.sh @@ -120,13 +120,16 @@ H5VERSION=${H5VERSION:-V114} FAODEL=${FAODEL:-NO} FAODEL=$(check_valid FAODEL) +BOOST=${BOOST:-${FAODEL}} +BOOST=$(check_valid BOOST) + ADIOS2=${ADIOS2:-NO} ADIOS2=$(check_valid ADIOS2) CATALYST2=${CATALYST2:-NO} CATALYST2=$(check_valid CATALYST2) -GTEST=${GTEST:-NO} +GTEST=${GTEST:-${FAODEL}} GTEST=$(check_valid GTEST) MPI=${MPI:-NO} @@ -837,7 +840,7 @@ fi # =================== INSTALL ADIOS2 =============== if [ "$ADIOS2" == "YES" ] then - if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libadios2.${LD_EXT} ] + if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libadios2_c.${LD_EXT} ] then echo "${txtgrn}+++ ADIOS2${txtrst}" cd $ACCESS || exit @@ -998,10 +1001,37 @@ then fi fi +# =================== INSTALL BOOST =============== +if [ "$BOOST" == "YES" ] +then + if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/include/boost ] + then + # FAODEL Requires Boost... For now, just download and install + echo "${txtgrn}+++ Installing Boost as dependency of Faodel${txtrst}" + cd $ACCESS || exit + cd TPL/boost || exit + BOOST_VER="1_82_0" + if [ "$DOWNLOAD" == "YES" ] + then + wget --no-check-certificate "https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_${BOOST_VER}.tar.bz2" + tar xf boost_${BOOST_VER}.tar.bz2 + fi + if [ "$BUILD" == "YES" ] + then + echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}" + cd boost_${BOOST_VER} + ./bootstrap.sh --prefix=${INSTALL_PATH} + ./b2 -a install + fi + else + echo "${txtylw}+++ Boost already installed. Skipping download and installation.${txtrst}" + fi +fi + # =================== INSTALL FAODEL =============== if [ "$FAODEL" == "YES" ] then - if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libkelpie.a ] + if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libkelpie.${LD_EXT} ] then faodel_base="faodel" echo "${txtgrn}+++ Faodel${txtrst}" @@ -1011,7 +1041,7 @@ then then echo "${txtgrn}+++ Downloading...${txtrst}" rm -rf faodel* - git clone git@github.com:faodel/faodel.git + git clone https://github.com/sandialabs/faodel.git fi if [ "$BUILD" == "YES" ]