summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-01-25 00:50:04 +0800
committerruki <[email protected]>2025-01-25 00:50:04 +0800
commitdb6074a3f94d5af4bd79ecfbf6d58f7ede2bf8c7 (patch)
treee77e9d2acf9cae45bdee0327a12d422faf117026
parent2d3944ab6162717fc252483351705230b5dd773e (diff)
update comments
-rw-r--r--tests/apis/custom_toolchain/xmake.lua2
-rw-r--r--xmake/core/platform/platform.lua8
-rw-r--r--xmake/core/project/project.lua38
-rw-r--r--xmake/core/tool/toolchain.lua9
4 files changed, 35 insertions, 22 deletions
diff --git a/tests/apis/custom_toolchain/xmake.lua b/tests/apis/custom_toolchain/xmake.lua
index acd68d4ad..dc15f1a05 100644
--- a/tests/apis/custom_toolchain/xmake.lua
+++ b/tests/apis/custom_toolchain/xmake.lua
@@ -1,7 +1,7 @@
-includes("toolchains/my-c6000")
add_rules("mode.debug", "mode.release")
set_toolchains("my-c6000")
+add_toolchaindirs("toolchains")
target("test")
set_kind("static")
diff --git a/xmake/core/platform/platform.lua b/xmake/core/platform/platform.lua
index a58d225e5..6778596d0 100644
--- a/xmake/core/platform/platform.lua
+++ b/xmake/core/platform/platform.lua
@@ -397,27 +397,19 @@ end
-- get platform directories
function platform.directories()
-
- -- init directories
local dirs = platform._DIRS or { path.join(global.directory(), "platforms")
, path.join(os.programdir(), "platforms")
}
-
- -- save directories to cache
platform._DIRS = dirs
return dirs
end
-- add platform directories
function platform.add_directories(...)
-
- -- add directories
local dirs = platform.directories()
for _, dir in ipairs({...}) do
table.insert(dirs, 1, dir)
end
-
- -- remove unique directories
platform._DIRS = table.unique(dirs)
end
diff --git a/xmake/core/project/project.lua b/xmake/core/project/project.lua
index 43271c7b0..7b42d47ea 100644
--- a/xmake/core/project/project.lua
+++ b/xmake/core/project/project.lua
@@ -202,6 +202,17 @@ function project._api_add_platformdirs(interp, ...)
end
end
+-- add toolchain directories
+function project._api_add_toolchaindirs(interp, ...)
+ local scriptdir = project.interpreter():scriptdir()
+ for _, dir in ipairs({...}) do
+ if not path.is_absolute(dir) then
+ dir = path.absolute(dir, scriptdir)
+ end
+ toolchain.add_directories(dir)
+ end
+end
+
-- load the project file
function project._load(force, disable_filter)
@@ -642,22 +653,23 @@ function project.apis()
, custom =
{
-- is_xxx
- {"is_os", project._api_is_os }
- , {"is_kind", project._api_is_kind }
- , {"is_arch", project._api_is_arch }
- , {"is_mode", project._api_is_mode }
- , {"is_plat", project._api_is_plat }
- , {"is_cross", project._api_is_cross }
- , {"is_config", project._api_is_config }
+ {"is_os", project._api_is_os }
+ , {"is_kind", project._api_is_kind }
+ , {"is_arch", project._api_is_arch }
+ , {"is_mode", project._api_is_mode }
+ , {"is_plat", project._api_is_plat }
+ , {"is_cross", project._api_is_cross }
+ , {"is_config", project._api_is_config }
-- get_xxx
- , {"get_config", project._api_get_config }
+ , {"get_config", project._api_get_config }
-- has_xxx
- , {"has_config", project._api_has_config }
- , {"has_package", project._api_has_package }
+ , {"has_config", project._api_has_config }
+ , {"has_package", project._api_has_package }
-- add_xxx
- , {"add_moduledirs", project._api_add_moduledirs }
- , {"add_plugindirs", project._api_add_plugindirs }
- , {"add_platformdirs", project._api_add_platformdirs }
+ , {"add_moduledirs", project._api_add_moduledirs }
+ , {"add_plugindirs", project._api_add_plugindirs }
+ , {"add_platformdirs", project._api_add_platformdirs }
+ , {"add_toolchaindirs", project._api_add_toolchaindirs }
}
}
end
diff --git a/xmake/core/tool/toolchain.lua b/xmake/core/tool/toolchain.lua
index a19413d34..1085df198 100644
--- a/xmake/core/tool/toolchain.lua
+++ b/xmake/core/tool/toolchain.lua
@@ -640,6 +640,15 @@ function toolchain.directories()
return dirs
end
+-- add toolchain directories
+function toolchain.add_directories(...)
+ local dirs = toolchain.directories()
+ for _, dir in ipairs({...}) do
+ table.insert(dirs, 1, dir)
+ end
+ toolchain._DIRS = table.unique(dirs)
+end
+
-- load toolchain
function toolchain.load(name, opt)