diff options
| author | ruki <[email protected]> | 2026-03-13 22:51:24 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-03-13 22:51:24 +0800 |
| commit | 17442f8fa917430ccc95fb4cb0993ba64a06beb7 (patch) | |
| tree | 0ad993cbdcf0dca9a9f256beb7868e3a41d83994 | |
| parent | 33c48ddc479f6332a4539144e9c1277801e99b85 (diff) | |
improve vcpkg utils
| -rw-r--r-- | xmake/modules/package/manager/vcpkg/find_package.lua | 13 | ||||
| -rw-r--r-- | xmake/modules/package/manager/vcpkg/utils.lua | 14 |
2 files changed, 15 insertions, 12 deletions
diff --git a/xmake/modules/package/manager/vcpkg/find_package.lua b/xmake/modules/package/manager/vcpkg/find_package.lua index 39254e6fa..7cc6af548 100644 --- a/xmake/modules/package/manager/vcpkg/find_package.lua +++ b/xmake/modules/package/manager/vcpkg/find_package.lua @@ -132,17 +132,6 @@ function _get_package_info(name, triplet, infodirs, arch, plat, mode) return result end --- check if all required features are installed --- @see https://github.com/xmake-io/xmake/issues/7388 -function _has_installed_features(vcpkg, name, triplet, required_features) - for _, feature in ipairs(required_features) do - if not vcpkg_utils.is_installed(vcpkg, name .. "[" .. feature .. "]", triplet) then - return false - end - end - return true -end - function _find_package(vcpkg, vcpkgdir, name, opt) -- get configs @@ -182,7 +171,7 @@ function _find_package(vcpkg, vcpkgdir, name, opt) -- check that required features are installed -- @see https://github.com/xmake-io/xmake/issues/7388 - if required_features and not _has_installed_features(vcpkg, name, triplet, required_features) then + if required_features and not vcpkg_utils.has_installed_features(vcpkg, name, triplet, required_features) then return end diff --git a/xmake/modules/package/manager/vcpkg/utils.lua b/xmake/modules/package/manager/vcpkg/utils.lua index b7dd7237b..da321cda0 100644 --- a/xmake/modules/package/manager/vcpkg/utils.lua +++ b/xmake/modules/package/manager/vcpkg/utils.lua @@ -39,3 +39,17 @@ function is_installed(vcpkg, name, triplet) end return false end + +-- check if all required features are installed +-- e.g. has_installed_features(vcpkg, "curl", "x64-windows-static-md", {"openssl", "mbedtls"}) +-- +-- @see https://github.com/xmake-io/xmake/issues/7388 +-- +function has_installed_features(vcpkg, name, triplet, required_features) + for _, feature in ipairs(required_features) do + if not is_installed(vcpkg, name .. "[" .. feature .. "]", triplet) then + return false + end + end + return true +end |
