6 个版本
使用旧的 Rust 2015
0.2.2 | 2018年4月30日 |
---|---|
0.2.1 | 2017年6月17日 |
0.1.2 | 2016年10月25日 |
0.1.1 | 2016年6月21日 |
0.0.1 | 2015年6月22日 |
#335 in 构建工具
38KB
829 行
yabs
又一个构建系统。一个用于 C 和 C++ 的构建系统,使用 TOML 描述项目。
注意:Yabs 仍然是一个非常正在进行中的项目,可能会发生变化。直到 yabs 达到版本 1.0.0
,应假定 yabs 仍将继续变化。
获取 Yabs
要安装 yabs,只需运行 cargo install yabs
。如果您从 crates.io 安装,请参阅 docs.rs 上与您的 yabs --version
输出对应的文档版本。否则,克隆此存储库,构建发布目标,并将 yabs 添加到您的 $PATH
构建
要构建 yabs
,您需要 rustc
和 cargo
。只需运行 cargo build --release
,这将在 target/release
中构建一个名为 yabs
的二进制文件。
使用
yabs -h
的输出
yabs 0.2.0
Alberto Corona <ac@albertocorona.com>
Yet another build system
USAGE:
yabs [FLAGS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
--sources Print source files found by yabs or listed in 'src'
-V, --version Prints version information
SUBCOMMANDS:
build Build a binary or library, builds all binaries and libraries if no options are given
clean Removes all object files, binaries and libraries built by yabs
help Prints this message or the help of the given subcommand(s)
new Create a new yabs project
定义项目
yabs
使用 TOML 来定义项目。例如,一个使用 SDL2、SDL2-image、SDL2-ttf 和 Lua 5.3 库的 C++ 项目看起来可能如下所示
[project]
name = "kuma"
file-extensions = ["cpp"]
compiler = "g++"
compiler-flags = ["std=c++14", "O0", "Wall", "Wextra", "g", "D_DEBUG_"]
include = ["src","`pkg-config --cflags sdl2 lua5.3`", "/usr/include/yaml-cpp", "third_party/sol2/single/sol"]
libraries = [
"`pkg-config --libs sdl2 SDL2_image SDL2_ttf SDL2_mixer lua5.3 yaml-cpp`",
]
ignore = [
"tests/",
"third_party/",
]
[[bin]]
name = "kuma"
path = "./src/main.cpp"
[[lib]]
name = "libkuma"
types = ["static"]
构建项目
目前,yabs
构建 [[bin]]
和 [[lib]]
部分中列出的所有目标。
键和值
以下表格描述了 yabs 项目文件中可用的键。
[project]
键 | 值 | 类型 |
---|---|---|
name |
项目的名称 | 字符串 |
文件扩展名 |
用于源文件的扩展名 | 数组 |
版本 |
版本号 | 字符串 |
编译器 |
要使用的编译器 | 字符串 |
src |
源文件 | 数组 |
库 |
要链接的库 | 数组 |
librariy-directories |
要使用的库目录 | 数组 |
include |
包含目录 | 数组 |
compiler-flags |
编译器标志 | 数组 |
linker-flags |
链接器标志 | 数组 |
ignore |
要忽略的目录或文件 | 数组 |
before-script |
在构建之前运行的脚本 | 数组 |
after-script |
在构建之后运行的脚本 | 数组 |
ar |
要使用的归档工具 | 字符串 |
arflags |
归档工具的标志 | 数组 |
[[bin]]
键 | 值 | 类型 |
---|---|---|
name |
二进制文件名称和路径 | 字符串 |
path |
二进制入口点的路径(main ) |
字符串 |
[[lib]]
键 | 值 | 类型 |
---|---|---|
name |
库的名称 | 字符串 |
types |
要创建的库类型 | 数组 |
依赖
~10MB
~202K SLoC