function header_component(name, owner, opt) target(owner) add_deps(name, { public = opt and opt.public or true }) target_end() target(name) set_kind("headeronly") set_group("Engine/"..owner.."__comp") add_includedirs("include", {public = true}) end function static_component(name, owner, opt) target(owner) add_deps(name, { public = opt and opt.public or true }) target_end() target(name) set_kind("static") set_group("Engine/"..owner.."__comp") add_includedirs("include", {public = true}) end function shared_component(name, owner, opt) target(owner) add_deps(name, { public = opt and opt.public or true }) target_end() target(name) set_kind("shared") set_group("Engine/"..owner.."__comp") add_includedirs("include", {public = true}) end includes("**/xmake.lua")