Skip to content

Commit

Permalink
Merge pull request #132 from SCOREC/ac/xsdk-changes
Browse files Browse the repository at this point in the history
Changes for sdk approval
  • Loading branch information
cwsmith authored Dec 5, 2024
2 parents 01889e6 + bc7ae5c commit b6678b0
Show file tree
Hide file tree
Showing 45 changed files with 3,373 additions and 380 deletions.
47 changes: 47 additions & 0 deletions .github/actions/install-repo/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Install-Repo

inputs:
repo-name:
required: true
repo-path:
required: true
repo-ref:
required: true
options:
required: true
cache:
required: true
submodules:
default: ''

runs:
using: "composite"
steps:

- name: Check Cache
if: ${{ inputs.cache == 'true'}}
uses: actions/cache@v3
id: check-cache
with:
key: build-${{ inputs.repo-name }}
path: ${{ runner.temp }}/build-${{ inputs.repo-name }}

- name: Checkout Repo
uses: actions/checkout@v3
with:
repository: ${{ inputs.repo-path }}
submodules: ${{ inputs.submodules }}
ref: ${{ inputs.repo-ref }}
path: ${{ inputs.repo-name }}

- name: Configure CMake
if: ${{ !steps.check-cache.outputs.cache-hit }}
shell: bash
run: cmake -S $GITHUB_WORKSPACE/${{ inputs.repo-name }} -B ${{ runner.temp }}/build-${{ inputs.repo-name }}
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-${{ inputs.repo-name }}/install
${{ inputs.options }}

- name: Build Cmake
if: ${{ !steps.check-cache.outputs.cache-hit }}
shell: bash
run: cmake --build ${{ runner.temp }}/build-${{ inputs.repo-name }} -j8 --target install
241 changes: 74 additions & 167 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,179 +35,86 @@ jobs:
- name: Install Valgrind
run: sudo apt-get install -yq valgrind

# Build Kokkos
- uses: actions/checkout@v4

- name: Cache Kokkos Build
uses: actions/cache@v3
id: build-kokkos
- name: build kokkos
uses: ./.github/actions/install-repo
with:
key: build-kokkos
path: ${{ runner.temp }}/build-kokkos

- name: Kokkos Checkout repo
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
repo-name: 'kokkos'
repo-path: 'kokkos/kokkos'
repo-ref: '4.2.00'
cache: true
options: '-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DKokkos_ENABLE_SERIAL=ON
-DKokkos_ENABLE_OPENMP=off
-DKokkos_ENABLE_CUDA=off
-DKokkos_ENABLE_CUDA_LAMBDA=off
-DKokkos_ENABLE_DEBUG=on'

- name: build omega_h
uses: ./.github/actions/install-repo
with:
repository: kokkos/kokkos
ref: 4.1.00
path: kokkos

- name: Kokkos Create Directory
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-kokkos

- name: Kokkos Configure CMake
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/kokkos -B ${{ runner.temp }}/build-kokkos
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-kokkos/install
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DKokkos_ENABLE_SERIAL=ON
-DKokkos_ENABLE_OPENMP=off
-DKokkos_ENABLE_CUDA=off
-DKokkos_ENABLE_CUDA_LAMBDA=off
-DKokkos_ENABLE_DEBUG=on

- name: Kokkos Build
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-kokkos -j8 --target install

# Build EnGPar

- name: Cache Engpar Build
uses: actions/cache@v3
id: build-engpar
repo-name: 'omega_h'
repo-path: 'SCOREC/omega_h'
repo-ref: ''
cache: true
options: '-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=OFF
-DOmega_h_USE_Kokkos=ON
-DOmega_h_USE_CUDA=off
-DOmega_h_USE_MPI=on
-DMPIEXEC_EXECUTABLE=srun
-DBUILD_TESTING=off
-DCMAKE_C_COMPILER=mpicc
-DCMAKE_CXX_COMPILER=mpicxx
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install/lib/cmake'

- name: build Engpar
uses: ./.github/actions/install-repo
with:
key: build-engpar
path: ${{ runner.temp }}/build-engpar

- name: EnGPar Checkout repo
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
repo-name: 'Engpar'
repo-path: 'SCOREC/EnGPar'
repo-ref: ''
cache: true
options: '-DCMAKE_C_COMPILER=mpicc
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_CXX_FLAGS="-std=c++11"
-DENABLE_PARMETIS=OFF
-DENABLE_PUMI=OFF
-DIS_TESTING=OFF'

- name: build cabana
uses: ./.github/actions/install-repo
with:
repository: SCOREC/EnGPar
path: engpar

- name: EnGPar Create Directory
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-engpar

- name: EnGPar Configure CMake
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/engpar -B ${{ runner.temp }}/build-engpar
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-engpar/install
-DCMAKE_C_COMPILER="mpicc"
-DCMAKE_CXX_COMPILER="mpicxx"
-DCMAKE_CXX_FLAGS="-std=c++11"
-DENABLE_PARMETIS=OFF
-DENABLE_PUMI=OFF
-DIS_TESTING=OFF

- name: EnGPar Build
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-engpar -j8 --target install

# Build Omega_h

- name: Cache Omega_h Build
uses: actions/cache@v3
id: build-omega_h
with:
key: build-omega_h
path: ${{ runner.temp }}/build-omega_h

- name: Omega_h Checkout repo
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
repo-name: 'cabana'
repo-path: 'ECP-copa/cabana'
repo-ref: '0.6.1'
cache: true
options: '-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake'

