summaryrefslogtreecommitdiff
path: root/tools/building.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/building.py')
-rw-r--r--tools/building.py80
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'))