Hello,
I’ve a Go module that uses a Rust library. This Rust library has C bindings, so that I can use cgo to talk to Rust, which is nice. Everything works like a charm except the installation. Why? Because the Rust code needs to be compiled with cargo/rustc. I may embed the dynamic library (.so, .dylib, .dll), but it adds some complexity and I would like to avoid this approach in my current case.
I could tell the user to run go get -d …, then run go generate …, to finally run go install, where go generate would run the command to compile the Rust part (basically cargo build --release). However, I want my Go module to be used as a dependency of any other Go module (it’s a library, not a binary), and in such a situation, it’s not possible to run go generate automatically. If my understanding is correct: go install runs go build, which doesn’t run go generate.
So my question is: How can I run a command like cargo build --release when my module is being installed by a user as a dependency (so like a regular go get)? Is it even possible?
Thanks!