Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2345VOR
rt-thread
提交
6289a1aa
R
rt-thread
项目概览
2345VOR
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6289a1aa
编写于
3月 24, 2014
作者:
B
bernard
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add UA building script.
上级
04b5a461
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
93 addition
and
11 deletion
+93
-11
tools/building.py
tools/building.py
+27
-11
tools/ua.py
tools/ua.py
+66
-0
未找到文件。
tools/building.py
浏览文件 @
6289a1aa
...
...
@@ -145,7 +145,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
AddOption
(
'--target'
,
dest
=
'target'
,
type
=
'string'
,
help
=
'set target project: mdk/iar/vs'
)
help
=
'set target project: mdk/iar/vs
/ua
'
)
#{target_name:(CROSS_TOOL, PLATFORM)}
tgt_dict
=
{
'mdk'
:(
'keil'
,
'armcc'
),
...
...
@@ -153,7 +153,8 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
'iar'
:(
'iar'
,
'iar'
),
'vs'
:(
'msvc'
,
'cl'
),
'vs2012'
:(
'msvc'
,
'cl'
),
'cb'
:(
'keil'
,
'armcc'
)}
'cb'
:(
'keil'
,
'armcc'
),
'ua'
:(
'keil'
,
'armcc'
)}
tgt_name
=
GetOption
(
'target'
)
if
tgt_name
:
# --target will change the toolchain settings which clang-analyzer is
...
...
@@ -209,17 +210,25 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
return
objs
def
PrepareModuleBuilding
(
env
,
root_directory
):
import
SCons.cpp
import
rtconfig
global
BuildOptions
global
Projects
global
Env
global
Rtt_Root
Env
=
env
Rtt_Root
=
root_directory
# add build/clean library option for library checking
AddOption
(
'--buildlib'
,
dest
=
'buildlib'
,
type
=
'string'
,
help
=
'building library of a component'
)
AddOption
(
'--cleanlib'
,
dest
=
'cleanlib'
,
action
=
'store_true'
,
default
=
False
,
help
=
'clean up the library by --buildlib'
)
# add program path
env
.
PrependENVPath
(
'PATH'
,
rtconfig
.
EXEC_PATH
)
...
...
@@ -418,16 +427,13 @@ def DoBuilding(target, objects):
def
EndBuilding
(
target
,
program
=
None
):
import
rtconfig
from
keil
import
MDKProject
from
keil
import
MDK4Project
from
iar
import
IARProject
from
vs
import
VSProject
from
vs2012
import
VS2012Project
from
codeblocks
import
CBProject
Env
.
AddPostAction
(
target
,
rtconfig
.
POST_ACTION
)
if
GetOption
(
'target'
)
==
'mdk'
:
from
keil
import
MDKProject
from
keil
import
MDK4Project
template
=
os
.
path
.
isfile
(
'template.Uv2'
)
if
template
:
MDKProject
(
'project.Uv2'
,
Projects
)
...
...
@@ -439,20 +445,30 @@ def EndBuilding(target, program = None):
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'
)
==
'iar'
:
from
iar
import
IARProject
IARProject
(
'project.ewp'
,
Projects
)
if
GetOption
(
'target'
)
==
'vs'
:
from
vs
import
VSProject
VSProject
(
'project.vcproj'
,
Projects
,
program
)
if
GetOption
(
'target'
)
==
'vs2012'
:
from
vs2012
import
VS2012Project
VS2012Project
(
'project.vcxproj'
,
Projects
,
program
)
if
GetOption
(
'target'
)
==
'cb'
:
from
codeblocks
import
CBProject
CBProject
(
'project.cbp'
,
Projects
,
program
)
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
:
...
...
tools/ua.py
0 → 100644
浏览文件 @
6289a1aa
import
os
import
sys
from
utils
import
_make_path_relative
def
PrefixPath
(
prefix
,
path
):
path
=
os
.
path
.
abspath
(
path
)
prefix
=
os
.
path
.
abspath
(
prefix
)
if
sys
.
platform
==
'win32'
:
prefix
=
prefix
.
lower
()
path
=
path
.
lower
()
if
path
.
startswith
(
prefix
):
return
True
return
False
def
PrepareUA
(
project
,
RTT_ROOT
,
BSP_ROOT
):
with
open
(
'rtua.py'
,
'w'
)
as
ua
:
# ua.write('import os\n')
# ua.write('import sys\n')
ua
.
write
(
'
\n
'
)
print
RTT_ROOT
CPPPATH
=
[]
CPPDEFINES
=
[]
for
group
in
project
:
# get each include path
if
group
.
has_key
(
'CPPPATH'
)
and
group
[
'CPPPATH'
]:
CPPPATH
+=
group
[
'CPPPATH'
]
# get each group's definitions
if
group
.
has_key
(
'CPPDEFINES'
)
and
group
[
'CPPDEFINES'
]:
CPPDEFINES
+=
group
[
'CPPDEFINES'
]
if
len
(
CPPPATH
):
# remove repeat path
paths
=
[
i
for
i
in
set
(
CPPPATH
)]
CPPPATH
=
[]
for
path
in
paths
:
if
PrefixPath
(
RTT_ROOT
,
path
):
CPPPATH
+=
[
'RTT_ROOT + "/%s",'
%
_make_path_relative
(
RTT_ROOT
,
path
).
replace
(
'
\\
'
,
'/'
)]
elif
PrefixPath
(
BSP_ROOT
,
path
):
CPPPATH
+=
[
'BSP_ROOT + "/%s",'
%
_make_path_relative
(
RTT_ROOT
,
path
).
replace
(
'
\\
'
,
'/'
)]
else
:
CPPPATH
+=
[
'"%s",'
%
path
.
replace
(
'
\\
'
,
'/'
)]
CPPPATH
.
sort
()
ua
.
write
(
'def GetCPPPATH(BSP_ROOT, RTT_ROOT):
\n
'
)
ua
.
write
(
'
\t
CPPPATH=[
\n
'
)
for
path
in
CPPPATH
:
ua
.
write
(
'
\t\t
%s
\n
'
%
path
)
ua
.
write
(
'
\t
]
\n\n
'
)
ua
.
write
(
'
\t
return CPPPATH
\n\n
'
)
if
len
(
CPPDEFINES
):
CPPDEFINES
=
[
i
for
i
in
set
(
CPPDEFINES
)]
ua
.
write
(
'def GetCPPDEFINES():
\n
'
)
ua
.
write
(
'
\t
CPPDEFINES=%s
\n
'
%
str
(
CPPDEFINES
))
ua
.
write
(
'
\t
return CPPDEFINES
\n\n
'
)
print
CPPDEFINES
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录