Waf

De Wikipedia, la enciclopedia libre
Waf
Información general
Tipo de programa Herramienta de programación, Sistema de construcción
Desarrollador Thomas Nagy
Lanzamiento inicial 21 de enero de 2007 (17 años, 3 meses y 5 días)
Licencia Licencia BSD
Información técnica
Programado en Python
Versiones
Última versión estable 1.7.2 ( 5 de agosto de 2012 (11 años, 8 meses y 21 días))
Enlaces

Waf es una herramienta que ayuda a configurar automáticamente la compilación y la instalación de otros programas o bibliotecas (build).

Funciones[editar]

General

  • Es portable a sistemas Unix y no-Unix.
  • Es ligero.
  • Ofrece un lenguaje de programación real (similar a SCons).
  • Soporta objetivos estándar: configurar, compilar, limpiar, instalar y desinstalar.

Requerimientos

  • No requiere instalación: el script WAF (menos de 100KB) puede ser distribuido y utilizado directamente.
  • Sólo necesita a Python como dependencia externa.
  • No requiere sh (a diferencia de GNU Autotools).
  • No requiere de conocimientos acerca de M4 (a diferencia de GNU Autotools).

Soporte de lenguajes:

  • Información en pantalla colorida y barra de progreso.
  • Los scripts son módulos de Python.
  • Esquema modular de configuración con análisis personalizable en línea de comandos.
  • Modo demonio para el historial de recompilación.
  • Busca archivos fuente de forma inteligente para facilitar el mantenimiento del script .
  • Soporta caché de objetos global para evitar compilaciones innecesarias.
  • Soporta la ejecución de pruebas(test) en los programas al final de la compilación.

Historia[editar]

Era alrededor del año 2005, el proyecto KDE usó durante mucho tiempo el Autotools como su principal sistema de construcción. Autotools tiene una arquitectura que es difícil de comprender, y ha sido apodado "auto-infierno".,[1]​ en KDE estaban considerando la posibilidad de pasar de Autotools a SCons.

Thomas Nagy había creado una herramienta de construcción automatizada llamada BKsys que fue diseñada para colocarse encima de SCons, proporcionando mayor nivel de funcionalidad similar a la de autotools. Cuando Thomas Nagy decide que los problemas fundamentales de SCons (sobre todo la mala escalabilidad) eran demasiado complejos y requerían mucho tiempo para arreglarse, comienza una reescritura completa llamada "Waf".

Waf fue objeto de un poco de atención cuando el proyecto en KDE decidieron utilizar BKsys (y más tarde WAF) como su principal sistema de construcción, aunque más tarde, esa decisión fue revocada en favor de CMake porque BKsys no pudo resolver los problemas de SCons, y Waf todavía estaba en una fase muy temprana de desarrollo (pre-alfa) en ese momento.[1]

Ejemplo Waf archivo[editar]

A continuación se muestra una wscript muy simple, que incluirá una fuente llamada "hola-mundo.c" usando el compilador C por defecto.

top = '.'
out = 'build'

def set_options(opt):
    opt.tool_options('compiler_cc')
 	
def configure(conf):
    conf.check_tool('compiler_cc')

def build(bld):
    bld(source = 'hello-world.c',
        target = 'hello-world',
        features = 'cc cprogram')

El proyecto se construye con el siguiente comando:

waf configure build

Véase también[editar]

Referencias[editar]

Enlaces externos[editar]