自定义工具链
我们可以使用 toolchain() 定义自定义工具链,以支持特殊的编译器或交叉编译环境。
关于自定义工具链的更多详情,请参考:自定义工具链 API。
基础示例
xmake.lua
编译运行
bash
$ xmake
$ xmake run未知工具链
如果我们需要支持一个完全未知的编译器工具链,我们需要实现工具链的探测脚本,以及编译、链接、归档等所有工具集的脚本配置。
xmake.lua
我们可以使用 toolchain() 定义自定义工具链,以支持特殊的编译器或交叉编译环境。
关于自定义工具链的更多详情,请参考:自定义工具链 API。
add_rules("mode.debug", "mode.release")
toolchain("myclang")
set_kind("standalone")
set_toolset("cc", "clang")
set_toolset("cxx", "clang++")
set_toolset("ld", "clang++")
on_check(function (toolchain)
return import("lib.detect.find_tool")("clang")
end)
on_load(function (toolchain)
toolchain:add("cxflags", "-DTEST_MACRO")
end)
toolchain_end()
target("test")
set_kind("binary")
add_files("src/main.cpp")
set_toolchains("myclang")
$ xmake
$ xmake run如果我们需要支持一个完全未知的编译器工具链,我们需要实现工具链的探测脚本,以及编译、链接、归档等所有工具集的脚本配置。
add_rules("mode.debug", "mode.release")
add_moduledirs("xmake/modules")
add_toolchaindirs("xmake/toolchains")
set_toolchains("my-c6000")
target("test")
set_kind("static")
add_files("src/foo.cpp")
target("demo")
set_kind("binary")
add_deps("test")
add_files("src/test.cpp")