diff options
| author | ruki <[email protected]> | 2023-08-02 22:39:14 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-08-02 22:39:14 +0800 |
| commit | a27745121cc4ce14d3c4523086a0cb5a4f1a86a8 (patch) | |
| tree | 344666fb35f6aaac698860795919dd82b5cc1fa6 | |
| parent | d16429096b505a26688970ddeeadaf0bf5309a9c (diff) | |
fix vcpkg find_package with version
| -rw-r--r-- | xmake/modules/package/manager/vcpkg/find_package.lua | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/xmake/modules/package/manager/vcpkg/find_package.lua b/xmake/modules/package/manager/vcpkg/find_package.lua index c3e18f0c4..1855da2f2 100644 --- a/xmake/modules/package/manager/vcpkg/find_package.lua +++ b/xmake/modules/package/manager/vcpkg/find_package.lua @@ -154,9 +154,12 @@ function _find_package(vcpkgdir, name, opt) -- save version if result then local infoname = path.basename(infofile) - result.version = infoname:match(name .. "_(%d+%.?%d*%.?%d*.-)_" .. arch) + local prefix = name + -- name maybe contains lua pattern characters, we need escape it. e.g. `-` + prefix = prefix:gsub("([%+%.%-%^%$%(%)%%])", "%%%1") + result.version = infoname:match(prefix .. "_(%d+%.?%d*%.?%d*.-)_" .. arch) if not result.version then - result.version = infoname:match(name .. "_(%d+%.?%d*%.-)_" .. arch) + result.version = infoname:match(prefix .. "_(%d+%.?%d*%.-)_" .. arch) end end |
