Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sxychenjing
engine
提交
8ed02f83
E
engine
项目概览
sxychenjing
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8ed02f83
编写于
10月 26, 2016
作者:
C
Chinmay Garde
提交者:
GitHub
10月 26, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create compile_commands.json on each GN invocation and add a YCM conf. (#3175)
上级
7e5d6351
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
81 addition
and
2 deletion
+81
-2
.ycm_extra_conf.py
.ycm_extra_conf.py
+60
-0
tools/gn
tools/gn
+21
-2
未找到文件。
.ycm_extra_conf.py
0 → 100644
浏览文件 @
8ed02f83
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import
os
import
ycm_core
compile_commands_dir
=
os
.
path
.
normpath
(
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
+
'/../out'
)
if
os
.
path
.
exists
(
compile_commands_dir
):
compilation_db
=
ycm_core
.
CompilationDatabase
(
compile_commands_dir
)
else
:
compilation_db
=
None
path_flags
=
[
'--sysroot='
,
'-I'
,
'-iquote'
,
'-isystem'
,
]
def
MakeFlagAbsolute
(
working_dir
,
flag
):
# Check if its a flag that contains a path. (an ite, in the path_flags)
for
path_flag
in
path_flags
:
if
flag
.
startswith
(
path_flag
):
path_component
=
flag
[
len
(
path_flag
):]
return
path_flag
+
os
.
path
.
join
(
working_dir
,
path_component
)
# Check if its a regular flag that does not contain a path. (defines, warnings, etc..)
if
flag
.
startswith
(
'-'
):
return
flag
# The file path is directly specified. (compiler, input, output, etc..)
return
os
.
path
.
join
(
working_dir
,
flag
)
def
MakeFlagsAbsolute
(
working_dir
,
flags
):
if
not
working_dir
:
return
list
(
flags
)
updated_flags
=
[]
for
flag
in
flags
:
updated_flags
.
append
(
MakeFlagAbsolute
(
working_dir
,
flag
))
return
updated_flags
empty_flags
=
{
'flags'
:
''
}
def
FlagsForFile
(
filename
,
**
kwargs
):
if
not
compilation_db
:
return
empty_flags
info
=
compilation_db
.
GetCompilationInfoForFile
(
filename
)
if
not
info
:
return
empty_flags
return
{
'flags'
:
MakeFlagsAbsolute
(
info
.
compiler_working_dir_
,
info
.
compiler_flags_
)
}
tools/gn
浏览文件 @
8ed02f83
...
...
@@ -163,8 +163,27 @@ def main(argv):
print
"gn gen --check in %s"
%
out_dir
command
.
append
(
out_dir
)
command
.
append
(
'--args=%s'
%
' '
.
join
(
gn_args
))
return
subprocess
.
call
(
command
,
cwd
=
SRC_ROOT
)
gn_call_result
=
subprocess
.
call
(
command
,
cwd
=
SRC_ROOT
)
if
gn_call_result
==
0
:
# Generate/Replace the compile commands database in out.
compile_cmd_gen_cmd
=
[
'%s/buildtools/%s/ninja'
%
(
SRC_ROOT
,
subdir
),
'-C'
,
out_dir
,
'-t'
,
'compdb'
,
'cxx'
,
'cc'
,
'mm'
,
]
contents
=
subprocess
.
check_output
(
compile_cmd_gen_cmd
,
cwd
=
SRC_ROOT
)
compile_commands
=
open
(
'%s/out/compile_commands.json'
%
SRC_ROOT
,
'w+'
)
compile_commands
.
write
(
contents
)
compile_commands
.
close
()
return
gn_call_result
if
__name__
==
'__main__'
:
sys
.
exit
(
main
(
sys
.
argv
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录