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
This commit is contained in:
chaos.proton@gmail.com 2012-07-22 11:17:04 +00:00
parent 0b1f748701
commit 8cf479caaa
2 changed files with 9 additions and 2 deletions

View File

@ -1,11 +1,14 @@
# for module compiling # for module compiling
import os import os
Import('RTT_ROOT') Import('RTT_ROOT')
Import('remove_components')
objs = [] objs = []
list = os.listdir(os.path.join(RTT_ROOT, 'components')) list = os.listdir(os.path.join(RTT_ROOT, 'components'))
for d in list: for d in list:
if d in remove_components:
continue
path = os.path.join(RTT_ROOT, 'components', d) path = os.path.join(RTT_ROOT, 'components', d)
if os.path.isfile(os.path.join(path, 'SConscript')): if os.path.isfile(os.path.join(path, 'SConscript')):
objs = objs + SConscript(os.path.join(d, 'SConscript')) objs = objs + SConscript(os.path.join(d, 'SConscript'))

View File

@ -58,7 +58,7 @@ def GetVersion():
return '0.%d.%d' % (version, subversion) 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 SCons.cpp
import rtconfig import rtconfig
@ -122,8 +122,12 @@ def PrepareBuilding(env, root_directory, has_libcpu=False):
# include libcpu # include libcpu
if not has_libcpu: if not has_libcpu:
objs.append(SConscript(Rtt_Root + '/libcpu/SConscript', variant_dir='build/libcpu', duplicate=0)) objs.append(SConscript(Rtt_Root + '/libcpu/SConscript', variant_dir='build/libcpu', duplicate=0))
# include components # 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 return objs