target("test") set_kind("binary") add_files("src/*.cpp") add_defines("TEST") after_load(function (target) import("core.project.project") local t = target:clone() t:name_set("test2") t:add("deps", "test") t:add("defines", "TEST2") t:set("link_before", function (target) print("link1", target:name()) assert(target:dep("test"):data("linked")) end) project.target_add(t) end) before_link(function (target) print("link2", target:name()) target:data_set("linked", true) end)