Merge pull request #2773 from dcreager/rust-linking

feat: include build script links in Rust bindings
This commit is contained in:
Amaan Qureshi 2024-02-05 20:05:22 -05:00 committed by GitHub
commit 9b47270980
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 5 deletions

View file

@ -12,6 +12,7 @@ repository = "https://github.com/tree-sitter/tree-sitter"
rust-version.workspace = true
build = "binding_rust/build.rs"
links = "tree-sitter"
include = [
"/binding_rust/*",

View file

@ -32,8 +32,11 @@ fn main() {
config.define("TREE_SITTER_FEATURE_WASM", "");
}
let src_path = Path::new("src");
for entry in fs::read_dir(src_path).unwrap() {
let manifest_path = Path::new(env!("CARGO_MANIFEST_DIR"));
let include_path = manifest_path.join("include");
let src_path = manifest_path.join("src");
let wasm_path = src_path.join("wasm");
for entry in fs::read_dir(&src_path).unwrap() {
let entry = entry.unwrap();
let path = src_path.join(entry.file_name());
println!("cargo:rerun-if-changed={}", path.to_str().unwrap());
@ -44,11 +47,13 @@ fn main() {
.flag_if_supported("-fvisibility=hidden")
.flag_if_supported("-Wshadow")
.flag_if_supported("-Wno-unused-parameter")
.include(src_path)
.include(src_path.join("wasm"))
.include("include")
.include(&src_path)
.include(&wasm_path)
.include(&include_path)
.file(src_path.join("lib.c"))
.compile("tree-sitter");
println!("cargo:include={}", include_path.display());
}
#[cfg(feature = "bindgen")]