104 lines
3.1 KiB
YAML
104 lines
3.1 KiB
YAML
# GitHub action to build LAMMPS on Linux with gcc or clang and C++23
|
|
name: "Check for C++23 Compatibility"
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- develop
|
|
pull_request:
|
|
branches:
|
|
- develop
|
|
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{github.event_name == 'pull_request'}}
|
|
|
|
jobs:
|
|
build:
|
|
name: Build with C++23 support enabled
|
|
if: ${{ github.repository == 'lammps/lammps' }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
max-parallel: 2
|
|
matrix:
|
|
idx: [ gcc, clang ]
|
|
env:
|
|
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 2
|
|
|
|
- name: Install extra packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y ccache \
|
|
clang \
|
|
libcurl4-openssl-dev \
|
|
libeigen3-dev \
|
|
libfftw3-dev \
|
|
libomp-dev \
|
|
mold \
|
|
mpi-default-bin \
|
|
mpi-default-dev \
|
|
ninja-build \
|
|
python3-dev
|
|
|
|
- name: Create Build Environment
|
|
run: mkdir build
|
|
|
|
- name: Set up ccache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ${{ env.CCACHE_DIR }}
|
|
key: linux-cpp23-ccache-${{ matrix.idx }}-${{ github.sha }}
|
|
restore-keys: linux-cpp23-ccache-${{ matrix.idx }}
|
|
|
|
- name: Building LAMMPS via CMake
|
|
shell: bash
|
|
run: |
|
|
ccache -z
|
|
python3 -m venv linuxenv
|
|
source linuxenv/bin/activate
|
|
python3 -m pip install numpy
|
|
python3 -m pip install pyyaml
|
|
cmake -S cmake -B build \
|
|
-C cmake/presets/most.cmake \
|
|
-C cmake/presets/kokkos-openmp.cmake \
|
|
-C cmake/presets/${{ matrix.idx }}.cmake \
|
|
-D CMAKE_CXX_STANDARD=23 \
|
|
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-D CMAKE_BUILD_TYPE=Debug \
|
|
-D CMAKE_CXX_FLAGS_DEBUG="-Og -g" \
|
|
-D DOWNLOAD_POTENTIALS=off \
|
|
-D FFT=KISS \
|
|
-D BUILD_MPI=on \
|
|
-D BUILD_SHARED_LIBS=on \
|
|
-D BUILD_TOOLS=off \
|
|
-D ENABLE_TESTING=off \
|
|
-D MLIAP_ENABLE_ACE=on \
|
|
-D MLIAP_ENABLE_PYTHON=off \
|
|
-D PKG_AWPMD=on \
|
|
-D PKG_GPU=on \
|
|
-D GPU_API=opencl \
|
|
-D PKG_KOKKOS=on \
|
|
-D PKG_LATBOLTZ=on \
|
|
-D PKG_MDI=on \
|
|
-D PKG_MANIFOLD=on \
|
|
-D PKG_ML-PACE=on \
|
|
-D PKG_ML-RANN=off \
|
|
-D PKG_MOLFILE=on \
|
|
-D PKG_RHEO=on \
|
|
-D PKG_PTM=on \
|
|
-D PKG_PYTHON=on \
|
|
-D PKG_QTB=on \
|
|
-D PKG_SMTBQ=on \
|
|
-G Ninja
|
|
cmake --build build
|
|
ccache -s
|