1 个不稳定版本

0.1.0 2020年3月20日

#525 in 构建工具

自定义许可协议

9KB
143 代码行

whip-up

whip-up 是一个强类型的构建系统。 .whip 文件实际上是任意 Rust 代码*。

  • = 除了编译器和目标结构体。它们是 whip-up 内部的部分。

示例

.whip 文件

let gpp = Compiler {
    path: PathBuf::from("/usr/bin/g++"),
};

let example_program = Target {
    name: "example_program",
    compiler: gpp,
    files: vec![
        PathBuf::from("main.cpp"),
        PathBuf::from("foo/bar.hpp")
    ]
};

example_program.build()

输出将被运行的 g++ 命令

/usr/bin/g++ -o example_project main.cpp foo/bar.hpp

用法

假设我们有以下文件夹结构和与上面示例相同的 .whip 文件。

projects/
|
└─── examples/
     |
     └─── foo/
     |    └─── bar.hpp
     |
     |    example.whip
     └─── main.cpp

projects 文件夹运行 whip-up examples/ 将会在 examples 文件夹中构建一个二进制文件

projects/
|
└─── examples/
     |
     └─── foo/
     |    └─── bar.hpp
     |
     |    example.whip
     |    example_program
     └─── main.cpp

关于

我在 COVID-19 大流行期间开始这个项目。我在家里无聊,决定做些有意义的事情。

目前这个项目非常基础且相当粗糙。不言而喻,不建议在生产环境中使用 whip-up

依赖项

~2MB
~42K SLoC