Waf | |
---|---|
Typ | nástrojový software |
Vývojář | Tomáš Nagy |
Zapsáno v | Krajta |
Operační systém | Windows , POSIX |
Nejnovější verze | 2.0.20 ( 24. listopadu 2019 ) |
Licence | BSD |
webová stránka | waf.io |
Waf je systém pro automatizaci sestavování napsaný v Pythonu pomocí skriptovaných konfiguračních souborů Pythonu. Hlavním autorem je Thomas Nagy .
Má vestavěnou podporu pro C , C++ , D , Java , Fortran , Qt ; poskytuje generování dokumentů TeX a LaTeX . Podporu dalších jazyků nebo formátů souborů lze implementovat pomocí vlastních rozšíření ( nástroje ). Pro C a C++ jsou závislosti analyzovány automaticky a na rozdíl od make nemusíte spouštět příkaz make depend samostatně . K dispozici je také vestavěná schopnost vyhledávat soubory potřebné pro sestavení (#include-files, knihovny a další artefakty sestavení).
Je podporována detekce změn obsahu souboru kontrolního součtu MD5 spolu s tradiční detekcí změn podle času zápisu souboru. Je zde možnost paralelní montáže. Ukládání do mezipaměti se také používá k urychlení sestavení - jako ccache , ale pro jakýkoli typ souboru.
Projekt KDE dlouhou dobu používal pro sestavení balík GNU build system (Autotools), ale vzhledem k jeho omezením se rozhodl přejít na SCons [1] . V rámci tohoto přechodu vytvořil Thomas Nagy utilitu BKsys, která měla běžet nad SCons a poskytovat funkcionalitu podobnou Autotools. Nagy se však později rozhodl, že architektonické nedostatky SCons (zejména problém s výkonem na velkých projektech) byly příliš velké a obtížně opravitelné. Rozhodl se tedy SCons kompletně přepsat a výsledkem bylo „Waf“.
Projekt KDE nějakou dobu považoval BKsys (a později Waf) za svůj hlavní systém sestavení, ale volba byla učiněna ve prospěch CMake , protože BKsys neřešil problémy SCons a Waf byl stále v alfa verzi [1] . Systém se však dočkal určité distribuce, zejména jej používají projekty Samba , Ardor , Geany , Jack Audio .
Příklad jednoduchého souboru wscript, který zkompiluje soubor "hello-world.c" pomocí jednoho z dostupných kompilátorů C:
nahoře = '.' ven = 'sestavit' def options ( opt ): opt . načíst ( 'compiler_c' ) def configure ( conf ): conf . načíst ( 'compiler_c' ) def build ( bld ): bld . program ( source = 'hello-world.c' , target = 'hello-world' , features = 'c cprogram' )Sestavení projektu se spustí následujícím příkazem:
sestavení konfigurace waf
Montážní automatizační systémy | |
---|---|