import os import sys import SCons.cpp import rtconfig if os.getenv('RTT_ROOT'): RTT_ROOT = os.getenv('RTT_ROOT') else: RTT_ROOT = os.path.normpath(os.getcwd() + '/../..') if os.getenv('RTT_RTGUI'): RTT_RTGUI = os.getenv('RTT_RTGUI') else: # set the rtgui root directory by hand # empty string means use the RTGUI in svn RTT_RTGUI = os.path.normpath(r'F:\Project\git\rt-gui\components\rtgui') # RTT_RTGUI ='' sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] from building import * Export('RTT_ROOT') # add target option AddOption('--app', dest='app', nargs=1, type='string', action='store', metavar='DIR', help='installation prefix') # add target option AddOption('--type', dest='type', nargs=1, type='string', action='store', metavar='DIR', help='installation prefix') app = GetOption('app') env = Environment() CPPPATH = [ RTT_ROOT + '/include', RTT_ROOT + '/bsp/' + rtconfig.BSP, RTT_ROOT + '/components/finsh', RTT_ROOT + '/components/libdl', RTT_ROOT + '/components/external/ftk/ftk/src/os/rt-thread', RTT_ROOT + '/components/external/ftk/ftk/src/demos', RTT_ROOT + '/components/external/ftk/ftk/apps/common', RTT_ROOT + '/components/external/ftk/ftk/src', RTT_ROOT + '/components/dfs', RTT_ROOT + '/components/dfs/include', RTT_ROOT + '/components/libc/newlib', RTT_ROOT + '/components/external/cairo/cairo-1.10.2/src', RTT_ROOT + '/components/external/cairo/' ] if RTT_RTGUI: RTGUI_ROOT = RTT_RTGUI else: RTGUI_ROOT = RTT_ROOT + '/components/rtgui' RTGUI_PATH = [ RTGUI_ROOT + '/include', RTGUI_ROOT + '/common', RTGUI_ROOT + '/server', RTGUI_ROOT + '/widgets', ] CPPPATH += RTGUI_PATH env.Append(CCFLAGS=rtconfig.CFLAGS) env.Append(LINKFLAGS=rtconfig.LFLAGS) env.Append(CPPPATH=CPPPATH) env.Append(LIBS='rtthread', LIBPATH='../') env.PrependENVPath('PATH', rtconfig.EXEC_PATH) PrepareModuleBuilding(env, RTT_ROOT) #dir = app + '/build/' + rtconfig.BSP dir = app + '/build/' objs = SConscript(app + '/Sconscript', variant_dir=dir, duplicate=0) TARGET = dir + '/' + app + '.' + rtconfig.TARGET_EXT # build program #env.Program(TARGET, objs) env.SharedLibrary(TARGET, objs)