mirror of
https://gitlab.com/ita1024/waf.git
synced 2024-11-10 20:29:10 +01:00
63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
#! /usr/bin/env python
|
|
# encoding: utf-8
|
|
|
|
top = '.'
|
|
out = 'bin'
|
|
|
|
import os, re
|
|
from waflib import Utils
|
|
|
|
def configure(conf):
|
|
pass
|
|
|
|
def build(bld):
|
|
|
|
# the test.pc.in is a special case which is always handled
|
|
bld(source='test.pc.in', VERSION='1.1', LIBS='moo', XPM_LIBS='-lxpm', LIBICONV='-liconv', XPM_CFLAGS='-O3')
|
|
|
|
tg = bld(
|
|
features = 'subst', # the feature 'subst' overrides the source/target processing
|
|
source = 'foo.in', # list of string or nodes
|
|
target = 'foo.txt', # list of strings or nodes
|
|
encoding = 'ascii', # file encoding for python3, default is ISO8859-1
|
|
install_path = '/tmp/uff/', # installation path, optional
|
|
chmod = Utils.O755, # installation mode, optional
|
|
PREFIX = bld.env.PREFIX, # variables to use in the substitution
|
|
re_m4 = re.compile('%%(\w+)%%', re.M), # custom substitution
|
|
BINDIR = bld.env.BINDIR)
|
|
|
|
# if you are using an external dict, here is to merge the key/values:
|
|
dct = {'BINDIR': '/opt'}
|
|
tg.__dict__.update(dct)
|
|
|
|
# if you want a file copy, pass "is_copy=True"
|
|
bld(features='subst', source='wscript', target='wscript', is_copy=True)
|
|
|
|
# same thing with a simple function
|
|
def fun(task, text):
|
|
return text
|
|
bld(features='subst', subst_fun=fun, source='wscript', target='wscript2')
|
|
|
|
def hlink(task):
|
|
try:
|
|
link = os.link
|
|
except AttributeError:
|
|
task.outputs[0].write(task.inputs[0].read('rb'), 'wb')
|
|
else:
|
|
for x, y in zip(task.inputs, task.outputs):
|
|
try:
|
|
os.remove(y.abspath())
|
|
except OSError:
|
|
pass
|
|
os.link(x.abspath(), y.abspath())
|
|
bld(features='subst', fun=hlink, source='wscript', target='wscript3')
|
|
|
|
# this one is just a reminder that simple files can be created (and a test too)
|
|
#bld(rule='echo "การไฟ่" > ${TGT}', target='foo.txt')
|
|
|
|
# and this is an alternate syntax
|
|
#@bld.rule(source='wscript', target='wscript2')
|
|
#def _(tsk):
|
|
# tsk.outputs[0].write(tsk.inputs[0].read())
|
|
|