diff options
Diffstat (limited to 'tools/building.py')
| -rw-r--r-- | tools/building.py | 80 |
1 files changed, 45 insertions, 35 deletions
diff --git a/tools/building.py b/tools/building.py index 0bdaa8696b..f12452ed7d 100644 --- a/tools/building.py +++ b/tools/building.py @@ -67,7 +67,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [ rtconfig.EXEC_PATH = rtconfig.EXEC_PATH.replace('bin40', 'armcc/bin') Env['LINKFLAGS']=Env['LINKFLAGS'].replace('RV31', 'armcc') - # reset AR command flags + # reset AR command flags env['ARCOM'] = '$AR --create $TARGET $SOURCES' env['LIBPREFIX'] = '' env['LIBSUFFIX'] = '.lib' @@ -102,7 +102,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [ PreProcessor.process_contents(contents) BuildOptions = PreProcessor.cpp_namespace - # add copy option + # add copy option AddOption('--copy', dest='copy', action='store_true', @@ -148,12 +148,12 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [ rtconfig.POST_ACTION = '' # add build library option - AddOption('--buildlib', - dest='buildlib', + AddOption('--buildlib', + dest='buildlib', type='string', help='building library of a component') - AddOption('--cleanlib', - dest='cleanlib', + AddOption('--cleanlib', + dest='cleanlib', action='store_true', default=False, help='clean up the library by --buildlib') @@ -167,6 +167,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [ #{target_name:(CROSS_TOOL, PLATFORM)} tgt_dict = {'mdk':('keil', 'armcc'), 'mdk4':('keil', 'armcc'), + 'mdk5':('keil', 'armcc'), 'iar':('iar', 'iar'), 'vs':('msvc', 'cl'), 'vs2012':('msvc', 'cl'), @@ -240,13 +241,13 @@ def PrepareModuleBuilding(env, root_directory): Env = env Rtt_Root = root_directory - # add build/clean library option for library checking - AddOption('--buildlib', - dest='buildlib', + # add build/clean library option for library checking + AddOption('--buildlib', + dest='buildlib', type='string', help='building library of a component') - AddOption('--cleanlib', - dest='cleanlib', + AddOption('--cleanlib', + dest='cleanlib', action='store_true', default=False, help='clean up the library by --buildlib') @@ -268,7 +269,7 @@ def GetDepend(depend): building = False elif BuildOptions[depend] != '': return BuildOptions[depend] - + return building # for list type depend @@ -345,7 +346,7 @@ def DefineGroup(name, src, depend, **parameters): if group.has_key('LINKFLAGS'): Env.Append(LINKFLAGS = group['LINKFLAGS']) - # check whether to clean up library + # check whether to clean up library if GetOption('cleanlib') and os.path.exists(os.path.join(group['path'], GroupLibFullName(name, Env))): if group['src'] != []: print 'Remove library:', GroupLibFullName(name, Env) @@ -369,14 +370,14 @@ def DefineGroup(name, src, depend, **parameters): else: objs = group['src'] - # merge group + # merge group for g in Projects: if g['name'] == name: # merge to this group MergeGroup(g, group) return objs - # add a new group + # add a new group Projects.append(group) return objs @@ -450,6 +451,7 @@ def EndBuilding(target, program = None): if GetOption('target') == 'mdk': from keil import MDKProject from keil import MDK4Project + from keil import MDK5Project template = os.path.isfile('template.Uv2') if template: @@ -459,16 +461,24 @@ def EndBuilding(target, program = None): if template: MDK4Project('project.uvproj', Projects) else: - print 'No template project file found.' + template = os.path.isfile('template.uvprojx') + if template: + MDK5Project('project.uvprojx', Projects) + else: + print 'No template project file found.' + if GetOption('target') == 'mdk4': - from keil import MDKProject from keil import MDK4Project MDK4Project('project.uvproj', Projects) + if GetOption('target') == 'mdk5': + from keil import MDK5Project + MDK5Project('project.uvprojx', Projects) + if GetOption('target') == 'iar': from iar import IARProject - IARProject('project.ewp', Projects) + IARProject('project.ewp', Projects) if GetOption('target') == 'vs': from vs import VSProject @@ -485,7 +495,7 @@ def EndBuilding(target, program = None): if GetOption('target') == 'ua': from ua import PrepareUA PrepareUA(Projects, Rtt_Root, str(Dir('#'))) - + if GetOption('copy') and program != None: MakeCopy(program) if GetOption('copy-header') and program != None: @@ -515,7 +525,7 @@ def GetVersion(): rtdef = os.path.join(Rtt_Root, 'include', 'rtdef.h') - # parse rtdef.h to get RT-Thread version + # parse rtdef.h to get RT-Thread version prepcessor = SCons.cpp.PreProcessor() f = file(rtdef, 'r') contents = f.read() @@ -561,9 +571,9 @@ def do_rm_file(src): def do_copy_file(src, dst): import shutil - # check source file + # check source file if not os.path.exists(src): - return + return path = os.path.dirname(dst) # mkdir if path not exist @@ -574,13 +584,13 @@ def do_copy_file(src, dst): def do_copy_folder(src_dir, dst_dir): import shutil - # check source directory + # check source directory if not os.path.exists(src_dir): return - + if os.path.exists(dst_dir): shutil.rmtree(dst_dir) - + shutil.copytree(src_dir, dst_dir) source_ext = ["c", "h", "s", "S", "cpp", "xpm"] @@ -607,22 +617,22 @@ def MakeCopy(program): global source_list global Rtt_Root global Env - + target_path = os.path.join(Dir('#').abspath, 'rt-thread') - + if Env['PLATFORM'] == 'win32': RTT_ROOT = Rtt_Root.lower() else: RTT_ROOT = Rtt_Root - + if target_path.startswith(RTT_ROOT): return for item in program: walk_children(item) - + source_list.sort() - + # filte source file in RT-Thread target_list = [] for src in source_list: @@ -633,7 +643,7 @@ def MakeCopy(program): target_list.append(src) source_list = target_list - # get source path + # get source path src_dir = [] for src in source_list: src = src.replace(RTT_ROOT, '') @@ -645,10 +655,10 @@ def MakeCopy(program): full_path = RTT_ROOT for item in sub_path: full_path = os.path.join(full_path, item) - if full_path not in src_dir: + if full_path not in src_dir: src_dir.append(full_path) - for item in src_dir: + for item in src_dir: source_list.append(os.path.join(item, 'SConscript')) for src in source_list: @@ -659,7 +669,7 @@ def MakeCopy(program): dst = os.path.join(target_path, dst) do_copy_file(src, dst) - # copy tools directory + # copy tools directory print "=> tools" do_copy_folder(os.path.join(RTT_ROOT, "tools"), os.path.join(target_path, "tools")) do_copy_file(os.path.join(RTT_ROOT, 'AUTHORS'), os.path.join(target_path, 'AUTHORS')) @@ -707,7 +717,7 @@ def MakeCopyHeader(program): dst = os.path.join(target_path, dst) do_copy_file(src, dst) - # copy tools directory + # copy tools directory print "=> tools" do_copy_folder(os.path.join(RTT_ROOT, "tools"), os.path.join(target_path, "tools")) do_copy_file(os.path.join(RTT_ROOT, 'AUTHORS'), os.path.join(target_path, 'AUTHORS')) |
