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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.