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

Add cmake build copied from COSIMA/access-om3 #6

Open
wants to merge 21 commits into
base: main
Choose a base branch
from

Conversation

aidanheerdegen
Copy link
Member

Add CMake build infrastructure.

CMakelists.txt copied from https://github.com/COSIMA/access-om3/blob/main/CICE/CMakeLists.txt with some common code copied from the top level https://github.com/COSIMA/access-om3/blob/main/CMakeLists.txt.

Closes #5

@anton-seaice anton-seaice marked this pull request as draft January 14, 2025 02:27
@anton-seaice anton-seaice self-assigned this Jan 14, 2025
@anton-seaice anton-seaice marked this pull request as ready for review January 14, 2025 03:51
@anton-seaice
Copy link
Collaborator

@micaeljtoliveira - if you have time to review that would be great.

This builds a library called cicelib from using the nuopc/cmeps driver code and the access3-share libraries. This is a companion PR to ACCESS-NRI/access3-share#2

@anton-seaice
Copy link
Collaborator

@apcraig - I would like to merge this upstream into the CICE-consortium repository at some point. I don't think there is general interest in a cmake build, so do you have a suggested folder/location for this to be clear its ACCESS specific? (rather than a general CICE thing)

@apcraig
Copy link

apcraig commented Jan 14, 2025

Hi @anton-seaice. This looks interesting. I don't think we want to move to cmake at the moment, but maybe someone else in the community will find it useful. I don't think it belongs in the cicecore/drivers area. What if we created a new directory, configuration/scripts/cmake (or cmake-access)? We could have a README there that explains it's not used by the standalone model. We could add a little bit of documentation to the user guide to explain how it might be used if someone wanted to use it? Are these cmake scripts fairly general or is the implementation focused on the ACCESS model? What are your thoughts about where we should place them?

@anton-seaice
Copy link
Collaborator

anton-seaice commented Jan 15, 2025

Thanks @apcraig

I agree that configuration/scripts makes sense - it could be configuration/scripts/cmake or configuration/scripts/machines/cmake

There are two supported variations here, one is the standalone build. This is fairly general and should work for most people wanting to use cice-standalone. (I had thought I could add this as a CI triggered build, although maybe its not particularly useful ... its slightly related to CICE-Consortium#933)

The other one is the cice library using the nuopc/cmeps driver. This depends on having already built cmeps/cdeps/share libraries (which ACCESS have bunlded together in one CMake package) and so is less useful. We don't use CIME, but CESM (and UFS??) are built somehow through CIME, so whilst they do use CMake, its not really linked to how ACCESS is using CMake.

Copy link
Member

@micaeljtoliveira micaeljtoliveira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anton-seaice Overall looks good, just a couple of suggestions/questions. Might come back and have a look at the namespaces once this is settled in your other PR.

cmake/CMakeLists.txt Outdated Show resolved Hide resolved
cmake/CMakeLists.txt Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

cmake build
4 participants