summaryrefslogtreecommitdiff
path: root/xmake/modules/lib/detect/pkg_config.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-09-19 00:29:17 +0800
committerruki <[email protected]>2020-09-19 00:29:17 +0800
commitefaa9772486494e755f962accb9e4d828812b0c2 (patch)
tree643df490ffafc4f1c403155989352885e41da320 /xmake/modules/lib/detect/pkg_config.lua
parent8f602006896e397994d930f364f03d6e3d611a89 (diff)
improve pkgconfig
Diffstat (limited to 'xmake/modules/lib/detect/pkg_config.lua')
-rw-r--r--xmake/modules/lib/detect/pkg_config.lua41
1 files changed, 18 insertions, 23 deletions
diff --git a/xmake/modules/lib/detect/pkg_config.lua b/xmake/modules/lib/detect/pkg_config.lua
index 4935f0c1e..059c25570 100644
--- a/xmake/modules/lib/detect/pkg_config.lua
+++ b/xmake/modules/lib/detect/pkg_config.lua
@@ -147,30 +147,27 @@ function libinfo(name, opt)
-- init result
result = {}
- for _, flag in ipairs(flags:split('%s')) do
-
- -- get links
- local link = flag:match("%-l(.*)")
- if link and not link:find(path.sep(), 1, true) then
+ for _, flag in ipairs(os.argv(flags)) do
+ if flag:startswith("-L") and #flag > 2 then
+ -- get linkdirs
+ local linkdir = flag:sub(3)
+ if linkdir and os.isdir(linkdir) then
+ result.linkdirs = result.linkdirs or {}
+ table.insert(result.linkdirs, linkdir)
+ end
+ elseif flag:startswith("-I") and #flag > 2 then
+ -- get includedirs
+ local includedir = flag:sub(3)
+ if includedir and os.isdir(includedir) then
+ result.includedirs = result.includedirs or {}
+ table.insert(result.includedirs, includedir)
+ end
+ elseif flag:startswith("-l") and #flag > 2 then
+ -- get links
+ local link = flag:sub(3)
result.links = result.links or {}
table.insert(result.links, link)
end
-
- -- get linkdirs
- local linkdirs = nil
- local linkdir = flag:match("%-L(.*)")
- if linkdir and os.isdir(linkdir) then
- result.linkdirs = result.linkdirs or {}
- table.insert(result.linkdirs, linkdir)
- end
-
- -- get includedirs
- local includedirs = nil
- local includedir = flag:match("%-I(.*)")
- if includedir and os.isdir(includedir) then
- result.includedirs = result.includedirs or {}
- table.insert(result.includedirs, includedir)
- end
end
end
@@ -185,8 +182,6 @@ function libinfo(name, opt)
if configdirs_old then
os.setenv("PKG_CONFIG_PATH", configdirs_old)
end
-
- -- ok?
return result
end