Update cmake configuration - #35
Yaswant Pradhan (yaswant) wants to merge 8 commits into
Conversation
|
Trying to compile with Ninja caught some useful issues, e.g.,: This is a classic Ninja dyndep conflict: both The fix is to give each standalone target its own private I think the whole project can be CMake-refactored, once we deprecate the legacy approach. Additional changes in 25d97c3 |
Sam Clarke-Green (t00sa)
left a comment
There was a problem hiding this comment.
This PR contains a number of unrelated changes. They need to be split up into separate changes.
The core of the change reinstates features that were removed during the migration to CMake, e.g. multiple libraries and the convoluted versioning of different routines. If there are dependencies, e.g. mule, that expect these features, the solution is to modernise the dependency, not to reintroduce obsolete features back into shumlib.
PR Summary
This change finishes the CMake install parity work so downstream consumers (e.g., Mule) get the same critical install artifacts expected from the legacy build flow.
Code Reviewer: Sam Clarke-Green (@t00sa)
What's changed
libshum_constants.solibshum_string_conv.solibshum_wgdos_packing.solibshum_byteswap.solibshum_spiral_search.soshumlib_version.hc_shum_wgdos_packing_version.hSHUMLIB_VERSIONfor external consumers before includingshumlib_version.h.lib64directory for librarieslibsymlink pointing tolib64This keeps the existing aggregate library behaviour while adding/installing the required standalone targets and compatibility headers needed by downstream users.
I'll add an example wrapper script in MetOffice/mule in a separate Mule PR.
Checks
Code Quality Checklist
(Some checks are automatically carried out via the CI pipeline)
readability of the code
Testing
acceptable (eg. kgo changes)
tests, unit tests, etc.)
trac.log
Security Considerations
Performance Impact
performance measurements have been conducted
AI Assistance and Attribution
of Generative AI tool name (e.g., Met Office Github Copilot Enterprise,
Github Copilot Personal, ChatGPT GPT-4, etc) and I have followed the
Simulation Systems AI policy(including attribution labels)
Documentation
confirmed that it builds correctly
Code Review