# GitHub action to build LAMMPS on Linux with gcc and C++23 name: "Check for C++23 Compatibility" on: push: branches: - develop pull_request: branches: - develop workflow_dispatch: jobs: build: name: Build with C++23 support enabled if: ${{ github.repository == 'lammps/lammps' }} runs-on: ubuntu-latest 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 \ libeigen3-dev \ libcurl4-openssl-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-${{ github.sha }} restore-keys: linux-cpp23-ccache- - 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 \ -D CMAKE_CXX_STANDARD=23 \ -D CMAKE_CXX_COMPILER=g++ \ -D CMAKE_C_COMPILER=gcc \ -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 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