41 个版本
0.8.4 | 2024 年 4 月 29 日 |
---|---|
0.8.2 | 2024 年 2 月 11 日 |
0.7.4 | 2023 年 11 月 23 日 |
0.5.5 | 2023 年 7 月 31 日 |
0.4.5 | 2023 年 3 月 29 日 |
#85 in 构建工具
2,710 每月下载量
105KB
2.5K SLoC
BUILDER_CPP
一个用于构建 C 和 C++ 应用的简单构建工具
此工具仍在开发中。请勿用于生产代码。
安装
此工具需要 cargo 进行安装
cargo install builder_cpp
运行子命令时使用 -h 标志
功能
- 创建新项目
- 多线程
- 可以生成 compile_commands.json
- 可以生成 .vscode/c_cpp_properties.json
- 自动将项目库添加到其他目标
- 从 GitHub 获取库作为包
限制
- 仅支持 clang 和 gcc 编译器
使用方法
为 windows 编写 config_win32.toml,为 linux 编写 config_linux.toml
创建新项目
builder_cpp init <project-name> [--c|--cpp]
帮助
builder_cpp --help
帮助命令将显示以下信息
A simple build tool for building C and C++ applicati
ons
Usage: builder_cpp.exe [OPTIONS] [COMMAND]
Commands:
init Initialize a new project Defaults to C++ if no language is specified
config Configuration settings
help Print this message or the help of the given subcommand(s)
Options:
-b, --build Build your project
-c, --clean Clean the obj and bi
n intermediates
-r, --run Run the executable
--bin-args <BIN_ARGS>... Arguments to pass to
the executable when running
--gen-cc Generate compile_com
mands.json
--gen-vsc Generate .vscode/c_c
pp_properties.json
--clean-packages Clean packages
--update-packages Update packages
--restore-packages Restore packages
-h, --help Print help
-V, --version Print version
包含库和可执行文件的示例文件
[build]
compiler = "g++"
[[targets]]
name = "libengine"
src = "./Nomu_Engine/Engine/src/"
include_dir = "./Nomu_Engine/Engine/src/include"
type = "dll"
cflags = "-g -Wall -Wunused `pkg-config --cflags freetype2` -std=c++17"
libs = "-lm -lglew32 -lglfw3 -lopengl32 -static-libstdc++ `pkg-config --libs freetype2`"
[[targets]]
name = "main"
src = "./Nomu_Engine/Game/src/"
include_dir = "./Nomu_Engine/Game/src"
type = "exe"
cflags = "-g -Wall"
libs = "-static-libstdc++"
deps = ["libengine"]
包含添加的包和可执行文件的示例文件
[build]
compiler = "g++"
packages = ["Dr-42/Nomu_Engine, master"]
[[targets]]
name = "main"
src = "./src"
include_dir = "./src"
type = "exe"
cflags = "-g -Wall "
libs = ""
deps = ["libengine"]
toml 中的可选键是构建中的包和在目标中的依赖
要查看使用该工具构建的真实项目,请参阅 Nomu_Engine Heim_Engine Imeye
And lots more.
依赖项
~5–16MB
~155K SLoC