scons: support 2.5.0
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Wed, 25 May 2016 13:32:08 +0000 (07:32 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 25 May 2016 18:23:12 +0000 (12:23 -0600)
The get_implicit_deps changed in SCons 2.5, expecting a callable rather
than a path as third argument. Detect the SCons versions and set the
argument appropriately to support both 2.5 and earlier versions.

This closes #95211.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95211
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
Acked-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
scons/custom.py

index ff7a7a935de7e43f8f259a633e4dd403760525b7..e66f49696239d357d095b2cfc78c2481b8c3c3e8 100644 (file)
@@ -43,6 +43,13 @@ import fixes
 
 import source_list
 
+# the get_implicit_deps() method changed between 2.4 and 2.5: now it expects
+# a callable that takes a scanner as argument and returns a path, rather than
+# a path directly. We want to support both, so we need to detect the SCons version,
+# for which no API is provided by SCons 8-P
+
+scons_version = tuple(map(int, SCons.__version__.split('.')))
+
 def quietCommandLines(env):
     # Quiet command lines
     # See also http://www.scons.org/wiki/HidingCommandLinesInOutput
@@ -129,7 +136,7 @@ def code_generate(env, script, target, source, command):
 
     # Explicitly mark that the generated code depends on the generator,
     # and on implicitly imported python modules
-    path = (script_src.get_dir(),)
+    path = (script_src.get_dir(),) if scons_version < (2, 5, 0) else lambda x: script_src
     deps = [script_src]
     deps += script_src.get_implicit_deps(env, python_scanner, path)
     env.Depends(code, deps)