Adding new code
Let's say we need to change Platform
such that we don't really care about whether it
is running on Intel or Apple Silicon, but we would like to keep this information so
downlevel code can act on it. We would like to merge MacApple
and MacIntel
into a
single MacOs(String)
that contains the current CPU architecture. Go ahead and update
native/src/api.rs
:
pub enum Platform {
..
- MacIntel,
- MacApple,
+ MacOs(String),
..
}
Now run just
and see that your binding code now has changed.
Troubleshooting: "Please supply one or more path/to/llvm..."
A common issue with ffigen
is that its detection of the LLVM installation is not reliable
across platforms. Especially for MacOS and the split between x86-64 and arm64 binaries,
you might have to modify justfile
to explicitly point to its location:
llvm_path := if os() == "macos" {
"--llvm-path /opt/homebrew/opt/llvm"
} else {
""
}