summaryrefslogtreecommitdiff
path: root/xmake/modules/package/manager/cargo/install_package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-04-02 13:54:13 +0800
committerruki <[email protected]>2022-04-02 13:54:13 +0800
commit080882ac77d8df3102014300be8544d46b1e0fc1 (patch)
treea256ca7a924672c91c3b1350a7dbd3e34d208751 /xmake/modules/package/manager/cargo/install_package.lua
parenta9f5e6556fc8ee8584aedb9d4b5b88ab475bef0e (diff)
improve cargo source dir
Diffstat (limited to 'xmake/modules/package/manager/cargo/install_package.lua')
-rw-r--r--xmake/modules/package/manager/cargo/install_package.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/xmake/modules/package/manager/cargo/install_package.lua b/xmake/modules/package/manager/cargo/install_package.lua
index 93ba2c59e..60c811291 100644
--- a/xmake/modules/package/manager/cargo/install_package.lua
+++ b/xmake/modules/package/manager/cargo/install_package.lua
@@ -52,8 +52,12 @@ function main(name, opt)
require_version = "*"
end
- -- build dependencies
- local sourcedir = path.join(opt.cachedir, "source")
+ -- @note we cannot use local cachedir as sourcedir, because it maybe will conflict with the parent root Cargo.toml
+ -- @see https://github.com/rust-lang/cargo/issues/10534
+ -- local sourcedir = path.join(opt.cachedir, "source")
+ local sourcedir = path.join(os.tmpfile({ramdisk = true}) .. ".dir", "cargo", "source")
+
+ -- generate Cargo.toml
local cargotoml = path.join(sourcedir, "Cargo.toml")
os.tryrm(sourcedir)
if configs.cargo_toml then