Commit c02644b
committed
[#1474] Record build toolchain and ABI metadata
Add a generated build-info path that records the compiler, target, runtime,
Python ABI, SWIG runtime, Eigen settings, and selected C/C++ layout canaries
for an installed Basilisk package. The metadata is exposed through
Basilisk.getBuildInfo() and Basilisk.printBuildInfo() so users and future
BSK-SDK compatibility checks can inspect the binary that was actually built.
Add architecture/utilities/bskAbiDescriptor.h as the public ABI descriptor
contract shared by Basilisk and SDK-side probes. The header owns the descriptor
version, plugin ABI version, canary types, and C/C++ extraction helpers so the
two sides do not need to maintain parallel ABI-detection logic.
Generate the runtime ABI payload with a small compiled C/C++ probe. The probe
uses the same public descriptor header and shared bskPluginAbiSettings interface
as native Basilisk targets, so it observes the same C++ standard, Python limited
API definition, Eigen include/link settings, and compiler behavior.
Wire metadata generation into the CMake build and refresh it for loadable module
targets. Keep the generation dependency off internal static/shared libraries to
avoid multi-config generated-source dependency issues, while still applying the
shared ABI settings interface to native targets.
Pass relevant Conan and Python build settings into CMake, including the selected
Basilisk version, Conan version, C++ standard/library/runtime settings, build
type, and invoking Python executable.
Add tests covering the public descriptor contract, compiled ABI payload shape,
C layout canaries, platform-specific C++ ABI fields, defensive copy behavior,
and human-readable build-info formatting.1 parent b845f0d commit c02644b
9 files changed
Lines changed: 1754 additions & 0 deletions
File tree
- src
- architecture/utilities
- cmake
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
380 | 380 | | |
381 | 381 | | |
382 | 382 | | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
383 | 393 | | |
384 | 394 | | |
385 | 395 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
695 | 696 | | |
696 | 697 | | |
697 | 698 | | |
| 699 | + | |
| 700 | + | |
698 | 701 | | |
699 | 702 | | |
700 | 703 | | |
701 | 704 | | |
| 705 | + | |
702 | 706 | | |
703 | 707 | | |
704 | 708 | | |
| |||
707 | 711 | | |
708 | 712 | | |
709 | 713 | | |
| 714 | + | |
710 | 715 | | |
711 | 716 | | |
712 | 717 | | |
| |||
0 commit comments