Add Derecho build documentation and build script#765
Draft
Conversation
Remove yaml-cpp from install targets in packaging CMakeLists since it is a transitive dependency of mechanism_configuration and not a top-level target. Add DERECHO_BUILD.md with step-by-step build and test notes for MUSICA with MICM and TUV-x on NCAR Derecho. Reference it from README. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rename build doc, update README reference, remove CMakeLists fix note, and replace hardcoded install path with generic $USER-based example. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace module listing with explicit module load commands from the Derecho environment setup. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Switch module environment to ncarenv/25.10 + gcc/14.3.0 to support C++20 <format> header required by mechanism_configuration. Add openblas/0.3.30 for BLAS/LAPACK and enable CARMA alongside MICM and TUV-x. All 7 tests pass. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add build_derecho.sh to automate the full build workflow (modules, cmake, build, test, install) with install prefix and parallel jobs as arguments. Update BUILD_DERECHO.md with quick-start section referencing the script and enable MUSICA_BUILD_FORTRAN_INTERFACE. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reorganize machine-specific build script and docs into machines/<machine>/ layout to support multiple HPC systems. Build directory now drops into machines/derecho/build/. Update README.md link accordingly. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Contributor
|
📄 Documentation for this branch is available at: https://ncar.github.io/musica/branch/build_derecho/ |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #765 +/- ##
=======================================
Coverage 71.51% 71.51%
=======================================
Files 115 115
Lines 8739 8739
=======================================
Hits 6250 6250
Misses 2489 2489
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
When mechanism_configuration is included in musica_Exports, its public dependency yaml-cpp must also be resolvable. Conditionally add yaml-cpp to the export set when it was fetched via FetchContent, and always call find_dependency(yaml-cpp) in the config template for consumers. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When yaml-cpp is fetched via FetchContent it is already included in the musica_Exports export set, so consumers do not need to locate it separately. Only call find_dependency(yaml-cpp) in the config file when yaml-cpp was found as a system package and not bundled. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Lmod's module shell function internally runs commands that return non-zero, causing set -e to silently kill the script before reaching the build steps. Move strict mode after module loading and add tool verification as a safety net. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Conda environments can provide a shared libyaml-cpp.so via find_package, preventing FetchContent from building a static library. Add CMAKE_DISABLE_FIND_PACKAGE_yaml-cpp=ON to force a source build, and YAML_CPP_INSTALL=ON so make install places libyaml-cpp.a in the install prefix for downstream consumers. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
machines/derecho/)MUSICA_BUILD_FORTRAN_INTERFACE=ON) and CARMA in the documented buildyaml-cpptarget from the install export list insrc/packaging/CMakeLists.txt(it was not a valid export target)README.mdChanges
machines/derecho/BUILD.mdmachines/derecho/build.shsrc/packaging/CMakeLists.txtyaml-cppfrom the CMake install export listREADME.mdTest plan
machines/derecho/build.sh /glade/work/$USER/packageson Derecho and verify all 7 tests passmake installcompletes without the previousyaml-cppexport errorfind_package(musica)