#build-dependencies #build-script #cargo-build #compile #go #cgo #package

build cgo_oligami

A library for build scripts to compile custom Go code

6 releases

0.3.6 Nov 9, 2023
0.3.5 Sep 18, 2023

#279 in Build Utils

31 downloads per month
Used in oracle-nosql-db-sdk-rust

MIT license

18KB
304 lines

cgo-rs

A library for build scripts to compile custom Go code, inspired by the excellent cc crate.

It is intended that you use this library from within your build.rs file by adding the cgo crate to your build-dependencies:

[build-dependencies]
cgo_oligami = "*"

Examples

The following example will statically compile the Go package and instruct cargo to link the resulting library (libexample).

fn main() {
    cgo::Build::new()
        .package("pkg/example/main.go")
        .build("example");
}

windows cannot support

Golang is not support llvm on windows so Rust cannot link Golang staticlib on windows https://github.com/golang/go/issues/17014 If you use, dynamiclib https://doc.rust-lang.org/reference/items/external-blocks.html#the-link-attribute

support

mac and linux without alpine

memo

https://zenn.dev/koya_iwamura/articles/bb9b590b57d825 https://tip.golang.org/doc/go1.21#go-command

Minimum Version

  • rust 1.64
  • go 1.21.1

Dependencies

~175KB