Preskoči na sadržaj

Rad s Python okvirom waf

Note

Materijali su složeni prema Waf Booku. Osim tog izvora, za više detalja proučite Waf API dokumentaciju.

Sustavi za automatizaciju izgradnje softvera (engl. build automation system) su aplikacije koje automatiziraju ili skriptiraju aktivnosti u procesu izgradnje softvera.

Primjeri takvih alata su Autotools, CMake, qmake (dio Qt-a), SCons, Waf i drugi.

Autotools rade tako da generiraju datoteku ./configure, a ponekad i datoteku Makefile. Korisnik ih najčešće pokreće putem prethodno napravljenih skripti za kompajiranje programa, a za samu izgradnju koristi make.

CMake zamjenuje ./configure, a za izgradnju softvera koristi make, ninja ili srodan alat.

Waf je okvir za konfiguraciju, prevođenje i instalaciju aplikacija. Za razliku od Autotools-a i CMake-a, Waf ne koristi make.

Da bi iskoristili Waf na svojem projektu, postupak je vrlo jednostavan:

  • $ cd myproject
  • $ curl -o waf https://waf.io/waf-2.0.23
  • $ chmod +x waf
  • u istom direktoriju treba napravit wscript sa sadržajem

    def configure(conf):
        print("configure!")
    
    def build(bld):
        print("build!")
    

    čime smo omogućili pokretaje naredbi:

    • $ ./waf configure
    • $ ./waf build

Todo

Ovdje nedostaje zadatak.

Faze izgradnje softvera su:

  • configure
  • build
  • install
  • uninstall
  • dist -- stvara datoteku s izvornim kodom
  • clean -- čisti datoteke stvorene u build fazi

Author: Vedran Miletić