Waf

Waf
Sorts verktygsprogramvara
Utvecklaren Thomas Nagy
Skrivet i Pytonorm
Operativ system Windows , POSIX
senaste versionen 2.0.20 ( 24 november 2019 )
Licens BSD
Hemsida waf.io

Waf  är ett byggautomationssystem skrivet i Python med Python -skriptade konfigurationsfiler. Huvudförfattare är Thomas Nagy .

Har inbyggt stöd för C , C++ , D , Java , Fortran , Qt ; ger generering av TeX- och LaTeX- dokument . Stöd för andra språk eller filformat kan implementeras med hjälp av anpassade tillägg ( verktyg ). För C och C++ analyseras beroenden automatiskt och, till skillnad från make, behöver du inte köra make depend-kommandot separat . Det finns också en inbyggd möjlighet att söka efter filer som behövs för montering (#inkludera-filer, bibliotek och andra monteringsartefakter).

MD5 -kontrollsumma-filinnehållsändringsdetektering stöds , tillsammans med traditionell ändringsdetektering efter filskrivtid. Det finns möjlighet till parallell montering. Dessutom används cachning för att påskynda den  byggliknande ccachen , men för alla filtyper.

Historik

Under en lång tid använde KDE -projektet paketet GNU build system (Autotools) för att bygga, men på grund av begränsningarna hos det senare beslutade det att byta till SCons [1] . Som en del av denna övergång skapade Thomas Nagy verktyget BKsys, som var tänkt att köras ovanpå SCons och tillhandahålla funktionalitet som liknar Autotools. Nagy beslutade dock senare att de arkitektoniska bristerna hos SCons (särskilt prestandaproblemet på stora projekt) var för stora och svåra att åtgärda. Så han bestämde sig för att helt skriva om SCons och resultatet blev "Waf".

Ett tag ansåg KDE -projektet BKsys (och senare Waf) som sitt huvudbyggsystem, men valet gjordes till förmån för CMake , eftersom BKsys inte löste problemen med SCons, och Waf fortfarande var i alfaversion [1] . Systemet har dock fått en viss distribution, i synnerhet används det av Samba , Ardor , Geany , Jack Audio- projekten .

Exempel

Ett exempel på en enkel wscript-fil som kompilerar filen "hello-world.c" med en av de tillgängliga C-kompilatorerna:

topp = '.' ut = 'bygga' def options ( opt ): opt . ladda ( 'compiler_c' ) def configure ( conf ): conf . ladda ( 'compiler_c' ) def build ( bld ): bld . program ( source = 'hello-world.c' , target = 'hello-world' , features = 'c cprogram' )

Bygget av projektet startas av följande kommando:

waf configure build

Anteckningar

  1. 1 2 Varför KDE-projektet bytte till CMake . Hämtad 22 december 2010. Arkiverad från originalet 7 maj 2011.

Länkar