跳转到内容

命名空间隔离

我们可以使用 namespace 来隔离不同子工程的 target、option 和 rule,避免命名冲突。

基础示例

EXPLORER
src
main.cpp
test.cpp
xmake.lua
src1
main.cpp
xmake.lua
src2
main.cpp
xmake.lua
xmake.lua
Lua xmake.lua
1234567891011121314
add_rules("mode.debug", "mode.release")

namespace("ns1", function ()
    includes("src1")
end)

namespace("ns2", function ()
    includes("src2")
end)

target("app")
    set_kind("binary")
    add_deps("ns1::lib", "ns2::lib")
    add_files("src/main.cpp")

编译运行

bash
$ xmake
$ xmake run