refactor(oakengine): absorb oakcore host symbols into the dylib

The 'host-provided' oakcore_audioparams_* runtime imports dated from
the deleted C++ host; the facade is their only caller. The dylib now
defines and exports the six symbols itself (repr(C) AudioParams mirror,
liboakcore-compatible semantics), -Wl,-undefined,dynamic_lookup is gone,
and the Windows DLL undefined-symbol blocker is removed by construction
(Windows CI/packaging stays off until a real toolchain verifies links).
This commit is contained in:
2026-08-16 18:05:03 +08:00
parent e346ea5338
commit 4e5d8747b5
13 changed files with 322 additions and 288 deletions
+4 -3
View File
@@ -29,9 +29,10 @@ libc = "0.2"
# oakaudio/oakplugin, and clearly marked STUBs for the handle-based
# oaknode/oaktimeline paths).
#
# The remaining undefined imports are the C++ host-provided symbols
# (`oakcore_audioparams_*` from liboakcore), which build.rs leaves as
# runtime lookups for the host app (see src/stubs.rs audio module).
# The `oakcore_audioparams_*` accessors the audio paths read through are
# implemented inside the dylib too (src/stubs.rs, module `audio`, M12 P5):
# they used to be C++ liboakcore host-provided symbols left as runtime
# lookups, which blocked Windows DLL linking.
#
# src/linkage.rs anchors every crate (and oakcore-rs) so the linker pulls
# their object files into the cdylib.