ninja-build/ninja

GitHub: ninja-build/ninja

Ninja 是一个以速度为核心的小型构建系统,专为需要快速增量编译的大型项目设计,通常作为 CMake 等元构建系统的后端使用。

Stars: 12785 | Forks: 1786

# Ninja Ninja 是一个专注于速度的小型构建系统。 https://ninja-build.org/ 请参阅[手册](https://ninja-build.org/manual.html)或包含在发行版中的 `doc/manual.asciidoc` 以了解背景 及更多详情。 适用于 Linux、Mac 和 Windows 的二进制文件可在 [GitHub](https://github.com/ninja-build/ninja/releases) 上获取。 运行 `./ninja -h` 获取 Ninja 帮助。 无需安装,因为唯一必需的文件是生成的 ninja 二进制文件。但是,要启用 Bash 补全以及 Emacs 和 Vim 编辑模式等功能,必须将 misc/ 中的某些文件复制到适当的位置。 如果你有兴趣修改 Ninja,请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 构建 Ninja 本身 你可以通过用 Python 编写的自定义生成器脚本或通过 CMake 来构建 Ninja。欲知更多详情,请参阅 [Wiki](https://github.com/ninja-build/ninja/wiki)。 ### Python ``` ./configure.py --bootstrap ``` 这将生成 `ninja` 二进制文件和一个 `build.ninja` 文件,你现在可以使用该文件用 Ninja 自身来构建 Ninja。 如果你有一个 GoogleTest 源目录,可以通过 `--gtest-source-dir=PATH` 选项或 `GTEST_SOURCE_DIR` 环境变量传递其路径来构建测试,例如: ``` ./configure.py --bootstrap --gtest-source-dir=/path/to/googletest ./ninja all # build ninja_test and other auxiliary binaries ./ninja_test # run the unit-test suite. ``` 如果你想使用该库的预安装二进制版本,请使用下面的 CMake 构建。 ### CMake 要在不构建单元测试的情况下构建 ninja 二进制文件,请通过将 `BUILD_TESTING` 设置为 `OFF` 来禁用测试构建: ``` cmake -Bbuild-cmake -DBUILD_TESTING=OFF cmake --build build-cmake ``` `ninja` 二进制文件现在将位于 `build-cmake` 目录中(你可以选择任何你喜欢的其他名称)。 要运行单元测试,省略 `-DBUILD_TESTING=OFF` 选项,构建完成后运行: ``` build-cmake/ninja_test ``` ## 生成文档 ### Ninja 手册 你的 PATH 中必须有 `asciidoc` 和 `xsltproc`,然后执行: ``` ./configure.py ninja manual doc/manual.html ``` 这将生成 `doc/manual.html`。 要生成手册的 PDF 版本,你的 PATH 中必须有 `dblatex`,然后执行: ``` ./configure.py # only if you didn't do it previously. ninja doc/manual.pdf ``` 这将生成 `doc/manual.pdf`。 ### Doxygen 文档 如果你安装了 `doxygen`,你可以构建从 C++ 声明和注释中提取的文档,以帮助你浏览代码。请注意,Ninja 是一个独立的可执行文件,而不是一个库,因此没有公共 API,这里公开的所有细节都是内部的。 ``` ./configure.py # if needed ninja doxygen ``` 然后在浏览器中打开 `doc/doxygen/html/index.html` 进行查看。
标签:Bash脚本, C++, CMake, DNS解析, Make替代, Ninja, Python, 元构建系统, 应用安全, 开源项目, 数据擦除, 无后门, 构建加速, 构建系统, 编译工具, 自动化构建, 软件开发, 逆向工具