mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
wafsamba: add support for separate rules in stages
bld.process_separate_rule(rule) and conf.process_separate_rule(rule) will cause WAF to import wscript_<stage>_<rule> script into current context. Files wscript_<configure|build>_<rule> should exist in the current directory. This can be used to provide rules specific for alternative implementations of certain libraries Autobuild-User: Alexander Bokovoy <ab@samba.org> Autobuild-Date: Fri Apr 13 18:34:39 CEST 2012 on sn-devel-104
This commit is contained in:
parent
b8dea7e82d
commit
1a8405c320
@ -111,9 +111,6 @@ class WscriptError(WafError):
|
||||
return (frame[0], frame[1])
|
||||
return (None, None)
|
||||
|
||||
class WscriptCheckSkipped(WscriptError):
|
||||
pass
|
||||
|
||||
indicator = is_win32 and '\x1b[A\x1b[K%s%s%s\r' or '\x1b[K%s%s%s\r'
|
||||
|
||||
try:
|
||||
@ -648,8 +645,6 @@ class Context(object):
|
||||
try:
|
||||
try:
|
||||
exec(compile(txt, file_path, 'exec'), dc)
|
||||
except WscriptCheckSkipped:
|
||||
pass
|
||||
except Exception:
|
||||
exc_type, exc_value, tb = sys.exc_info()
|
||||
raise WscriptError("".join(traceback.format_exception(exc_type, exc_value, tb)), base)
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
import Build, os, sys, Options, Utils, Task, re, fnmatch, Logs
|
||||
from TaskGen import feature, before
|
||||
from Configure import conf
|
||||
from Configure import conf, ConfigurationContext
|
||||
from Logs import debug
|
||||
import shlex
|
||||
|
||||
@ -624,3 +624,26 @@ def get_tgt_list(bld):
|
||||
sys.exit(1)
|
||||
tgt_list.append(t)
|
||||
return tgt_list
|
||||
|
||||
from Constants import WSCRIPT_FILE
|
||||
def process_separate_rule(self, rule):
|
||||
''' cause waf to process additional script based on `rule'.
|
||||
You should have file named wscript_<stage>_rule in the current directory
|
||||
where stage is either 'configure' or 'build'
|
||||
'''
|
||||
ctxclass = self.__class__.__name__
|
||||
stage = ''
|
||||
if ctxclass == 'ConfigurationContext':
|
||||
stage = 'configure'
|
||||
elif ctxclass == 'BuildContext':
|
||||
stage = 'build'
|
||||
file_path = os.path.join(self.curdir, WSCRIPT_FILE+'_'+stage+'_'+rule)
|
||||
txt = load_file(file_path)
|
||||
if txt:
|
||||
dc = {'ctx': self}
|
||||
if getattr(self.__class__, 'pre_recurse', None):
|
||||
dc = self.pre_recurse(txt, file_path, [])
|
||||
exec(compile(txt, file_path, 'exec'), dc)
|
||||
|
||||
Build.BuildContext.process_separate_rule = process_separate_rule
|
||||
ConfigurationContext.process_separate_rule = process_separate_rule
|
||||
|
@ -111,8 +111,19 @@ bld.RECURSE('libcli/samsync')
|
||||
bld.RECURSE('libcli/registry')
|
||||
bld.RECURSE('source4/lib/policy')
|
||||
bld.RECURSE('libcli/named_pipe_auth')
|
||||
if not bld.CONFIG_SET("USING_SYSTEM_KRB5"):
|
||||
bld.RECURSE('source4/heimdal_build')
|
||||
|
||||
if bld.CONFIG_SET("USING_SYSTEM_KRB5"):
|
||||
if bld.CONFIG_SET("HEIMDAL_KRB5_CONFIG") and bld.CONFIG_SET("KRB5_CONFIG"):
|
||||
if bld.CONFIG_GET("HEIMDAL_KRB5_CONFIG") != bld.CONFIG_GET("KRB5_CONFIG"):
|
||||
# When both HEIMDAL_KRB5_CONFIG and KRB5_CONFIG are set and not equal,
|
||||
# it means one is Heimdal-specific (krb5-config.heimdal, for example)
|
||||
# and there is system heimdal
|
||||
bld.process_separate_rule('system_heimdal')
|
||||
else:
|
||||
bld.process_separate_rule('system_krb5')
|
||||
else:
|
||||
bld.process_separate_rule('embedded_heimdal')
|
||||
|
||||
bld.RECURSE('libcli/smbreadline')
|
||||
bld.RECURSE('codepages')
|
||||
bld.RECURSE('source4/setup')
|
||||
|
2
wscript_build_embedded_heimdal
Normal file
2
wscript_build_embedded_heimdal
Normal file
@ -0,0 +1,2 @@
|
||||
print "\tSelected embedded Heimdal build"
|
||||
bld.RECURSE('source4/heimdal_build')
|
2
wscript_build_system_heimdal
Normal file
2
wscript_build_system_heimdal
Normal file
@ -0,0 +1,2 @@
|
||||
print "\tSelected system Heimdal build"
|
||||
bld.RECURSE('source4/heimdal_build')
|
2
wscript_build_system_mitkrb5
Normal file
2
wscript_build_system_mitkrb5
Normal file
@ -0,0 +1,2 @@
|
||||
print "\tSelected system MIT krb5 libraries, Heimdal use is disabled"
|
||||
#bld.RECURSE('source4/heimdal_build')
|
Loading…
Reference in New Issue
Block a user