mirror of
https://github.com/samba-team/samba.git
synced 2025-03-30 06:50:24 +03:00
wafsamba: Add a CONFIGURE_FILE option.
This commit is contained in:
parent
18eb505b89
commit
802708b410
44
buildtools/wafsamba/configure_file.py
Normal file
44
buildtools/wafsamba/configure_file.py
Normal file
@ -0,0 +1,44 @@
|
||||
# handle substitution of variables in .in files
|
||||
|
||||
import Build, sys, Logs
|
||||
from samba_utils import *
|
||||
|
||||
def subst_at_vars(task):
|
||||
'''substiture @VAR@ style variables in a file'''
|
||||
|
||||
env = task.env
|
||||
src = task.inputs[0].srcpath(env)
|
||||
tgt = task.outputs[0].bldpath(env)
|
||||
|
||||
f = open(src, 'r')
|
||||
s = f.read()
|
||||
f.close()
|
||||
# split on the vars
|
||||
a = re.split('(@\w+@)', s)
|
||||
out = []
|
||||
for v in a:
|
||||
if re.match('@\w+@', v):
|
||||
vname = v[1:-1]
|
||||
if not vname in task.env and vname.upper() in task.env:
|
||||
vname = vname.upper()
|
||||
if not vname in task.env:
|
||||
Logs.error("Unknown substitution %s in %s" % (v, task.name))
|
||||
sys.exit(1)
|
||||
v = SUBST_VARS_RECURSIVE(task.env[vname], task.env)
|
||||
out.append(v)
|
||||
contents = ''.join(out)
|
||||
f = open(tgt, 'w')
|
||||
s = f.write(contents)
|
||||
f.close()
|
||||
return 0
|
||||
|
||||
def CONFIGURE_FILE(bld, in_file, **kwargs):
|
||||
'''configure file'''
|
||||
|
||||
base=os.path.basename(in_file)
|
||||
t = bld.SAMBA_GENERATOR('INFILE_%s' % base,
|
||||
rule = subst_at_vars,
|
||||
source = in_file + '.in',
|
||||
target = in_file,
|
||||
vars = kwargs)
|
||||
Build.BuildContext.CONFIGURE_FILE = CONFIGURE_FILE
|
@ -31,6 +31,7 @@ import samba_wildcard
|
||||
import stale_files
|
||||
import symbols
|
||||
import pkgconfig
|
||||
import configure_file
|
||||
|
||||
# some systems have broken threading in python
|
||||
if os.environ.get('WAF_NOTHREADS') == '1':
|
||||
@ -579,6 +580,12 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
|
||||
if not enabled:
|
||||
return
|
||||
|
||||
dep_vars = []
|
||||
if isinstance(vars, dict):
|
||||
dep_vars = vars.keys()
|
||||
elif isinstance(vars, list):
|
||||
dep_vars = vars
|
||||
|
||||
bld.SET_BUILD_GROUP(group)
|
||||
t = bld(
|
||||
rule=rule,
|
||||
@ -589,7 +596,7 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
|
||||
before='cc',
|
||||
ext_out='.c',
|
||||
samba_type='GENERATOR',
|
||||
dep_vars = [rule] + (vars or []),
|
||||
dep_vars = [rule] + dep_vars,
|
||||
name=name)
|
||||
|
||||
if always:
|
||||
|
Loading…
x
Reference in New Issue
Block a user