資源簡介
環境是win10加VS2017下編譯pjproject2.7.1庫成功的工程。
代碼片段和文件信息
import?sys
import?os
REMOVE_THESE?=?[“-I/usr/include“?“-I/usr/include/“?“-L/usr/lib“?“-L/usr/lib/“]
class?Pkg:
def?__init__(self?pkg_name):
self.name?=?pkg_name
self.priority?=?0
self.vars?=?{}
def?parse(self?pkg_config_path):
f?=?None
for?pkg_path?in?pkg_config_path.split(‘:‘):
if?pkg_path[-1]?!=?‘/‘:
pkg_path?+=?‘/‘
fname?=?pkg_path?+?self.name?+?‘.pc‘
try:
f?=?open(fname?“r“)
break
except:
continue
if?not?f:
?? #sys.stderr.write(“pkgconfig.py:?unable?to?find?%s.pc?in?%s\n“?%?(self.name?pkg_config_path))
return?False
for?line?in?f.readlines():
line?=?line.strip()
if?not?line:
continue
if?line[0]==‘#‘:
continue
pos1?=?line.find(‘=‘)
pos2?=?line.find(‘:‘)
if?pos1?>?0?and?(pos1? pos?=?pos1
elif?pos2?>?0?and?(pos2? pos?=?pos2
else:
continue
name?=?line[:pos].lower()
value?=?line[pos+1:]
self.vars[name]?=?value
f.close()
for?name?in?self.vars.keys():
value?=?self.vars[name]
while?True:
pos1?=?value.find(“${“)
if?pos1?0:
break
pos2?=?value.find(“}“)
if?pos2?0:
break
value?=?value.replace(value[pos1:pos2+1]?self.vars[value[pos1+2:pos2]])
self.vars[name]?=?value
return?True
def?requires(self):
if?not?‘requires‘?in?self.vars:
return?[]
deps?=?[]
req_list?=?self.vars[‘requires‘]
for?req_item?in?req_list.split(‘‘):
req_item?=?req_item.strip()
for?i?in?range(len(req_item)):
if?“=<>“.find(req_item[i])?>=?0:
deps.append(req_item[:i].strip())
break
return?deps
def?libs(self):
if?not?‘libs‘?in?self.vars:
return?[]
return?self.vars[‘libs‘].split(‘?‘)
def?cflags(self):
if?not?‘cflags‘?in?self.vars:
return?[]
return?self.vars[‘cflags‘].split(‘?‘)
def?calculate_pkg_priority(pkg?pkg_dict?loop_cnt):
if?loop_cnt?>?10:
sys.stderr.write(“Circular?dependency?with?pkg?%s\n“?%?(pkg))
return?0
reqs?=?pkg.requires()
prio?=?1
for?req?in?reqs:
if?not?req?in?pkg_dict:
continue
req_pkg?=?pkg_dict[req]
prio?+=?calculate_pkg_priority(req_pkg?pkg_dict?loop_cnt+1)
return?prio
if?__name__?==?“__main__“:
pkg_names?=?[]
pkg_dict?=?{}
commands?=?[]
exist_check?=?False
for?i?in?range(1len(sys.argv)):
if?sys.argv[i][0]?==?‘-‘:
cmd?=?sys.argv[i]
commands.append(cmd)
if?cmd==‘--exists‘:
exist_check?=?True
elif?cmd==“--help“:
print?“This?is?not?very?helpful?is?it“
sys.exit(0)
elif?cmd==“--version“:
print?“0.1“
sys.exit(0)
else:
pkg_names.append(sys.argv[i])
#?Fix?search?path
PKG_CONFIG_PATH?=?os.getenv(“PKG_CONFIG_PATH“?““).strip()
if?not?PKG_CONFIG_PATH:
PKG_CONFIG_PATH=“/usr/local/lib/pkgconfig:/usr/lib/pkgconfig“
PKG_CONFIG_PATH?=?PKG_CONFIG_PATH.replace(“;“?“:“)
#?Parse?files
for?pkg_name?in?pkg_names:
pkg?=?Pkg(pkg_name)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-12-11?09:03??pjproject-2.7.1\
?????目錄???????????0??2017-12-11?08:42??pjproject-2.7.1\.vs\
?????目錄???????????0??2017-12-11?08:42??pjproject-2.7.1\.vs\pjproject-vs14\
?????目錄???????????0??2017-12-11?09:32??pjproject-2.7.1\.vs\pjproject-vs14\v15\
?????文件??????217088??2017-12-11?09:32??pjproject-2.7.1\.vs\pjproject-vs14\v15\.suo
?????文件???102973440??2017-12-11?09:32??pjproject-2.7.1\.vs\pjproject-vs14\v15\Browse.VC.db
?????文件?????3088384??2017-12-11?09:32??pjproject-2.7.1\.vs\pjproject-vs14\v15\Solution.VC.db
?????文件???????32768??2017-12-11?08:42??pjproject-2.7.1\.vs\pjproject-vs14\v15\Solution.VC.db-shm
?????文件?????4849272??2017-12-11?09:32??pjproject-2.7.1\.vs\pjproject-vs14\v15\Solution.VC.db-wal
?????文件???????18092??2014-01-17?11:03??pjproject-2.7.1\COPYING
?????文件????????1123??2007-02-19?08:51??pjproject-2.7.1\INSTALL.txt
?????文件????????4180??2014-07-14?15:21??pjproject-2.7.1\Makefile
?????文件????????2472??2006-05-27?21:11??pjproject-2.7.1\README-RTEMS
?????文件???????35740??2016-05-17?18:03??pjproject-2.7.1\README.txt
?????文件???????83906??2017-12-11?08:42??pjproject-2.7.1\UpgradeLog.htm
?????文件??????291562??2017-11-01?13:23??pjproject-2.7.1\aconfigure
?????文件???????64976??2017-11-01?13:23??pjproject-2.7.1\aconfigure.ac
?????文件????????1463??2013-04-23?13:39??pjproject-2.7.1\bb10-config.mak
?????目錄???????????0??2017-12-09?10:59??pjproject-2.7.1\build\
?????文件?????????443??2013-10-21?15:52??pjproject-2.7.1\build\cc-auto.mak.in
?????文件?????????524??2006-05-11?03:24??pjproject-2.7.1\build\cc-gcc.mak
?????文件?????????426??2005-11-21?09:55??pjproject-2.7.1\build\cc-vc.mak
?????文件????????1506??2010-05-17?21:07??pjproject-2.7.1\build\common.mak
?????文件?????????317??2005-11-21?09:55??pjproject-2.7.1\build\host-mingw.mak
?????文件?????????302??2010-08-05?15:04??pjproject-2.7.1\build\host-unix.mak
?????文件?????????353??2005-11-21?09:55??pjproject-2.7.1\build\host-win32.mak
?????文件?????????106??2005-11-21?09:55??pjproject-2.7.1\build\m-alpha.mak
?????文件?????????106??2006-07-14?23:20??pjproject-2.7.1\build\m-arm.mak
?????文件??????????36??2006-08-21?04:47??pjproject-2.7.1\build\m-auto.mak
?????文件?????????105??2005-11-21?09:55??pjproject-2.7.1\build\m-i386.mak
?????文件?????????105??2005-11-21?09:55??pjproject-2.7.1\build\m-m68k.mak
............此處省略4204個文件信息
- 上一篇:密碼學與網絡安全第3版.pdf
- 下一篇:3D魔方VOD修正版安裝包+注冊機
評論
共有 條評論