#构建工具 #构建 #cpp #toml #c

构建 builder_cpp

一个用于构建 C 和 C++ 应用的简单构建工具

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 构建工具

Download history 91/week @ 2024-04-22 167/week @ 2024-04-29 2/week @ 2024-05-20

2,710 每月下载量

MIT 许可协议

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