
原站网页截图,页面可能随时间更新。
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直接调用编译器,并使用内置驱动完成构建。