mirror of https://github.com/Wilfred/difftastic/
Allow each tree-sitter package to specify its files to build
parent
4a6bb3db1f
commit
49d7750285
@ -1,25 +1,36 @@
|
|||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
fn build(package_name: &str, has_scanner: bool) {
|
fn build(package_name: &str, package_dir: &str, extra_c_files: &[&str]) {
|
||||||
let dir: PathBuf = ["vendor", package_name, "src"].iter().collect();
|
let dir = PathBuf::from(package_dir);
|
||||||
|
|
||||||
let mut build = cc::Build::new();
|
let mut build = cc::Build::new();
|
||||||
|
|
||||||
build.include(&dir).warnings(false); // ignore unused parameter warnings
|
build.include(&dir).warnings(false); // ignore unused parameter warnings
|
||||||
|
|
||||||
build.file(dir.join("parser.c"));
|
build.file(dir.join("parser.c"));
|
||||||
if has_scanner {
|
for c_file in extra_c_files {
|
||||||
build.file(dir.join("scanner.c"));
|
build.file(dir.join(c_file));
|
||||||
}
|
}
|
||||||
|
|
||||||
build.compile(package_name);
|
build.compile(package_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
build("tree-sitter-css", true);
|
build(
|
||||||
build("tree-sitter-elisp", false);
|
"tree-sitter-css",
|
||||||
build("tree-sitter-go", false);
|
"vendor/tree-sitter-css/src",
|
||||||
build("tree-sitter-javascript", true);
|
&["scanner.c"],
|
||||||
build("tree-sitter-json", false);
|
);
|
||||||
build("tree-sitter-rust", true);
|
build("tree-sitter-elisp", "vendor/tree-sitter-elisp/src", &[]);
|
||||||
|
build("tree-sitter-go", "vendor/tree-sitter-go/src", &[]);
|
||||||
|
build(
|
||||||
|
"tree-sitter-javascript",
|
||||||
|
"vendor/tree-sitter-javascript/src",
|
||||||
|
&["scanner.c"],
|
||||||
|
);
|
||||||
|
build("tree-sitter-json", "vendor/tree-sitter-json/src", &[]);
|
||||||
|
build(
|
||||||
|
"tree-sitter-rust",
|
||||||
|
"vendor/tree-sitter-rust/src",
|
||||||
|
&["scanner.c"],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue