[Buildroot] [RFC v4 03/16] packages/scons: make avaiable the GCC_SYSROOT environment variable

Fabio Porcedda fabio.porcedda at gmail.com
Sun Jun 28 19:42:37 UTC 2015


In order to support the per-package staging feature, make avaiable the
GCC_SYSROOT environment variable to scons packages so the toolchain
wrapper can use it.

Signed-off-by: Fabio Porcedda <fabio.porcedda at gmail.com>
---
 package/scons/scons.mk     |  3 ++-
 package/scons/site_init.py | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)
 create mode 100644 package/scons/site_init.py

diff --git a/package/scons/scons.mk b/package/scons/scons.mk
index 39fb258..e8ae086 100644
--- a/package/scons/scons.mk
+++ b/package/scons/scons.mk
@@ -18,4 +18,5 @@ HOST_SCONS_INSTALL_OPTS = \
 $(eval $(host-python-package))
 
 # variables used by other packages
-SCONS = $(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/scons $(if $(QUIET),-s)
+SCONS = $(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/scons \
+	$(if $(QUIET),-s) --site-dir=$(TOPDIR)/package/scons
diff --git a/package/scons/site_init.py b/package/scons/site_init.py
new file mode 100644
index 0000000..f0d8b53
--- /dev/null
+++ b/package/scons/site_init.py
@@ -0,0 +1,19 @@
+"""
+Decorate SCons Environment constructor so that the "GCC_SYSROOT"
+variable is always included.
+"""
+
+from functools import wraps
+import SCons.Environment
+
+def add_gcc_sysroot(environment_init):
+    @wraps(environment_init)
+    def wrapper(self, *args, **kwargs):
+        environment_init(self, *args, **kwargs)
+
+        self.PrependENVPath('GCC_SYSROOT', os.environ['GCC_SYSROOT'])
+
+    return wrapper
+
+SCons.Environment.Environment.__init__ = \
+    add_gcc_sysroot(SCons.Environment.Environment.__init__)
-- 
2.4.3




More information about the buildroot mailing list