X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senfscons%2FInstallIncludes.py;h=dc9c81744574b6f67e0772188c25edbb7957b72f;hb=63b650afb727cce067817ce9451eecb932446bf3;hp=d6fc72e6aea1351f2f93da13881fe62c077e9c6a;hpb=3cb5927f23dae04dbe55883d4e8fd72726dac6cb;p=senf.git diff --git a/senfscons/InstallIncludes.py b/senfscons/InstallIncludes.py index d6fc72e..dc9c817 100644 --- a/senfscons/InstallIncludes.py +++ b/senfscons/InstallIncludes.py @@ -7,6 +7,11 @@ # \ingroup builder import SCons.Builder, SCons.Action, SCons.Environment, SCons.Node.FS +try: + from SCons.Tool.install import installFunc, stringFunc +except: + installFunc = SCons.Environment.installFunc + stringFunc = SCons.Environment.installString def recursiveChildren(f): rv = {} @@ -19,6 +24,10 @@ def filterIncludes(files, extensions): return [ f for f in files if f.get_suffix() in extensions ] +def filterIncludesInv(files, extensions): + return [ f for f in files + if '.' + str(f).split('.',1)[-1] not in extensions ] + def filterDirectory(files, dir): return [ f for f in files if f.abspath.startswith(dir.abspath) ] @@ -30,6 +39,7 @@ def excludeDirectories(files, dirs): def emitter(target, source, env): source = recursiveChildren(source) source = filterIncludes(source, env['CPP_INCLUDE_EXTENSIONS']) + source = filterIncludesInv(source, env['CPP_EXCLUDE_EXTENSIONS']) source = filterDirectory(source, env['INSTALL_BASE']) source = excludeDirectories(source, env['INCLUDE_IGNORED_DIRECTORIES']) @@ -45,11 +55,11 @@ class Installer: self.source = source def __call__(self, target, source, env): - SCons.Environment.installFunc([self.target], [self.source], env) + installFunc([self.target], [self.source], env) def generator(target, source, env, for_signature): return [ SCons.Action.Action( Installer(trg, src), - lambda a,b,c,s=SCons.Environment.installString([trg], [src], env):s ) + lambda a,b,c,s=stringFunc([trg], [src], env):s ) for trg, src in zip(target,source) ] InstallIncludes = SCons.Builder.Builder(emitter = emitter,