b
0

bake:C/C++项目构建、测试与运行工具

bake是一款面向C和C++项目的构建系统,提供简洁的项目配置,并支持构建、测试、运行、依赖处理及项目管理,适用于Linux、macOS和Windows开发环境。

链接直达

bake:C/C++项目构建、测试与运行工具

原站网页截图,页面可能随时间更新。

bake致力于减少C/C++项目构建过程中的配置工作。它直接调用gcc、clang、msvc和emcc等编译器,不依赖生成Makefile或Visual Studio项目文件,并通过较少的配置完成项目构建与运行。

用途与适用场景

bake用于构建、测试和运行C/C++项目,适合需要管理应用程序、代码包及其依赖关系的开发者。项目配置可以简化为项目名称、项目类型以及src和include目录等基本信息。对于包含多个项目或多层依赖的工程,bake能够自动发现目录中的项目,按依赖关系进行构建,并针对相应配置执行操作。

它也适合需要跨平台构建的场景,支持Linux、macOS和Windows,并可使用gcc、clang或MSVC进行编译。项目还可以通过Emscripten获得内置的WebAssembly支持。

准备与上手

使用bake前,Windows环境需要安装Visual Studio Build Tools或Visual Studio Community,并包含Windows C++ CMake工具、Windows SDK以及“使用C++的桌面开发”工作负载。Linux和macOS可通过源代码安装;安装脚本会将可执行程序放入用户目录,并提供从任意位置调用的方式。也可以采用本地模式安装,并将相应目录加入PATH环境变量。

创建项目时,可使用bake new命令生成新的应用项目,再通过bake run运行。常见操作还包括构建、重新构建和清理项目;运行时可启用交互模式,在项目文件变化后自动重新构建并重启应用。

项目配置与依赖处理

bake使用JSON进行项目配置,能够通过逻辑名称引用依赖,而不必直接填写依赖所在的操作系统路径。依赖项目的头文件可以自动纳入构建过程,项目也能根据目录结构自动发现并排序。构建项目及其依赖时,可以一次性递归处理正确的配置。

除了本地项目,bake还支持从Git仓库克隆、构建和运行项目,并处理项目关联的依赖。它提供项目包管理能力,可用于管理项目及其Git仓库,但定位并不是完整的通用包管理器。

主要功能

bake直接调用编译器,内置gcc、clang、MSVC和emcc驱动,并能自动判断构建所使用的编译器。它支持应用程序和代码包项目,提供测试框架,也能生成项目的单一源文件或头文件。

在代码质量和调试方面,bake支持严格编译模式,可帮助项目在不同编译器及编译器版本下保持无警告;同时支持地址消毒器运行配置。它还可以管理构建环境变量,包括设置变量或向PATH、LD_LIBRARY_PATH等路径变量追加内容。

可确认的限制

bake的定位是C/C++构建系统,而不是完整的通用包管理器。它通过逻辑名称、项目发现和Git关联等方式提供类似包管理的便利,主要目标仍是简化构建流程。

项目使用GPL-3.0许可证。按照项目说明,开发者可以将其用于商业项目构建;但如果在闭源交付物中分发bake的源代码或二进制文件,则需要遵循相应许可要求。

bake是否必须先安装Premake?

不需要。仓库中已包含由Premake生成的Makefile,使用bake时无需另外安装Premake。

bake会生成Makefile或Visual Studio项目文件吗?

不会。bake直接调用编译器,并使用内置驱动完成构建。


访问软件官网 · 查看资料来源

相关推荐

N

Neovim 是一款基于 Vim 的文本编辑器,强调可扩展性、易用性和跨环境使用。它支持 Lua 插件、Vimscript、LSP、Tree-sitter、终端,以及通过 RPC 连接的图形界面和其他扩展。

D

DBeaver Community 是一款免费、开源的通用数据库管理工具,适合个人项目。它支持连接和探索 MySQL、MariaDB、PostgreSQL、SQLite、SQL Server、Apache 家族等关系型数据库,并提供数据编辑、SQL 编辑、元数据管理、任务管理和数据库维护工具。

w

watchexec 是一个命令行工具,用于监视当前目录中的文件变化,并在变化发生时执行指定命令。它适合自动启动构建流程、重启开发服务器、检测活动,减少反复手动按回车执行命令的操作。

T

Tracely-ai 将 AI Agent 的生产追踪、质量评估、故障聚类和回归测试连接起来。它可以接收 Agent trace,对对话、运行或单个 span 进行评估,将失败运行冻结为可重放测试,并在 Pull Request 中发现回归时阻止合并。

s

simutil 是面向移动开发和测试的设备工具集,提供桌面应用、TUI 与 CLI。它可启动、关闭、连接、投屏、控制、录制安卓和苹果设备,并支持批量场景执行、日志查看、插件扩展及脚本自动化。

评论

暂无评论,来抢沙发~