Knowledge

Ninja (build system)

Source đź“ť

212: 130: 86: 27: 232:
employee. Ninja has a focus on speed and it differs from other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible.
264:, Ninja lacks features such as string manipulation, as Ninja build files are not meant to be written by hand. Instead, a "build generator" should be used to generate Ninja build files. 249:
which compiles 40,000 input files into a single executable. In fact, Google Chrome is a main user and motivation for Ninja. It's also used to build Android (via Makefile translation by
660: 655: 650: 416: 645: 245:, which is slow when performing incremental (or no-op) builds. This can considerably slow down developers working on large projects, such as 147: 109: 77: 179: 549: 640: 484: 563: 211: 85: 276:, and gn are popular build management software tools which support creating build files for Ninja. 174: 191: 167: 437: 273: 225: 186: 154: 36: 26: 459: 261: 242: 129: 592: 265: 634: 246: 45: 524: 32: 621: 118: 625: 229: 499: 143: 577: 269: 163: 159: 254: 616: 202: 197: 185: 173: 153: 139: 108: 76: 54: 44: 485:"Google man open sources Chrome build system" 253:), and is used by most developers working on 8: 19: 529:The Performance Of Open Source Applications 210: 128: 84: 25: 18: 407: 241:In essence, Ninja is meant to replace 7: 661:Free software programmed in Python 14: 651:Software using the Apache license 656:Free software programmed in C++ 16:Free build automation software 1: 646:Free and open-source software 417:"Google Groups: ninja-build" 228:developed by Evan Martin, a 31:Ninja being used to compile 60:; 12 years ago 677: 180:Software development tools 104: 72: 24: 283: 500:"The Ninja build tool" 498:Röthlisberger, David. 91:; 4 months ago 35:, in conjunction with 593:"cmake Documentation" 578:"gn - Git at Google" 564:"LLVM documentation" 550:"aosp mailing list" 21: 192:Apache License 2.0 219: 218: 668: 641:Build automation 617:Official Website 604: 603: 601: 599: 588: 582: 581: 574: 568: 567: 560: 554: 553: 546: 540: 539: 537: 535: 521: 515: 514: 512: 510: 495: 489: 488: 481: 475: 474: 472: 470: 456: 450: 449: 447: 445: 438:"Release 1.12.1" 434: 428: 427: 425: 423: 412: 397: 393: 390: 386: 383: 380: 377: 374: 370: 367: 364: 361: 358: 354: 351: 348: 345: 342: 338: 335: 332: 329: 325: 322: 319: 316: 313: 309: 306: 303: 300: 296: 293: 290: 287: 215: 214: 207: 204: 155:Operating system 132: 127: 124: 122: 120: 99: 97: 92: 88: 68: 66: 61: 29: 22: 676: 675: 671: 670: 669: 667: 666: 665: 631: 630: 613: 608: 607: 597: 595: 590: 589: 585: 576: 575: 571: 562: 561: 557: 548: 547: 543: 533: 531: 523: 522: 518: 508: 506: 497: 496: 492: 483: 482: 478: 468: 466: 458: 457: 453: 443: 441: 436: 435: 431: 421: 419: 414: 413: 409: 404: 399: 398: 395: 391: 388: 384: 381: 378: 376:build myprogram 375: 372: 368: 365: 362: 360:build source2.o 359: 356: 352: 349: 346: 344:build source1.o 343: 340: 336: 333: 330: 327: 323: 320: 317: 314: 311: 307: 304: 301: 298: 294: 291: 288: 285: 282: 260:In contrast to 239: 209: 201: 135: 117: 100: 95: 93: 90: 64: 62: 59: 55:Initial release 40: 17: 12: 11: 5: 674: 672: 664: 663: 658: 653: 648: 643: 633: 632: 629: 628: 619: 612: 611:External links 609: 606: 605: 583: 569: 555: 541: 516: 490: 476: 451: 429: 415:Martin, Evan. 406: 405: 403: 400: 284: 281: 278: 238: 235: 217: 216: 199: 195: 194: 189: 183: 182: 177: 171: 170: 157: 151: 150: 141: 137: 136: 134: 133: 114: 112: 106: 105: 102: 101: 82: 80: 78:Stable release 74: 73: 70: 69: 56: 52: 51: 48: 42: 41: 30: 15: 13: 10: 9: 6: 4: 3: 2: 673: 662: 659: 657: 654: 652: 649: 647: 644: 642: 639: 638: 636: 627: 623: 620: 618: 615: 614: 610: 594: 587: 584: 579: 573: 570: 565: 559: 556: 551: 545: 542: 530: 526: 520: 517: 505: 501: 494: 491: 486: 480: 477: 465: 461: 455: 452: 440:. 11 May 2024 439: 433: 430: 418: 411: 408: 401: 279: 277: 275: 271: 267: 263: 258: 256: 252: 248: 247:Google Chrome 244: 236: 234: 231: 227: 223: 213: 206: 200: 196: 193: 190: 188: 184: 181: 178: 176: 172: 169: 165: 161: 158: 156: 152: 149: 145: 142: 138: 131: 126: 116: 115: 113: 111: 107: 103: 89:/ 11 May 2024 87: 81: 79: 75: 71: 57: 53: 49: 47: 43: 39:configuration 38: 34: 28: 23: 596:. Retrieved 586: 572: 558: 544: 532:. Retrieved 528: 519: 507:. Retrieved 503: 493: 479: 467:. Retrieved 463: 454: 442:. Retrieved 432: 420:. Retrieved 410: 259: 250: 240: 237:Build system 226:build system 221: 220: 123:/ninja-build 83:1.12.1  46:Developer(s) 469:5 September 334:description 305:description 224:is a small 203:ninja-build 96:11 May 2024 50:Evan Martin 635:Categories 402:References 140:Written in 110:Repository 591:Kitware. 460:"COPYING" 598:18 June 534:18 June 525:"Ninja" 509:18 June 422:18 June 321:command 297:gcc-c-o 292:command 280:Example 198:Website 187:License 168:Windows 94: ( 63: ( 626:GitHub 464:Github 444:23 May 392:source 385:source 369:source 353:source 230:Google 208:  148:Python 125:/ninja 119:github 622:ninja 341:$ out 328:$ out 326:gcc-o 312:$ out 299:$ out 274:Meson 270:CMake 222:Ninja 164:macOS 160:Linux 37:Meson 33:dav1d 20:Ninja 600:2017 536:2017 511:2017 471:2019 446:2024 424:2017 382:link 339:LINK 331:$ in 318:link 315:rule 302:$ in 286:rule 262:Make 255:LLVM 251:Kati 243:Make 205:.org 175:Type 121:.com 65:2012 58:2012 624:on 504:LWN 266:Gyp 144:C++ 637:: 527:. 502:. 462:. 394:2. 387:1. 371:2. 366:cc 355:1. 350:cc 310:CC 289:cc 272:, 268:, 257:. 166:, 162:, 146:, 602:. 580:. 566:. 552:. 538:. 513:. 487:. 473:. 448:. 426:. 396:o 389:o 379:: 373:c 363:: 357:c 347:: 337:= 324:= 308:= 295:= 98:) 67:)

Index


dav1d
Meson
Developer(s)
Stable release
Edit this on Wikidata
Repository
github.com/ninja-build/ninja
Edit this at Wikidata
C++
Python
Operating system
Linux
macOS
Windows
Type
Software development tools
License
Apache License 2.0
ninja-build.org
Edit this on Wikidata
build system
Google
Make
Google Chrome
LLVM
Make
Gyp
CMake
Meson

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