summaryrefslogtreecommitdiff
path: root/xmake/core/package/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2025-01-11 00:02:46 +0800
committerGitHub <[email protected]>2025-01-11 00:02:46 +0800
commitebc885cb9b011a8fcf18a78161b32e3dfecce3cd (patch)
tree3752b67f3f82a864760c45afa7b31f4394fce675 /xmake/core/package/package.lua
parente470863c24280ad3566d35b16ad184d3781510af (diff)
parentaca01466c20ab4ab339df31ba507c241606bab25 (diff)
Merge pull request #6055 from xmake-io/pkgconfig
check pkgconfig/cmake importfiles for package
Diffstat (limited to 'xmake/core/package/package.lua')
-rw-r--r--xmake/core/package/package.lua24
1 files changed, 24 insertions, 0 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 741ca318c..ea33e24fa 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -2712,6 +2712,30 @@ function _instance:check_fcsnippets(snippets, opt)
return sandbox_module.import("lib.detect.check_fcsnippets", {anonymous = true})(snippets, opt)
end
+-- check the given importfiles?
+--
+-- @param names the import filenames (without .pc/.cmake extension), e.g. pkgconfig::libxml-2.0, cmake::CURL
+-- @param opt the argument options
+--
+-- @return true or false, errors
+--
+function _instance:check_importfiles(names, opt)
+ opt = opt or {}
+ if opt.PKG_CONFIG_PATH == nil then
+ local PKG_CONFIG_PATH = {}
+ local linkdirs = table.wrap(self:get("linkdirs") or "lib")
+ local installdir = self:installdir()
+ for _, linkdir in ipairs(linkdirs) do
+ table.insert(PKG_CONFIG_PATH, path.join(installdir, linkdir, "pkgconfig"))
+ end
+ opt.PKG_CONFIG_PATH = PKG_CONFIG_PATH
+ end
+ if opt.CMAKE_PREFIX_PATH == nil then
+ opt.CMAKE_PREFIX_PATH = self:installdir()
+ end
+ return sandbox_module.import("lib.detect.check_importfiles", {anonymous = true})(names or ("pkgconfig::" .. self:name()), opt)
+end
+
-- the current mode is belong to the given modes?
function package._api_is_mode(interp, ...)
return config.is_mode(...)