diff --git a/Cargo.toml b/Cargo.toml index bf7d18a59..0f52c1aac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,14 @@ license = "MIT" version = "0.7.0" authors = ["Wilfred Hughes "] edition = "2018" +include = [ + "build.rs", + "src/", + "vendor/**/*.c", + "vendor/**/*.h", + "vendor/**/*.cc", + "README.md", +] [dependencies] regex = "1" diff --git a/README.md b/README.md index 610b48e44..79c981788 100644 --- a/README.md +++ b/README.md @@ -98,9 +98,15 @@ Add the tree-sitter-FOO git repository as a subtree. ``` $ git subtree add --prefix=vendor/tree-sitter-elisp git@github.com:Wilfred/tree-sitter-elisp.git main - ``` +Add a symlink to the C source directory (Cargo will not include the +parent directory when packaging, because the parent has a `Cargo.toml`). + +``` +$ cd vendor +$ ln -s tree-sitter-elisp/src tree-sitter-elisp-src +``` Update `build.rs` and `tree_sitter_parser.rs` to include the definitions for the new parser. diff --git a/build.rs b/build.rs index ee39b34ca..00bf3dc08 100644 --- a/build.rs +++ b/build.rs @@ -35,33 +35,33 @@ fn main() { // Only rerun if files in the vendor/ directory change. println!("cargo:rerun-if-changed=vendor"); - build("tree-sitter-clojure", "vendor/tree-sitter-clojure/src", &[]); + build("tree-sitter-clojure", "vendor/tree-sitter-clojure-src", &[]); build( "tree-sitter-css", - "vendor/tree-sitter-css/src", + "vendor/tree-sitter-css-src", &["scanner.c"], ); - build("tree-sitter-elisp", "vendor/tree-sitter-elisp/src", &[]); - build("tree-sitter-go", "vendor/tree-sitter-go/src", &[]); + 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", + "vendor/tree-sitter-javascript-src", &["scanner.c"], ); - build("tree-sitter-json", "vendor/tree-sitter-json/src", &[]); + build("tree-sitter-json", "vendor/tree-sitter-json-src", &[]); build( "tree-sitter-ocaml", - "vendor/tree-sitter-ocaml/ocaml/src", + "vendor/tree-sitter-ocaml-src/ocaml/src", &["scanner.cc"], ); build( "tree-sitter-ocaml-interface", - "vendor/tree-sitter-ocaml/interface/src", + "vendor/tree-sitter-ocaml-src/interface/src", &["scanner.cc"], ); build( "tree-sitter-rust", - "vendor/tree-sitter-rust/src", + "vendor/tree-sitter-rust-src", &["scanner.c"], ); } diff --git a/vendor/tree-sitter-clojure-src b/vendor/tree-sitter-clojure-src new file mode 120000 index 000000000..c99fb6866 --- /dev/null +++ b/vendor/tree-sitter-clojure-src @@ -0,0 +1 @@ +tree-sitter-clojure/src \ No newline at end of file diff --git a/vendor/tree-sitter-css-src b/vendor/tree-sitter-css-src new file mode 120000 index 000000000..d806fc9a4 --- /dev/null +++ b/vendor/tree-sitter-css-src @@ -0,0 +1 @@ +tree-sitter-css/src \ No newline at end of file diff --git a/vendor/tree-sitter-elisp-src b/vendor/tree-sitter-elisp-src new file mode 120000 index 000000000..567eff138 --- /dev/null +++ b/vendor/tree-sitter-elisp-src @@ -0,0 +1 @@ +tree-sitter-elisp/src \ No newline at end of file diff --git a/vendor/tree-sitter-go-src b/vendor/tree-sitter-go-src new file mode 120000 index 000000000..0b8bd2f7a --- /dev/null +++ b/vendor/tree-sitter-go-src @@ -0,0 +1 @@ +tree-sitter-go/src \ No newline at end of file diff --git a/vendor/tree-sitter-javascript-src b/vendor/tree-sitter-javascript-src new file mode 120000 index 000000000..2e9407953 --- /dev/null +++ b/vendor/tree-sitter-javascript-src @@ -0,0 +1 @@ +tree-sitter-javascript/src \ No newline at end of file diff --git a/vendor/tree-sitter-json-src b/vendor/tree-sitter-json-src new file mode 120000 index 000000000..4f9ada837 --- /dev/null +++ b/vendor/tree-sitter-json-src @@ -0,0 +1 @@ +tree-sitter-json/src \ No newline at end of file diff --git a/vendor/tree-sitter-ocaml-src/common b/vendor/tree-sitter-ocaml-src/common new file mode 120000 index 000000000..801894d31 --- /dev/null +++ b/vendor/tree-sitter-ocaml-src/common @@ -0,0 +1 @@ +../tree-sitter-ocaml/common \ No newline at end of file diff --git a/vendor/tree-sitter-ocaml-src/interface b/vendor/tree-sitter-ocaml-src/interface new file mode 120000 index 000000000..3f655083f --- /dev/null +++ b/vendor/tree-sitter-ocaml-src/interface @@ -0,0 +1 @@ +../tree-sitter-ocaml/interface \ No newline at end of file diff --git a/vendor/tree-sitter-ocaml-src/ocaml b/vendor/tree-sitter-ocaml-src/ocaml new file mode 120000 index 000000000..7894f6c8e --- /dev/null +++ b/vendor/tree-sitter-ocaml-src/ocaml @@ -0,0 +1 @@ +../tree-sitter-ocaml/ocaml \ No newline at end of file diff --git a/vendor/tree-sitter-rust-src b/vendor/tree-sitter-rust-src new file mode 120000 index 000000000..921b2cc1e --- /dev/null +++ b/vendor/tree-sitter-rust-src @@ -0,0 +1 @@ +tree-sitter-rust/src \ No newline at end of file