|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最近在做一个项目,需要用一个叫做scons的工程管理工具代替Makefile,但是这个用的是python。python真的是一窍不通,项目时间不多了。再去学来不及了。希望鱼友们帮我看一下,有没有语法错误。谢谢了!
代码段1:
代码段2:- import os
- import sys
- import rtconfig
- if os.getenv('RTT_ROOT'):
- RTT_ROOT = os.getenv('RTT_ROOT')
- else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
- sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
- from building import *
- TARGET = 'rtthread-myboard.' + rtconfig.TARGET_EXT
- env = Environment(tools = ['mingw'],
- AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
- CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
- AR = rtconfig.AR, ARFLAGS = '-rc',
- LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
- env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
- if rtconfig.PLATFORM == 'iar':
- env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
- env.Replace(ARFLAGS = [''])
- env.Replace(LINKCOM = ['$LINK $SOURCES $LINKFLAGS -o $TARGET --map project.map'])
- Export('RTT_ROOT')
- Export('rtconfig')
- # prepare building environment
- objs = PrepareBuilding(env, RTT_ROOT)
- # myboard firemare library building script
- objs = objs + SConscript( GetCurrentDir() + '/CMSIS/SConscript', variant_dir='build/bsp/CMSIS', duplicate=0)
-
- #myboard application building script
- objs = objs + SConscript( GetCurrentDir() + '/applications/SConscript', variant_dir='build/bsp/applications', duplicate=0)
- #myboard drivers building scipt
- objs = objs + SConscript( GetCurrentDir() + '/drivers/SConscript', variant_dir='build/bsp/drivers', duplicate=0)
- # build program
- env.Program(TARGET, objs)
-
- # end building
- EndBuilding(TARGET)
复制代码
代码段3:- # for module compiling
- import os
- Import('RTT_ROOT')
- cwd = str(Dir('#'))
- objs = []
- list = os.listdir(cwd)
- for d in list:
- path = os.path.join(cwd, d)
- if os.path.isfile(os.path.join(path, 'SConscript')):
- objs = objs + SConscript(os.path.join(d, 'SConscript'))
- Return('objs')
复制代码
代码段4:- Import('RTT_ROOT')
- Import('rtconfig')
- from building import *
- cwd = os.path.join(str(Dir('#')), 'applications')
- src = Glob('*.c')
- CPPPATH = [cwd, str(Dir('#'))]
- group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
- Return('group')
复制代码
代码段5:- Import('RTT_ROOT')
- Import('rtconfig')
- from building import *
- cwd = GetCurrentDir()
- # add for startup script
- src += ['DeviceSupport/startup_cm32gpm3.s']
- CPPPATH = [cwd + '/DeviceSupport/']
- if GetDepend(['RT_USING_BSP_CMSIS']):
- CPPPATH += [cwd + '/CoreSupport/']
- src += ['CoreSupport/core_cm3.c']
- elif GetDepend(['RT_USING_RTT_CMSIS']):
- CPPPATH += [RTT_ROOT + '/components/CMSIS/Include']
- group = DefineGroup('CMSIS', src, depend = [''], CPPPATH = CPPPATH)
- Return('group')
复制代码
代码段6:- Import('RTT_ROOT')
- Import('rtconfig')
- from building import *
- cwd = os.path.join(str(Dir('#')), 'drivers')
- # add the general drvers.
- src = Glob('*.c')
-
- CPPPATH = [cwd]
- group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
- Return('group')
复制代码
|
|