Skip to content

Link granular libneo sub-targets (decompose-neo-core)#435

Open
krystophny wants to merge 4 commits into
mainfrom
dep-audit/decompose-neo-core
Open

Link granular libneo sub-targets (decompose-neo-core)#435
krystophny wants to merge 4 commits into
mainfrom
dep-audit/decompose-neo-core

Conversation

@krystophny

Copy link
Copy Markdown
Member

Summary

Matches libneo dep-audit/decompose-neo-core, which splits the monolithic LIBNEO::neo umbrella into granular sub-targets. The simple library now links only what it uses:

  • LIBNEO::coordinates for libneo_coordinates, vmec_coordinates, cylindrical_cartesian (pulls vmec_support, interpolate, nctools, util transitively, covering new_vmec_stuff_mod, spline_vmec_sub, spl_three_to_five_sub, etc.)
  • LIBNEO::field for neo_biotsavart
  • LIBNEO::odeint for odeint_allroutines_sub
  • LIBNEO::util for libneo_kinds

The umbrella LIBNEO::neo is no longer needed.

Verification

Built against libneo dep-audit/decompose-neo-core (Release, gfortran). Before adding LIBNEO::odeint:

field_can_meiss.f90:368: Fatal Error: Cannot open module file 'odeint_allroutines_sub.mod'

After the final sub-target set: build green (Linking Fortran static library src/libsimple.a, all executables linked, exit 0). Fast/unit ctest suite: 40/40 pass (test_chartmap_pipeline passes in 43.7 s standalone; only flagged a 60 s ctest timeout under full -j parallel load, not a correctness failure).

Required by itpplasma/libneo#275 which moved VMEC support files
into a dedicated sub-target.
Replace LIBNEO::neo with the specific sub-targets simple needs:
coordinates (libneo_coordinates, transitively vmec_support/interpolate/
nctools/util), field (neo_biotsavart), odeint (odeint_allroutines_sub),
and util (libneo_kinds).
main now uses libneo boozer_sub, field_base, field_vmec and
vmec_field_eval modules directly (SIMPLE copies dropped in cb64f23),
which the LIBNEO::neo umbrella previously provided. Add the matching
granular sub-targets so the build resolves those modules without the
umbrella.
@krystophny

Copy link
Copy Markdown
Member Author

Merged main; resolved python/CMakeLists.txt conflict by keeping main's canonical_coordinates_mod path fallback, and added LIBNEO::boozer, LIBNEO::magnetic_field_base, LIBNEO::vmec_field to the granular link set since main now consumes those libneo modules directly.

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.

1 participant