Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The cmake command will be printed near the top of the e3sm build log (located in $EXEROOT/e3sm.bldlog.*). If you copy this command (you do need (and probably don't want) to copy the output redirection stuff at the end), you can 'cd $EXEROOT/cmake-bld; paste cmake cmd' and you'll then be configuring E3SM just like case.build would. Be sure not to forget to source $case/.env_mach_specific.sh first so that your environment matches the CIME build environment. Note: the e3sm.bldlog file won't exist until a build is first attemped. It might make sense to make a new tool for providing the cmake command directly.

Invoking

...

make (or

...

ninja) directly

If doing development and fixing compile errors, it would probably be most efficient to run ninja make directly rather than going through case.build. Be sure not to forget to source $case/.env_mach_specific.sh first so that your environment matches the CIME build environment. 'cd $EXEROOT/cmake-bld' and just run 'ninjamake' ( you can add -jN of course too). Note: once the build is complete, you'll still need to run case.build in order for CIME bookkeeping to occur; it should only take a few seconds.

...

Be sure not to forget to source $case/.env_mach_specific.sh first so that your environment matches the CIME build environment. 'cd $EXEROOT/cmake-bld && ninjamake'. Copy the build line for the broken compilation and paste it into your terminal and make tweaks.

...

Be sure not to forget to source $case/.env_mach_specific.sh first so that your environment matches the CIME build environment. 'cd $EXEROOT/cmake-bld' . Just find and edit the appropriate link.txt file (will typically be  cmake/cpl/CMakeFiles/e3sm.exe.dir/link.txt, edit, and re-run ninjamake).

Temporarly tweak CPP defs for a component

...

Clean my build

'cd $EXEROOT/cmake-bld; ninja make clean'

Totally clean my build

...

Build only a specific component

'cd $EXEROOT/cmake-bld; ninja make $comp_class' e.g ("atm")

Clean only a specific component

'cd $EXEROOT/cmake-bld/cmake/$comp_class; ninja make clean'