summaryrefslogtreecommitdiff
path: root/xmake/core/project/project.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-02-10 00:38:19 +0800
committerruki <[email protected]>2022-02-10 00:38:19 +0800
commit039b8b2b3dd2594c2149da5c5ccb28747de782eb (patch)
tree40fad5e7e35ca9197a960e6beea91edb31212026 /xmake/core/project/project.lua
parent0f3c0abb00dddcb71a0aba5220ef0dd6ed260a24 (diff)
load toolchain from datafile
Diffstat (limited to 'xmake/core/project/project.lua')
-rw-r--r--xmake/core/project/project.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/xmake/core/project/project.lua b/xmake/core/project/project.lua
index cd5171599..c40cfbac0 100644
--- a/xmake/core/project/project.lua
+++ b/xmake/core/project/project.lua
@@ -628,6 +628,22 @@ function project._toolchains()
if not toolchains then
os.raise(errors)
end
+ -- load toolchains from data file from "package.tools.xmake" module
+ local toolchain_datafiles = os.getenv("XMAKE_TOOLCHAIN_DATAFILES")
+ if toolchain_datafiles then
+ toolchain_datafiles = path.splitenv(toolchain_datafiles)
+ if toolchain_datafiles and #toolchain_datafiles > 0 then
+ for _, toolchain_datafile in ipairs(toolchain_datafiles) do
+ local toolchain_inst, errors = toolchain.load_fromfile(toolchain_datafile)
+ if toolchain_inst then
+ -- @note we use this passed toolchain configuration first if this toolchain has been defined in current project
+ toolchains[toolchain_inst:name()] = toolchain_inst
+ else
+ os.raise(errors)
+ end
+ end
+ end
+ end
project._memcache():set("toolchains", toolchains)
end
return toolchains