You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Use C++20 in both standalone and coupled builds - #601
The changes to Omega's build system to support C++20, brought in by #405, only affected standalone builds. After #566, we are using Kokkos5 and need C++20 in coupled mode (in addition to standalone). This PR moves setting the CMAKE_CXX_STANDARD and CMAKE_CXX_STANDARD_REQUIRED into the common macro, so that they apply to both couple and standalone builds.
Without the changes in this PR, any C/G cases that attempted to build off develop would produce and error along the lines of:
-- Configured git information in /lustre/orion/cli115/proj-shared/anolan/e3sm_scratch/SMS_Vmct.T62_oQU240.GOMEGA-IAF.frontier_craygnu.develop/bld/cmake-bld/externals/kokkos/generated/Kokkos_Version_Info.cpp
-- Kokkos is configured for CMake languages CXX compilation (using GNU version 14.2.0)
CMake Error at /autofs/nccs-svm1_home2/anolan/repos/Omega/develop/externals/ekat/extern/kokkos/cmake/kokkos_test_cxx_std.cmake:89 (message):
Kokkos requires C++20 or newer but requested 17!
With the changes in this PR, I can successfully build SMS_Vmct.T62_oQU240.GOMEGA-IAF on frontier with the craygnu compiler. I'm having issue running that case, because the LCRC server is down as part of the maintenance. The input data for the case is missing, which is why CIME is attempting to connect to the LCRC server.
I'm currently setting up tests on perlmutter, which should hopefully have the needed inputdata downloaded.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The changes to Omega's build system to support C++20, brought in by #405, only affected standalone builds. After #566, we are using Kokkos5 and need C++20 in coupled mode (in addition to standalone). This PR moves setting the
CMAKE_CXX_STANDARDandCMAKE_CXX_STANDARD_REQUIREDinto thecommonmacro, so that they apply to both couple and standalone builds.Without the changes in this PR, any C/G cases that attempted to build off
developwould produce and error along the lines of:Checklist
Linting
Building
Testing
aurora, oneapi-ifx, mpich
chrysalis, oneapi-ifx, openmpi
frontier, craygnu, mpich
SMS_Vmct_Ld1.T62_oQU240.GOMEGA-IAFfrontier, craygnu-mphipcc, mpich
pm-cpu, intel, mpich
SMS_Vmct_Ld1.T62_oQU240.GOMEGA-IAFpm-gpu, gnugpu, mpich