使用Cargo和我项目自己的目录结构

时间:2016-08-27 23:49:13

标签: rust directory-structure rust-cargo

我可以使用Cargo构建Rust代码而不使用standard project layout吗?

我的源文件不在名为src的目录中,并且不会更改。我的二进制文件必须最终在当前目录中(或者,在某些其他项目中,在另一个未被称为target/SOMETHING的目录中)。我是否可以告诉Cargo必须从foofoo.rs在与bar.rs相同的目录中构建可执行文件Cargo.toml,从qux创建foo.rs

我不关心Cargo作为构建系统还是作为部署系统。我只对它作为图书馆管理系统感兴趣。 Apparently Cargo is the only game in the Rust town for this

1 个答案:

答案 0 :(得分:2)

不是真的。您可以通过在清单中明确指定源文件来控制源文件的位置:

[[bin]]
name = "foo"
src = "foo.rs"

[[bin]]
name = "qux"
src = "splong.rs"

我不知道从foo foo.rs构建bar.rs是什么意思,而qux仅来自foo.rs {1}}。你不能随意地将源文件一起发布:foo.rs使用bar.rs,或者不使用build.target-dir

但是您无法从清单中控制目标目录。有target设置(在Cargo's configuration中,而不是清单),但只允许您更改CARGO_TARGET_DIR目录,而不是其中的第二级。您可以使用CARGO_TARGET_DIR environment variable进行更改,但您也无法在清单中设置环境变量。

也就是说,将webView设置为项目的根目录也会更改所有中间文件的位置,这意味着每次你在调试和发布版本之间切换,您必须进行完全重新编译。

您可能需要考虑在the Cargo issue tracker上打开一个关于此选项的问题。