4098b252bc
ci / web (push) Failing after 46s
apple / swift (push) Successful in 1m17s
ci / docs-site (push) Failing after 32s
ci / rust (push) Successful in 1m20s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 5s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 5s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 5s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 4s
deb / build-publish (push) Successful in 3m16s
docker / deploy-docs (push) Successful in 18s
rpm / build-publish (push) Successful in 4m43s
cbindgen swept transport/udp.rs's `recvmsg_x` foreign import and its `MsghdrX` #[repr(C)] struct into the generated C header — they're internal Apple-only FFI, not part of the public C ABI, and reference socklen_t/ssize_t/iovec which the C ABI harness doesn't include, so c_abi_harness_round_trips failed to compile. Add them to cbindgen.toml export.exclude and regenerate the header. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
64 lines
2.1 KiB
TOML
64 lines
2.1 KiB
TOML
language = "C"
|
|
pragma_once = true
|
|
include_guard = "PUNKTFUNK_CORE_H"
|
|
autogen_warning = "/* Generated by cbindgen from punktfunk-core. Do not edit by hand. */"
|
|
header = "/* punktfunk-core C ABI — see crates/punktfunk-core/src/abi.rs */"
|
|
style = "type"
|
|
cpp_compat = true
|
|
tab_width = 4
|
|
documentation = true
|
|
documentation_style = "c99"
|
|
|
|
[parse]
|
|
parse_deps = false
|
|
|
|
[export]
|
|
# Internal Apple-only FFI (transport/udp.rs `recvmsg_x` batched recv + its `MsghdrX`) — NOT part of
|
|
# the C ABI. cbindgen otherwise sweeps the foreign import and its #[repr(C)] struct into the header,
|
|
# where socklen_t/ssize_t/iovec are undefined and the C harness fails to compile.
|
|
exclude = ["MsghdrX", "recvmsg_x"]
|
|
|
|
[export.rename]
|
|
"InputEvent" = "PunktfunkInputEvent"
|
|
"InputKind" = "PunktfunkInputKind"
|
|
# Gamepad wire constants: bare BTN_* names collide with <linux/input-event-codes.h> (at
|
|
# DIFFERENT values — last definition silently wins); prefix everything we export.
|
|
"BTN_DPAD_UP" = "PUNKTFUNK_BTN_DPAD_UP"
|
|
"BTN_DPAD_DOWN" = "PUNKTFUNK_BTN_DPAD_DOWN"
|
|
"BTN_DPAD_LEFT" = "PUNKTFUNK_BTN_DPAD_LEFT"
|
|
"BTN_DPAD_RIGHT" = "PUNKTFUNK_BTN_DPAD_RIGHT"
|
|
"BTN_START" = "PUNKTFUNK_BTN_START"
|
|
"BTN_BACK" = "PUNKTFUNK_BTN_BACK"
|
|
"BTN_LS_CLICK" = "PUNKTFUNK_BTN_LS_CLICK"
|
|
"BTN_RS_CLICK" = "PUNKTFUNK_BTN_RS_CLICK"
|
|
"BTN_LB" = "PUNKTFUNK_BTN_LB"
|
|
"BTN_RB" = "PUNKTFUNK_BTN_RB"
|
|
"BTN_GUIDE" = "PUNKTFUNK_BTN_GUIDE"
|
|
"BTN_A" = "PUNKTFUNK_BTN_A"
|
|
"BTN_B" = "PUNKTFUNK_BTN_B"
|
|
"BTN_X" = "PUNKTFUNK_BTN_X"
|
|
"BTN_Y" = "PUNKTFUNK_BTN_Y"
|
|
"BTN_TOUCHPAD" = "PUNKTFUNK_BTN_TOUCHPAD"
|
|
"AXIS_LS_X" = "PUNKTFUNK_AXIS_LS_X"
|
|
"AXIS_LS_Y" = "PUNKTFUNK_AXIS_LS_Y"
|
|
"AXIS_RS_X" = "PUNKTFUNK_AXIS_RS_X"
|
|
"AXIS_RS_Y" = "PUNKTFUNK_AXIS_RS_Y"
|
|
"AXIS_LT" = "PUNKTFUNK_AXIS_LT"
|
|
"AXIS_RT" = "PUNKTFUNK_AXIS_RT"
|
|
"AUDIO_MAGIC" = "PUNKTFUNK_AUDIO_MAGIC"
|
|
"RUMBLE_MAGIC" = "PUNKTFUNK_RUMBLE_MAGIC"
|
|
|
|
# QualifiedScreamingSnakeCase already qualifies each variant with the enum name
|
|
# (PunktfunkStatus::Ok -> PUNKTFUNK_STATUS_OK); do NOT also set prefix_with_name or it doubles.
|
|
[enum]
|
|
rename_variants = "QualifiedScreamingSnakeCase"
|
|
|
|
[fn]
|
|
sort_by = "None"
|
|
|
|
[struct]
|
|
derive_eq = false
|
|
|
|
[defines]
|
|
"feature = quic" = "PUNKTFUNK_FEATURE_QUIC"
|