Ninja es un pequeño sistema de construcción desarrollado por Evan Martin, [4] un empleado de Google. Ninja se centra en la velocidad y se diferencia de otros sistemas de compilación en dos aspectos principales: está diseñado para que sus archivos de entrada sean generados por un sistema de compilación de nivel superior y está diseñado para ejecutar compilaciones lo más rápido posible.
Desarrollador (es) | Evan Martín |
---|---|
Versión inicial | 2012 [1] |
Lanzamiento estable | 1.10.2 [2] / 28 de noviembre de 2020 |
Repositorio | |
Escrito en | C ++ , Python |
Sistema operativo | Linux , macOS , Windows |
Tipo | Herramientas de desarrollo de software |
Licencia | Licencia de Apache 2.0 [3] |
Sitio web | ninja-build |
En esencia, Ninja está destinado a reemplazar Make , que es lento cuando se realizan compilaciones incrementales (o no operativas). [5] Esto puede ralentizar considerablemente a los desarrolladores que trabajan en proyectos grandes, como Google Chrome, que compila 40.000 archivos de entrada en un solo ejecutable. De hecho, Google Chrome es un usuario principal y una motivación para Ninja. [6] También se utiliza para construir Android (a través de la traducción Makefile de Kati ), [7] y es utilizado por la mayoría de los desarrolladores que trabajan en LLVM . [8]
A diferencia de Make , Ninja carece de funciones como la manipulación de cadenas, ya que los archivos de compilación de Ninja no deben escribirse a mano. En su lugar, se debe utilizar un "generador de compilación" para generar archivos de compilación de Ninja. Gyp , CMake , Meson y gn [9] son herramientas de software de gestión de compilaciones populares que admiten la creación de archivos de compilación para Ninja. [10]
Ejemplo
regla cc command = gcc -c -o $ out $ in descripción = CC $ out comando de enlace de regla = gcc -o $ out $ in descripción = LINK $ out build source1.o : cc source 1. c build source2.o : cc source 2. c build myprogram : enlace fuente 1. o fuente 2. o
Ver también
Referencias
- ^ Martín, Evan. "Grupos de Google: ninja-build" . Consultado el 18 de junio de 2017 .
- ^ "Lanzamientos - ninja-build / ninja" . Consultado el 8 de diciembre de 2020 .
- ^ "COPIANDO" . Github . Consultado el 5 de septiembre de 2019 .
- ^ "Sistema de compilación de Chrome de fuentes abiertas de Google man" .
- ^ Röthlisberger, David. "La herramienta de construcción Ninja" . LWN . Consultado el 18 de junio de 2017 .
- ^ "Ninja" . El rendimiento de las aplicaciones de código abierto . Consultado el 18 de junio de 2017 .
- ^ "lista de correo de aosp" .
- ^ "Documentación LLVM" .
- ^ "gn - Git en Google" .
- ^ Kitware. "Documentación de cmake" . Consultado el 18 de junio de 2017 .
enlaces externos
- Página web oficial
- ninja en GitHub