Waf

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 (19 años, 9 meses y 15 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 (14 años y 3 meses))
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

General

Requerimientos

Soporte de lenguajes:

Historia

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"., 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.

Ejemplo Waf archivo

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

Referencias

Enlaces externos