Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
f93a5e6a
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
1 年多 前同步成功
通知
0
Star
18
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Harfbuzz
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f93a5e6a
编写于
5月 24, 2019
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[win] Add mingw-ldd.py
Part of
https://github.com/harfbuzz/harfbuzz/issues/1728
上级
5fd3ece5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
58 addition
and
0 deletion
+58
-0
mingw-ldd.py
mingw-ldd.py
+58
-0
未找到文件。
mingw-ldd.py
0 → 100755
浏览文件 @
f93a5e6a
#!/usr/bin/env python
# Copied from https://github.com/xantares/mingw-ldd/blob/master/mingw-ldd.py
# Modified to point to right prefix location on Fedora.
# WTFPL - Do What the Fuck You Want to Public License
from
__future__
import
print_function
import
pefile
import
os
import
sys
def
get_dependency
(
filename
):
deps
=
[]
pe
=
pefile
.
PE
(
filename
)
for
imp
in
pe
.
DIRECTORY_ENTRY_IMPORT
:
deps
.
append
(
imp
.
dll
.
decode
())
return
deps
def
dep_tree
(
root
,
prefix
=
None
):
if
not
prefix
:
arch
=
get_arch
(
root
)
#print('Arch =', arch)
prefix
=
'/usr/'
+
arch
+
'-w64-mingw32/sys-root/mingw/bin'
#print('Using default prefix', prefix)
dep_dlls
=
dict
()
def
dep_tree_impl
(
root
,
prefix
):
for
dll
in
get_dependency
(
root
):
if
dll
in
dep_dlls
:
continue
full_path
=
os
.
path
.
join
(
prefix
,
dll
)
if
os
.
path
.
exists
(
full_path
):
dep_dlls
[
dll
]
=
full_path
dep_tree_impl
(
full_path
,
prefix
=
prefix
)
else
:
dep_dlls
[
dll
]
=
'not found'
dep_tree_impl
(
root
,
prefix
)
return
(
dep_dlls
)
def
get_arch
(
filename
):
type2arch
=
{
pefile
.
OPTIONAL_HEADER_MAGIC_PE
:
'i686'
,
pefile
.
OPTIONAL_HEADER_MAGIC_PE_PLUS
:
'x86_64'
}
pe
=
pefile
.
PE
(
filename
)
try
:
return
type2arch
[
pe
.
PE_TYPE
]
except
KeyError
:
sys
.
stderr
.
write
(
'Error: unknown architecture'
)
sys
.
exit
(
1
)
if
__name__
==
'__main__'
:
filename
=
sys
.
argv
[
1
]
for
dll
,
full_path
in
dep_tree
(
filename
).
items
():
print
(
' '
*
7
,
dll
,
'=>'
,
full_path
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录