summaryrefslogtreecommitdiff
path: root/xmake/modules/package/manager/system/find_package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2019-01-24 21:00:03 +0800
committerruki <[email protected]>2019-01-24 00:00:22 +0800
commitdd9e1bb88ec464edd6fa76a4ee63ad7a3a334314 (patch)
treefe19e75cffe3d09f1bf33274412852aa8a84cd00 /xmake/modules/package/manager/system/find_package.lua
parentb56c72c24a91c98cc11b83564b37bcea0c93cb79 (diff)
improve find_package
Diffstat (limited to 'xmake/modules/package/manager/system/find_package.lua')
-rw-r--r--xmake/modules/package/manager/system/find_package.lua62
1 files changed, 35 insertions, 27 deletions
diff --git a/xmake/modules/package/manager/system/find_package.lua b/xmake/modules/package/manager/system/find_package.lua
index d03e2f4cb..480deae40 100644
--- a/xmake/modules/package/manager/system/find_package.lua
+++ b/xmake/modules/package/manager/system/find_package.lua
@@ -41,25 +41,29 @@ function main(name, opt)
-- add default search includedirs on pc host
local includedirs = table.wrap(opt.includedirs)
- if opt.plat == "linux" or opt.plat == "macosx" then
- table.insert(includedirs, "/usr/local/include")
- table.insert(includedirs, "/usr/include")
- table.insert(includedirs, "/opt/local/include")
- table.insert(includedirs, "/opt/include")
+ if #includedirs == 0 then
+ if opt.plat == "linux" or opt.plat == "macosx" then
+ table.insert(includedirs, "/usr/local/include")
+ table.insert(includedirs, "/usr/include")
+ table.insert(includedirs, "/opt/local/include")
+ table.insert(includedirs, "/opt/include")
+ end
end
-- add default search linkdirs on pc host
local linkdirs = table.wrap(opt.linkdirs)
- if opt.plat == "linux" or opt.plat == "macosx" then
- table.insert(linkdirs, "/usr/local/lib")
- table.insert(linkdirs, "/usr/lib")
- table.insert(linkdirs, "/opt/local/lib")
- table.insert(linkdirs, "/opt/lib")
- if opt.plat == "linux" and opt.arch == "x86_64" then
- table.insert(linkdirs, "/usr/local/lib/x86_64-linux-gnu")
- table.insert(linkdirs, "/usr/lib/x86_64-linux-gnu")
- table.insert(linkdirs, "/usr/lib64")
- table.insert(linkdirs, "/opt/lib64")
+ if #linkdirs == 0 then
+ if opt.plat == "linux" or opt.plat == "macosx" then
+ table.insert(linkdirs, "/usr/local/lib")
+ table.insert(linkdirs, "/usr/lib")
+ table.insert(linkdirs, "/opt/local/lib")
+ table.insert(linkdirs, "/opt/lib")
+ if opt.plat == "linux" and opt.arch == "x86_64" then
+ table.insert(linkdirs, "/usr/local/lib/x86_64-linux-gnu")
+ table.insert(linkdirs, "/usr/lib/x86_64-linux-gnu")
+ table.insert(linkdirs, "/usr/lib64")
+ table.insert(linkdirs, "/opt/lib64")
+ end
end
end
@@ -92,20 +96,24 @@ function main(name, opt)
end
-- find includes
- for _, include in ipairs(table.wrap(opt.includes)) do
- local includedir = find_path(include, includedirs)
- if includedir then
- result = result or {}
- result.includedirs = table.join(result.includedirs or {}, includedir)
+ if opt.includes then
+ for _, include in ipairs(opt.includes) do
+ local includedir = find_path(include, includedirs)
+ if includedir then
+ result = result or {}
+ result.includedirs = table.join(result.includedirs or {}, includedir)
+ end
end
- end
- for _, include in ipairs({name .. "/" .. name .. ".h", name .. ".h"}) do
- local includedir = find_path(include, includedirs)
- if includedir then
- result = result or {}
- result.includedirs = table.join(result.includedirs or {}, includedir)
- break
+ for _, include in ipairs({name .. "/" .. name .. ".h", name .. ".h"}) do
+ local includedir = find_path(include, includedirs)
+ if includedir then
+ result = result or {}
+ result.includedirs = table.join(result.includedirs or {}, includedir)
+ break
+ end
end
+ elseif result and result.links and opt.includedirs then
+ result.includedirs = opt.includedirs
end
-- not found? only add links