fixed some file headers to the new format
[senf.git] / senfscons / InstallIncludes.py
index 8845fa8..dc9c817 100644 (file)
@@ -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),
-                                  SCons.Environment.installString([trg], [src], env) )
+                                  lambda a,b,c,s=stringFunc([trg], [src], env):s )
              for trg, src in zip(target,source) ]
 
 InstallIncludes = SCons.Builder.Builder(emitter = emitter,