From 8cf479caaa7a5840b926245e13e96f789180d758 Mon Sep 17 00:00:00 2001 From: "chaos.proton@gmail.com" Date: Sun, 22 Jul 2012 11:17:04 +0000 Subject: [PATCH] add "remove_components" feature If one do not want to use some components in the RTT_ROOT, it can pass a remove_components=['the_component'] parameter to PrepareBuilding. Sample code is: RTT_RTGUI = os.getenv('RTT_RTGUI') # if GUI dir is set to other place, don't use the one in RTT_ROOT if RTT_RTGUI: # prepare building environment objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False, remove_components=['rtgui']) objs += SConscript(os.path.join(RTT_RTGUI, 'SConscript')) else: objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) You can safely omit the parameter if you do not want to remove any components. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2227 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- components/SConscript | 3 +++ tools/building.py | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/components/SConscript b/components/SConscript index 517e80b11f..580b7e19e1 100644 --- a/components/SConscript +++ b/components/SConscript @@ -1,11 +1,14 @@ # for module compiling import os Import('RTT_ROOT') +Import('remove_components') objs = [] list = os.listdir(os.path.join(RTT_ROOT, 'components')) for d in list: + if d in remove_components: + continue path = os.path.join(RTT_ROOT, 'components', d) if os.path.isfile(os.path.join(path, 'SConscript')): objs = objs + SConscript(os.path.join(d, 'SConscript')) diff --git a/tools/building.py b/tools/building.py index 9f54a6ceac..c520f402c3 100644 --- a/tools/building.py +++ b/tools/building.py @@ -58,7 +58,7 @@ def GetVersion(): return '0.%d.%d' % (version, subversion) -def PrepareBuilding(env, root_directory, has_libcpu=False): +def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = []): import SCons.cpp import rtconfig @@ -122,8 +122,12 @@ def PrepareBuilding(env, root_directory, has_libcpu=False): # include libcpu if not has_libcpu: objs.append(SConscript(Rtt_Root + '/libcpu/SConscript', variant_dir='build/libcpu', duplicate=0)) + # include components - objs.append(SConscript(Rtt_Root + '/components/SConscript', variant_dir='build/components', duplicate=0)) + objs.append(SConscript(Rtt_Root + '/components/SConscript', + variant_dir='build/components', + duplicate=0, + exports='remove_components')) return objs