Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update cmake build #48

Merged
merged 26 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/actions/buildshare/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: SHARE build and cache
description: 'Build the SHARE library'
inputs:
share_version:
description: 'Tag in the SHARE repository to use'
default: main
required: False
type: string
pio_path:
description: 'Path to the installed parallelio code root'
default: $HOME/pio
required: False
type: string
esmfmkfile:
description: 'Path to the installed ESMF library mkfile'
default: $HOME/ESMF/lib/libg/Linux.gfortran.64.openmpi.default/esmf.mk
required: False
type: string
src_root:
description: 'Path to share source'
default: $GITHUB_WORKSPACE
required: False
type: string
cmake_flags:
description: 'Extra flags for cmake command'
default: -Wno-dev
required: False
type: string
install_prefix:
description: 'Install path of share'
default: $HOME/share
required: False
type: string
runs:
using: composite
steps:
- id : Build-SHARE
shell: bash
run: |
mkdir build-share
pushd build-share
export ESMFMKFILE=${{ inputs.esmfmkfile }}
export PIO_ROOT=${{ inputs.pio_path }}
cmake ${{ inputs.cmake_flags }} ${{ inputs.src_root }}
make VERBOSE=1
popd
77 changes: 77 additions & 0 deletions .github/workflows/extbuild.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# This is a workflow to compile the share source without cime
name: extbuild
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the main branch
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build-share:
runs-on: ubuntu-latest
env:
CC: mpicc
FC: mpifort
CXX: mpicxx
CPPFLAGS: "-I/usr/include -I/usr/local/include "
LDFLAGS: "-L/usr/lib/x86_64-linux-gnu "
# Versions of all dependencies can be updated here - these match tag names in the github repo
ESMF_VERSION: v8.6.1
ParallelIO_VERSION: pio2_6_2
steps:
- id: checkout-share
uses: actions/checkout@v4
- id: load-env
run: |
sudo apt-get update
sudo apt-get install gfortran
sudo apt-get install wget
sudo apt-get install openmpi-bin libopenmpi-dev
sudo apt-get install netcdf-bin libnetcdf-dev libnetcdff-dev
sudo apt-get install pnetcdf-bin libpnetcdf-dev
- name: Cache PARALLELIO
id: cache-PARALLELIO
uses: actions/cache@v4
with:
path: ${GITHUB_WORKSPACE}/pio
key: ${{ runner.os }}-${{ env.ParallelIO_VERSION }}-pio
- name: Build ParallelIO
if: steps.cache-PARALLELIO.outputs.cache-hit != 'true'
uses: NCAR/ParallelIO/.github/actions/parallelio_cmake@9390e30e29d4ebbfbef0fc72162cacd9e8f25e4e
with:
parallelio_version: ${{ env.ParallelIO_VERSION }}
enable_fortran: True
install_prefix: ${GITHUB_WORKSPACE}/pio
- name: Install ESMF
uses: esmf-org/install-esmf-action@v1
env:
ESMF_COMPILER: gfortran
ESMF_BOPT: g
ESMF_COMM: openmpi
ESMF_NETCDF: nc-config
ESMF_PNETCDF: pnetcdf-config
ESMF_INSTALL_PREFIX: ${GITHUB_WORKSPACE}/ESMF
ESMF_PIO: external
ESMF_PIO_INCLUDE: ${GITHUB_WORKSPACE}/pio/include
ESMF_PIO_LIBPATH: ${GITHUB_WORKSPACE}/pio/lib
with:
version: ${{ env.ESMF_VERSION }}
esmpy: false
cache: true

- name: Build SHARE
uses: ./.github/actions/buildshare
with:
esmfmkfile: $ESMFMKFILE
pio_path: ${GITHUB_WORKSPACE}/pio
src_root: ${GITHUB_WORKSPACE}
cmake_flags: " -Wno-dev -DCMAKE_BUILD_TYPE=DEBUG -DWERROR=ON -DCMAKE_Fortran_FLAGS=\"-DCPRGNU -g -Wall \
-ffree-form -ffree-line-length-none -fallow-argument-mismatch\" \
-DCMAKE_MODULE_PATH=$ESMF_ROOT/cmake"
- name: Test CDEPS
run: |
cd build-share
make VERBOSE=1
177 changes: 0 additions & 177 deletions .github/workflows/srt.yml

This file was deleted.

Loading
Loading