waf ist ein in Python geschriebenes Build-Tool. Ich habe versucht, es einzuführen, indem ich bis zu einem gewissen Grad automatisch eine D-Sprach-Kompilierungsumgebung erstellt habe. Da es in Python geschrieben ist, benötigen Sie eine Umgebung, in der Python ausgeführt werden kann.
- Die offizielle Seite ist unten. http://code.google.com/p/waf/
- So etwas wie diese Seite http://docs.waf.googlecode.com/git/book_17/single.html
- Dokumentarischer Waf-Code finden Sie auch hier http://docs.waf.googlecode.com/git/apidocs_17/index.html
Die Umgebung mit Waf- und D-Code ist wie folgt.
Ignorieren Sie ~~ .sublime-project und ~~ .sublime-wokspace, da es sich um projektbezogene Dateien handelt, die in Sublime Text 2 verwendet werden.
waf ist der Hauptteil des Kompilierungswerkzeugs. wscript beschreibt die Build-Regeln. Die Importbeziehungen von .d-Dateien (ohne Phobos) sind wie folgt
/Src/unipa/courseinfo.d importiert jedoch std.net.curl, sodass Sie auf die Curl-Bibliothek verweisen müssen.
Schauen wir uns nun den Inhalt von wscript an.
wscript
import os.path
APPNAME='UNIPA_UFCS'
VERSION='1.0'
top='.'
out='./build'
def options(opt):
opt.load('compiler_d')
def configure(conf):
conf.load('compiler_d')
def build(bld):
bld.add_post_fun(target_run)
bld.program(
source='./src/main.d ./src/unipa/webdata.d ./src/unipa/courceinfo.d',
target=APPNAME,
includes = './src/',
libpath = '/dmd2/osx/lib',
lib = 'curl'
)
def target_run(ctx):
ctx.exec_command(os.path.join(out, APPNAME) + '> result.txt')
APPNAME ist der Name der ausführbaren Datei, VIRSION ist derselbe, oben ist der Ordner mit wscript und out ist das Ausgabeziel von .o oder der ausführbaren Datei. Wenn Sie Optionen schreiben und wie oben konfigurieren, werden die Einstellungen erstellt, die für die Entwicklungsumgebung der D-Sprache geeignet sind. einfach. build ist der Build-Regelkörper. Schreiben Sie die Build-Regel in bld.program. Es ist auf verschiedene Arten geschrieben. Nun, ich denke du kannst die Bedeutung verstehen. Verweisen Sie beispielsweise auf die Curl-Bibliothek mit libpath und lib. Wenn Sie eine Funktion in das Argument von bld.add_post_fun einfügen, wird die Funktion ausgeführt, die Sie bei erfolgreichem Build übergeben haben. target_run führt die ausführbare Datei aus, wenn die Kompilierung erfolgreich ist, und gibt die Ausgabe an result.txt aus.
Nun, es sieht so aus.
Wenn Sie danach den Build auf der Seite von Sublime Text 2 festlegen, ist die Umgebung glücklicher. Es kommt wieder.
Recommended Posts