{"id":13430811,"url":"https://github.com/ninja-build/ninja","last_synced_at":"2025-12-11T21:04:42.002Z","repository":{"id":1381056,"uuid":"1335132","full_name":"ninja-build/ninja","owner":"ninja-build","description":"a small build system with a focus on speed","archived":false,"fork":false,"pushed_at":"2024-09-10T15:26:14.000Z","size":4854,"stargazers_count":11025,"open_issues_count":374,"forks_count":1584,"subscribers_count":264,"default_branch":"master","last_synced_at":"2024-09-18T00:23:44.284Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ninja-build.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"awendt/jquery-23badge","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ninja-build.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-02-06T19:07:12.000Z","updated_at":"2024-09-17T22:27:20.000Z","dependencies_parsed_at":"2023-10-15T09:14:54.403Z","dependency_job_id":"549103a4-4853-4eaf-a028-8e77fb310d8f","html_url":"https://github.com/ninja-build/ninja","commit_stats":{"total_commits":2141,"total_committers":291,"mean_commits":7.357388316151202,"dds":0.6170014012143858,"last_synced_commit":"adf9bddd73869084a505fac83246e55c35880079"},"previous_names":["martine/ninja"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninja-build%2Fninja","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninja-build%2Fninja/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninja-build%2Fninja/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninja-build%2Fninja/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ninja-build","download_url":"https://codeload.github.com/ninja-build/ninja/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221656401,"owners_count":16858759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T02:00:58.032Z","updated_at":"2025-10-20T16:13:48.788Z","avatar_url":"https://github.com/ninja-build.png","language":"C++","funding_links":[],"categories":["C++","others","Containers \u0026 Language Extentions \u0026 Linting","C/C++程序设计","HarmonyOS","构建系统","C/C++","Build Systems ##","Tools","Package Management / Build Systems","Alternatives","Build Systems"],"sub_categories":["For C++/C","资源传输下载","Windows Manager","Miscs"],"readme":"# Ninja\n\nNinja is a small build system with a focus on speed.\nhttps://ninja-build.org/\n\nSee [the manual](https://ninja-build.org/manual.html) or\n`doc/manual.asciidoc` included in the distribution for background\nand more details.\n\nBinaries for Linux, Mac and Windows are available on\n  [GitHub](https://github.com/ninja-build/ninja/releases).\nRun `./ninja -h` for Ninja help.\n\nInstallation is not necessary because the only required file is the\nresulting ninja binary. However, to enable features like Bash\ncompletion and Emacs and Vim editing modes, some files in misc/ must be\ncopied to appropriate locations.\n\nIf you're interested in making changes to Ninja, read\n[CONTRIBUTING.md](CONTRIBUTING.md) first.\n\n## Building Ninja itself\n\nYou can either build Ninja via the custom generator script written in Python or\nvia CMake. For more details see\n[the wiki](https://github.com/ninja-build/ninja/wiki).\n\n### Python\n\n```\n./configure.py --bootstrap\n```\n\nThis will generate the `ninja` binary and a `build.ninja` file you can now use\nto build Ninja with itself.\n\nIf you have a GoogleTest source directory, you can build the tests\nby passing its path with `--gtest-source-dir=PATH` option, or the\n`GTEST_SOURCE_DIR` environment variable, e.g.:\n\n```\n./configure.py --bootstrap --gtest-source-dir=/path/to/googletest\n./ninja all     # build ninja_test and other auxiliary binaries\n./ninja_test`   # run the unit-test suite.\n```\n\nUse the CMake build below if you want to use a preinstalled binary\nversion of the library.\n\n### CMake\n\nTo build the ninja binary without building the unit tests, disable test building by setting `BUILD_TESTING` to `OFF`:\n\n```\ncmake -Bbuild-cmake -DBUILD_TESTING=OFF\ncmake --build build-cmake\n```\n\nThe `ninja` binary will now be inside the `build-cmake` directory (you can\nchoose any other name you like).\n\nTo run the unit tests, omit the `-DBUILD_TESTING=OFF` option, and after building, run:\n\n```\n./build-cmake/ninja_test\n```\n\n## Generating documentation\n\n### Ninja Manual\n\nYou must have `asciidoc` and `xsltproc` in your PATH, then do:\n\n```\n./configure.py\nninja manual doc/manual.html\n```\n\nWhich will generate `doc/manual.html`.\n\nTo generate the PDF version of the manual, you must have `dblatext` in your PATH then do:\n\n```\n./configure.py    # only if you didn't do it previously.\nninja doc/manual.pdf\n```\n\nWhich will generate `doc/manual.pdf`.\n\n### Doxygen documentation\n\nIf you have `doxygen` installed, you can build documentation extracted from C++\ndeclarations and comments to help you navigate the code. Note that Ninja is a standalone\nexecutable, not a library, so there is no public API, all details exposed here are\ninternal.\n\n```\n./configure.py   # if needed\nninja doxygen\n```\n\nThen open `doc/doxygen/html/index.html` in a browser to look at it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninja-build%2Fninja","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fninja-build%2Fninja","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninja-build%2Fninja/lists"}