waf est un outil de construction écrit en pytho. J'ai essayé de l'introduire en créant un environnement de compilation en langage D automatiquement dans une certaine mesure. Comme il est écrit en python, vous avez besoin d'un environnement dans lequel python peut s'exécuter.
- La page officielle est ci-dessous. http://code.google.com/p/waf/
- Quelque chose comme cette page http://docs.waf.googlecode.com/git/book_17/single.html
- Le code waf documentaire peut également être trouvé ici http://docs.waf.googlecode.com/git/apidocs_17/index.html
L'environnement avec le code waf et .d est le suivant.
Ignorez ~~ .sublime-project et ~~ .sublime-wokspace car ce sont des fichiers liés au projet utilisés dans Sublime Text 2.
waf est le corps principal de l'outil de compilation. wscript décrit les règles de construction. Les relations d'importation des fichiers .d (hors Phobos) sont les suivantes
Cependant, /src/unipa/courseinfo.d importe std.net.curl, vous devez donc vous référer à la bibliothèque curl.
Voyons maintenant le contenu de wscript.
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 est le nom du fichier exécutable, VIRSION est le même, top est le dossier avec wscript et out est la destination de sortie du fichier .o ou exécutable. Si vous écrivez des options et configurez comme ci-dessus, il construira les paramètres adaptés à l'environnement de développement du langage D. facile. build est le corps de la règle de construction, écrivez la règle de construction dans bld.program. Il est écrit de différentes manières. Eh bien, je pense que vous pouvez comprendre le sens. Par exemple, reportez-vous à la bibliothèque curl avec libpath et lib. Si vous mettez une fonction dans l'argument de bld.add_post_fun, elle exécutera la fonction que vous avez passée lorsque la construction a réussi. target_run exécute le fichier exécutable lorsque la compilation est réussie et renvoie la sortie dans result.txt.
Eh bien, ça ressemble à ça.
Après cela, si vous définissez la construction du côté Sublime Text 2, ce sera un environnement plus heureux. Ça revient.
Recommended Posts