summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-09-18 09:28:09 +0800
committerGitHub <[email protected]>2020-09-18 09:28:09 +0800
commit97fdf4e120b14782e0f99d3e49634fc2432e039d (patch)
tree7a5daf806c069531531dc1a179e3eb319c6afcd7
parentb9122293418bd2eb5a1b3221a728b17df43c96a4 (diff)
parent1b11965798c552d338e708595ebc6e944711cd40 (diff)
Merge pull request #954 from paul-reilly/confirm-package
make find_package success log more explicit
-rw-r--r--xmake/modules/lib/detect/find_package.lua12
-rw-r--r--xmake/modules/package/manager/find_package.lua18
2 files changed, 21 insertions, 9 deletions
diff --git a/xmake/modules/lib/detect/find_package.lua b/xmake/modules/lib/detect/find_package.lua
index 784920a2d..0aa0f17e1 100644
--- a/xmake/modules/lib/detect/find_package.lua
+++ b/xmake/modules/lib/detect/find_package.lua
@@ -74,7 +74,8 @@ function main(name, opt)
end
-- find package
- result = find_package(name, opt)
+ local found_manager_name, package_name
+ result, found_manager_name, package_name = find_package(name, opt)
-- cache result
cacheinfo[name] = result and result or false
@@ -83,9 +84,14 @@ function main(name, opt)
-- trace
if opt.verbose or option.get("verbose") then
if result then
- cprint("checking for the %s ... ${color.success}%s", name, result.version and result.version or "${text.success}")
+
+ -- only display manager of found package if the package we searched for
+ -- did not specify a package manager
+ local display_manager = name:find("::", 1, true) and "" or (found_manager_name or "") .. "::"
+ local display_name = display_manager .. package_name
+ cprint("checking for %s ... ${color.success}%s %s", name, display_name, result.version and result.version or "")
else
- cprint("checking for the %s ... ${color.nothing}${text.nothing}", name)
+ cprint("checking for %s ... ${color.nothing}${text.nothing}", name)
end
end
diff --git a/xmake/modules/package/manager/find_package.lua b/xmake/modules/package/manager/find_package.lua
index eed29f420..93f7c8447 100644
--- a/xmake/modules/package/manager/find_package.lua
+++ b/xmake/modules/package/manager/find_package.lua
@@ -65,14 +65,16 @@ function _find_package_with_builtin_rule(package_name, opt)
-- find package from the given package manager
local result = nil
+ local found_manager_name = nil
for _, manager_name in ipairs(managers) do
dprint("finding %s from %s ..", package_name, manager_name)
result = import("package.manager." .. manager_name .. ".find_package", {anonymous = true})(package_name, opt)
if result then
+ found_manager_name = manager_name
break
end
end
- return result
+ return result, found_manager_name
end
-- find package
@@ -106,7 +108,7 @@ function _find_package(manager_name, package_name, opt)
-- find package with the builtin rule
if not result and not builtin then
- result = _find_package_with_builtin_rule(package_name, opt)
+ result, manager_name = _find_package_with_builtin_rule(package_name, opt)
end
end
@@ -119,7 +121,7 @@ function _find_package(manager_name, package_name, opt)
end
-- ok?
- return result
+ return result, manager_name
end
-- find package using the package manager
@@ -131,7 +133,8 @@ end
-- linkdirs = {"/usr/lib"}, includedirs = "/usr/include", links = {"ssl"}, includes = {"ssl.h"}
-- packagedirs = {"/tmp/packages"}, system = true}
--
--- @return {links = {"ssl", "crypto", "z"}, linkdirs = {"/usr/local/lib"}, includedirs = {"/usr/local/include"}}
+-- @return {links = {"ssl", "crypto", "z"}, linkdirs = {"/usr/local/lib"}, includedirs = {"/usr/local/include"}},
+-- manager_name, package_name
--
-- @code
--
@@ -140,9 +143,11 @@ end
-- local package = find_package("openssl", {plat = "iphoneos"})
-- local package = find_package("openssl", {linkdirs = {"/usr/lib", "/usr/local/lib"}, includedirs = "/usr/local/include", version = "1.0.1"})
-- local package = find_package("openssl", {linkdirs = {"/usr/lib", "/usr/local/lib", links = {"ssl", "crypto"}, includes = {"ssl.h"}})
+-- local package, manager_name, package_name = find_package("openssl")
--
-- @endcode
--
+
function main(name, opt)
-- get the copied options
@@ -166,7 +171,8 @@ function main(name, opt)
opt.version = require_version or opt.version
-- find package
- result = _find_package(manager_name, package_name, opt)
+ local found_manager_name = nil
+ result, found_manager_name = _find_package(manager_name, package_name, opt)
-- match version?
if opt.version and opt.version:find('.', 1, true) and result then
@@ -176,5 +182,5 @@ function main(name, opt)
end
-- ok?
- return result
+ return result, found_manager_name, package_name
end