- name: build pumi-pic
uses: ./.github/actions/install-repo
with:
repository: SCOREC/omega_h
ref: scorec-v10.8.0
path: omega_h

- name: Omega_h Create Directory
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-omega_h

- name: Omega_h Configure CMake
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/omega_h -B ${{ runner.temp }}/build-omega_h
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-omega_h/install
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake
-DBUILD_SHARED_LIBS=OFF
-DOmega_h_USE_Kokkos=ON
-DOmega_h_USE_CUDA=off
-DOmega_h_USE_MPI=on
-DCMAKE_BUILD_TYPE=Release
-DBUILD_TESTING=on
-DCMAKE_CXX_COMPILER="mpicxx"
-DCMAKE_C_COMPILER="mpicc"

- name: Omega_h Build
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-omega_h -j8 --target install

# Build Cabana

- name: Cache Cabana Build
uses: actions/cache@v3
id: build-cabana
with:
key: build-cabana
path: ${{ runner.temp }}/build-cabana

- name: Cabana Checkout repo
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
with:
repository: ECP-copa/cabana
path: cabana

- name: Cabana Create Directory
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-cabana

- name: Cabana Configure CMake
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/cabana -B ${{ runner.temp }}/build-cabana
-DCMAKE_BUILD_TYPE="Release"
-DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-cabana/install

- name: Cabana Build
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-cabana -j8 --target install

# Build PUMI-PIC

- name: PUMI-PIC Checkout repo
uses: actions/checkout@v3
with:
submodules: recursive
repository: SCOREC/pumi-pic
path: pumi-pic

- name: PUMI-PIC Create Directory
run: cmake -E make_directory ${{ runner.temp }}/build-pumi-pic

- name: PUMI-PIC Configure CMake
run: cmake -S $GITHUB_WORKSPACE/pumi-pic -B ${{ runner.temp }}/build-pumi-pic
-DCMAKE_CXX_COMPILER=mpicxx
-DIS_TESTING=ON
-DPS_IS_TESTING=ON
-DPP_ENABLE_MEMCHECK=${{matrix.memory_test}}
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DTEST_DATA_DIR=$GITHUB_WORKSPACE/pumi-pic/pumipic-data
-DOmega_h_PREFIX=${{ runner.temp }}/build-omega_h/install
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install
-DEnGPar_PREFIX=${{ runner.temp }}/build-engpar/install
-DCabana_PREFIX=${{ runner.temp }}/build-cabana/install
-DENABLE_CABANA=on
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-pumi-pic/install
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake

- name: PUMI-PIC Build
run: cmake --build ${{ runner.temp }}/build-pumi-pic -j8 --target install
repo-name: 'pumi-pic'
repo-path: 'SCOREC/pumi-pic'
submodules: 'recursive'
repo-ref: ''
cache: false
options: '-DCMAKE_CXX_COMPILER=mpicxx
-DIS_TESTING=ON
-DPS_IS_TESTING=ON
-DPP_ENABLE_MEMCHECK=${{ matrix.memory_test }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DTEST_DATA_DIR=$GITHUB_WORKSPACE/pumi-pic/pumipic-data
-DOmega_h_PREFIX=${{ runner.temp }}/build-omega_h/install
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install
-DEnGPar_PREFIX=${{ runner.temp }}/build-Engpar/install
-DCabana_PREFIX=${{ runner.temp }}/build-cabana/install
-DENABLE_CABANA=on
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake'

- name: PUMI-PIC Test
if: ${{matrix.memory_test == 'OFF'}}
Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/update_doxygen_pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Update Doxygen Page

on:
push:
branches:
- master

jobs:
doxygen:
runs-on: ubuntu-latest
permissions:
contents: write

steps:

- name: Install Doxygen
run: |
sudo apt-add-repository universe
sudo apt-get update
sudo apt-get install doxygen
- name: Checkout Original
uses: actions/checkout@v4
with:
path: original

- name: Run Doxygen
working-directory: original
run: doxygen

- name: Checkout Pages
uses: actions/checkout@v4
with:
path: pages

- name: Set up pages directory
working-directory: pages
run: |
git checkout --orphan gh-pages
git rm -rf .
cp -r ../original/html/. .
- name: Update Github
working-directory: pages
run: |
git config user.name "GitHub Actions Bot"
git config user.email "<>"
git add .
git commit -m "Update page from action"
git push -f origin gh-pages
9 changes: 8 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.0.0)

project(pumipic VERSION 2.1.3 LANGUAGES CXX)
project(pumipic VERSION 2.1.4 LANGUAGES CXX)

include(cmake/bob.cmake)

Expand Down Expand Up @@ -86,6 +86,13 @@ if(Omega_h_VERSION VERSION_LESS 10.8.0)
message(FATAL_ERROR "Omega_h version >= 10.8.0 required.")
endif()

if(EnGPar_VERSION VERSION_LESS 1.1.0)
message(FATAL_ERROR "EnGPar version >= 1.1.0 required.")
endif()

option(PUMIPIC_PRINT_ENABLED "PUMIPIC print statements enabled" ON)
find_package(spdlog QUIET)

set(debug_flag)
if (PP_ENABLE_DEBUG_SYMBOLS)
set(debug_flag "-g")
Expand Down
Loading

0 comments on commit b6678b0

Please sign in to comment.