Skip to content

Conversation

@suvarchal
Copy link
Collaborator

@suvarchal suvarchal commented Nov 11, 2025

A few reasons to do this:

  • CVMix is downloaded build inside src/cvmix_driver, it pollutes the source tree which is a bit inconsistent with all other builds and makes cross build tests hard, better practice to stick to build inside build dir.
  • inconsistent with fesom's compiler options that are not passed to cvmix and own external dependency management patterns like netcdf with -DBUILD_NETCDF=ON.
  • i guess it is preferable to stick to build with cmake module then with bash script, eventually when we modularize fesom build and compiler flags we can pass on elegantly like, say we do debug build we want all libraries we build to also use then. right now we don't in fesom as we use target_compile_options which overrides cmake build defautls for different kind of builds.
  • (TODO) more importantly, CVMIX is on by default and downloads the source which means we need to support on different machines including ones that are internet-restrictive like mn5. so we need to give users option to specify path to CVMIX source, or we use git submodule in lib/cvmix to link to cvmix source or if license permits just include it with fesom (preferable) in src/lib like we do for metis or we don't use it as default
    TODO test with build with intel compiler.

@patrickscholz
Copy link
Contributor

patrickscholz commented Nov 12, 2025

@suvarchal: looks way more complicated than what i did! But okay if it works!

If i understand this well, than in the src/cvmix_driver/ folder will only remain the interface files and the custom cvmix files, right?! so the download_cvmix.sh is completely obsolet

@suvarchal
Copy link
Collaborator Author

Agree, it is not done yet and it would be way easier if we ship CVmix with fesom, what do you think about that.

@patrickscholz
Copy link
Contributor

patrickscholz commented Nov 12, 2025

Agree, it is not done yet and it would be way easier if we ship CVmix with fesom, what do you think about that.

@suvarchal : Due to possible licensing issues and also for the slimness of FESOM we wanted to get away from this path. I was hoping that with the "modularity" it would also become easier in the future to change to more recent releases. So we are not so fixed on using forever old version.
if your ExternalProject_Add(cvmix-build ...) approach works its fine with me.

@JanStreffing JanStreffing added this to the FESOM 2.7.1 milestone Nov 18, 2025
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.

4 participants