Mercurial > public > mercurial-scm > hg
annotate rust/hg-core/build.rs @ 52755:1b7a57a5b47a
rust: add safe bindings to bdiff.c
I wrote C FFI bindings manually rather than using a bindgen build step because
there are only 2 structs and 3 functions and they're not going to change.
Note that the relative path in build.rs means that cargo publish will no longer
work. If in the future we want to publish to crates.io, we would probably need
to add a Makefile step that copies bdiff sources into the hg-core crate.
author | Mitchell Kember <mkember@janestreet.com> |
---|---|
date | Wed, 18 Dec 2024 10:35:01 -0500 |
parents | |
children |
rev | line source |
---|---|
52755
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
1 fn main() { |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
2 // The relative paths work locally but won't if published to crates.io. |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
3 println!("cargo::rerun-if-changed=../../mercurial/bdiff.c"); |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
4 println!("cargo::rerun-if-changed=../../mercurial/bdiff.h"); |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
5 println!("cargo::rerun-if-changed=../../mercurial/compat.h"); |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
6 println!("cargo::rerun-if-changed=../../mercurial/bitmanipulation.h"); |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
7 cc::Build::new() |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
8 .warnings(true) |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
9 .file("../../mercurial/bdiff.c") |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
10 .compile("bdiff"); |
1b7a57a5b47a
rust: add safe bindings to bdiff.c
Mitchell Kember <mkember@janestreet.com>
parents:
diff
changeset
|
11 } |