summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-06-16 23:03:07 +0800
committerruki <[email protected]>2022-06-16 23:03:07 +0800
commitcc1caaa566b08212d484eb2565e671c418789110 (patch)
treee14eb3c19ce428a626da1c7845e581b751c588fa
parentea89ffdb54ecc2bfb34f7a3162f216207ddf13ff (diff)
improve to find/install conan package
-rw-r--r--xmake/modules/package/manager/conan/find_package.lua4
-rw-r--r--xmake/modules/package/manager/conan/install_package.lua11
2 files changed, 12 insertions, 3 deletions
diff --git a/xmake/modules/package/manager/conan/find_package.lua b/xmake/modules/package/manager/conan/find_package.lua
index fca3d3891..b5daae4b7 100644
--- a/xmake/modules/package/manager/conan/find_package.lua
+++ b/xmake/modules/package/manager/conan/find_package.lua
@@ -100,6 +100,10 @@ function main(name, opt)
return
end
end
+ local require_version = opt.require_version
+ if require_version ~= nil and require_version ~= "latest" then
+ result.version = opt.require_version
+ end
return result
end
end
diff --git a/xmake/modules/package/manager/conan/install_package.lua b/xmake/modules/package/manager/conan/install_package.lua
index 47d1d25a4..98bc93d62 100644
--- a/xmake/modules/package/manager/conan/install_package.lua
+++ b/xmake/modules/package/manager/conan/install_package.lua
@@ -49,7 +49,7 @@ function _conan_get_build_directory(name)
end
-- generate conanfile.txt
-function _conan_generate_conanfile(name, configs)
+function _conan_generate_conanfile(name, configs, opt)
-- trace
dprint("generate %s ..", path.join(_conan_get_build_directory(name), "conanfile.txt"))
@@ -66,7 +66,12 @@ function _conan_generate_conanfile(name, configs)
conanfile:print("[generators]")
conanfile:print("xmake")
conanfile:print("[requires]")
- conanfile:print("%s", name)
+ local require_version = opt.require_version
+ if require_version ~= nil and require_version ~= "latest" then
+ conanfile:print("%s/%s", name, require_version)
+ else
+ conanfile:print("%s", name)
+ end
if #options > 0 then
conanfile:print("[options]")
conanfile:print("%s", table.concat(options, "\n"))
@@ -147,7 +152,7 @@ function main(name, opt)
_conan_install_xmake_generator(conan)
-- generate conanfile.txt
- _conan_generate_conanfile(name, configs)
+ _conan_generate_conanfile(name, configs, opt)
-- install package
local argv = {"install", "."}