summaryrefslogtreecommitdiff
path: root/tests/apis/namespace/option/xmake.lua
blob: b39b764f1e13fc47e61c6a9bda4484b73113c9fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
add_rules("mode.debug", "mode.release")

option("opt0", {default = true, defines = "OPT0", description = "option0"})

namespace("ns1", function ()
    option("opt1", {default = true, defines = "NS1_OPT1", description = "option1"})

    target("foo")
        set_kind("static")
        add_files("src/foo.cpp")
        add_options("opt1")
        if has_config("opt1") then
            add_defines("HAS_NS1_OPT1")
        end

    namespace("ns2", function()
        option("opt2", {default = true, defines = "NS2_OPT2", description = "option2"})
        target("bar")
            set_kind("static")
            add_files("src/bar.cpp")
            add_options("opt2")
            if has_config("opt2") then
                add_defines("HAS_NS2_OPT2")
            end
    end)

    target("test")
        set_kind("binary")
        add_deps("foo", "ns2::bar")
        add_files("src/main.cpp")
        add_options("opt0", "opt1", "ns2::opt2")
        on_load(function (target)
            if has_config("opt0") then
                target:add("defines", "HAS_OPT0")
            end
            if has_config("opt1") then
                target:add("defines", "HAS_NS1_OPT1")
            end
            if has_config("ns2::opt2") then
                target:add("defines", "HAS_NS2_OPT2")
            end
        end)
end)