2 releases
0.1.0-alpha.2 | Apr 12, 2020 |
---|---|
0.1.0-alpha.1 | Apr 10, 2020 |
#497 in Build Utils
2,417 downloads per month
Used in caddyfile-parser
18KB
317 lines
gobuild
A library to compile go code into a Rust library/application.
This library takes inspiration from the cc
crate.
Using gobuild
First, you'll want to both add a build script for your crate (build.rs) and also add this crate to your Cargo.toml via:
[build-dependencies]
gobuild = "0.1.0-alpha.1"
Next, update the build.rs
to something like:
// build.rs
fn main() {
gobuild::Build::new()
.file("hello.go")
.compile("hello");
}
This will produce a libhello.h
and libhello.a
in OUT_DIR
.
lib.rs
:
A library for build scripts to compile go Code.
It's like the cc
crate for go.
Add this library as a build-dependency in Cargo.toml
:
[build-dependencies]
gobuild = "0.1.0-alpha.1"
Examples
Use the Build
struct to compile hello.go
:
fn main() {
gobuild::Build::new()
.file("hello.go")
.compile("foo");
}
This will generate a libhello.h
and libhello.a
in OUT_DIR
.
Consider combining this with bindgen
to generate a Rust wrapper
for the header.
Dependencies
~185KB