Waf

Waf
Type værktøjssoftware
Udvikler Thomas Nagy
Skrevet i Python
Operativ system Windows , POSIX
nyeste version 2.0.20 ( 24. november 2019 )
Licens BSD
Internet side waf.io

Waf  er et byggeautomatiseringssystem skrevet i Python ved hjælp af Python scriptede konfigurationsfiler. Hovedforfatteren er Thomas Nagy .

Har indbygget understøttelse af C , C++ , D , Java , Fortran , Qt ; giver generering af TeX- og LaTeX- dokumenter . Understøttelse af andre sprog eller filformater kan implementeres ved hjælp af brugerdefinerede udvidelser ( værktøjer ). For C og C++ analyseres afhængigheder automatisk, og i modsætning til make, behøver du ikke at køre make depend-kommandoen separat . Der er også en indbygget mulighed for at søge efter filer, der er nødvendige for samling (#include-filer, biblioteker og andre samlingsartefakter).

MD5 -kontrolsum filindholdsændringsdetektion understøttes sammen med traditionel ændringsdetektion efter filskrivetid. Der er mulighed for parallel montering. Også caching bruges til at fremskynde den build  -lignende ccache , men for enhver filtype.

Historie

I lang tid brugte KDE -projektet pakken GNU build system (Autotools) til at bygge, men på grund af sidstnævntes begrænsninger besluttede det at skifte til SCons [1] . Som en del af denne overgang skabte Thomas Nagy BKsys-værktøjet, som skulle køre oven på SCons og give funktionalitet svarende til Autotools. Nagy besluttede dog senere, at SCons' arkitektoniske fejl (især ydeevneproblemet på store projekter) var for store og svære at rette. Så han besluttede at omskrive SCons fuldstændigt, og resultatet blev "Waf".

I et stykke tid betragtede KDE -projektet BKsys (og senere Waf) som deres hovedbyggesystem, men valget blev truffet til fordel for CMake , da BKsys ikke løste problemerne med SCons, og Waf stadig var i alfaversion [ 1] . Systemet har dog fået en vis distribution, især bruges det af Samba , Ardor , Geany , Jack Audio -projekterne .

Eksempel

Et eksempel på en simpel wscript-fil, der kompilerer filen "hello-world.c" ved hjælp af en af ​​de tilgængelige C-kompilere:

top = '.' ud = 'byg' def optioner ( opt ): opt . indlæs ( 'compiler_c' ) def configure ( conf ): conf . indlæs ( 'compiler_c' ) def build ( bld ): bld . program ( kilde = 'hello-world.c' , target = 'hello-world' , features = 'c cprogram' )

Opbygningen af ​​projektet startes af følgende kommando:

waf konfigurere build

Noter

  1. 1 2 Hvorfor KDE-projektet skiftede til CMake . Hentet 22. december 2010. Arkiveret fra originalen 7. maj 2011.

Links