105 lines
3.7 KiB
Rust
105 lines
3.7 KiB
Rust
use std::path::PathBuf;
|
|
|
|
// https://doc.rust-lang.org/cargo/reference/build-scripts.html
|
|
fn main() {
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
|
|
// elm
|
|
let elm_dir: PathBuf = ["vendor", "tree-sitter-elm", "src"].iter().collect();
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-elm/src/parser.c");
|
|
cc::Build::new()
|
|
.include(&elm_dir)
|
|
.file(elm_dir.join("parser.c"))
|
|
.compile("tree-sitter-elm");
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-elm/src/scanner.cc");
|
|
cc::Build::new()
|
|
.include(&elm_dir)
|
|
.cpp(true)
|
|
.file(elm_dir.join("scanner.cc"))
|
|
.compile("tree_sitter_elm_scanner");
|
|
|
|
// ruby
|
|
let ruby_dir: PathBuf = ["vendor", "tree-sitter-ruby", "src"].iter().collect();
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-ruby/src/parser.c");
|
|
cc::Build::new()
|
|
.include(&ruby_dir)
|
|
.file(ruby_dir.join("parser.c"))
|
|
.compile("tree-sitter-ruby");
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-ruby/src/scanner.cc");
|
|
cc::Build::new()
|
|
.include(&ruby_dir)
|
|
.cpp(true)
|
|
.file(ruby_dir.join("scanner.cc"))
|
|
.compile("tree_sitter_ruby_scanner");
|
|
|
|
// javascript
|
|
let javascript_dir: PathBuf = ["vendor", "tree-sitter-javascript", "src"].iter().collect();
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-javascript/src/parser.c");
|
|
cc::Build::new()
|
|
.include(&javascript_dir)
|
|
.warnings(false) // lots of unused parameters
|
|
.file(javascript_dir.join("parser.c"))
|
|
.compile("tree-sitter-javascript");
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-javascript/src/scanner.c");
|
|
cc::Build::new()
|
|
.include(&javascript_dir)
|
|
.warnings(false) // lots of unused parameters
|
|
.file(javascript_dir.join("scanner.c"))
|
|
.compile("tree_sitter_javascript_scanner");
|
|
|
|
// haskell
|
|
let haskell_dir: PathBuf = ["vendor", "tree-sitter-haskell", "src"].iter().collect();
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-haskell/src/parser.c");
|
|
cc::Build::new()
|
|
.include(&haskell_dir)
|
|
.file(haskell_dir.join("parser.c"))
|
|
.compile("tree-sitter-haskell");
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-haskell/src/scanner.cc");
|
|
cc::Build::new()
|
|
.include(&haskell_dir)
|
|
.warnings(false) // lots of unused parameters
|
|
.cpp(true)
|
|
.file(haskell_dir.join("scanner.cc"))
|
|
.compile("tree_sitter_haskell_scanner");
|
|
|
|
// rust
|
|
let rust_dir: PathBuf = ["vendor", "tree-sitter-rust", "src"].iter().collect();
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-rust/src/parser.c");
|
|
cc::Build::new()
|
|
.include(&rust_dir)
|
|
.file(rust_dir.join("parser.c"))
|
|
.compile("tree-sitter-rust");
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-rust/src/scanner.c");
|
|
cc::Build::new()
|
|
.include(&rust_dir)
|
|
.warnings(false) // lots of unused parameters
|
|
.file(rust_dir.join("scanner.c"))
|
|
.compile("tree_sitter_rust_scanner");
|
|
|
|
// typescript
|
|
let typescript_dir: PathBuf = ["vendor", "tree-sitter-typescript", "typescript", "src"].iter().collect();
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-typescript/typescript/src/parser.c");
|
|
cc::Build::new()
|
|
.include(&typescript_dir)
|
|
.file(typescript_dir.join("parser.c"))
|
|
.compile("tree-sitter-typescript");
|
|
|
|
println!("cargo:rerun-if-changed=vendor/tree-sitter-typescript/typescript/src/scanner.c");
|
|
cc::Build::new()
|
|
.include(&typescript_dir)
|
|
.warnings(false) // lots of unused parameters
|
|
.file(typescript_dir.join("scanner.c"))
|
|
.compile("tree_sitter_typescript_scanner");
|
|
}
|