diff --git a/tests/xmake.lua b/tests/xmake.lua index bbf6b9847..3a5e4ee36 100644 --- a/tests/xmake.lua +++ b/tests/xmake.lua @@ -23,10 +23,11 @@ if has_config("tests") then add_rules("c++.unity_build") end - target("NazaraUnitTests") + target("NazaraUnitTests", function () add_files("main.cpp", {unity_ignored = true}) if has_config("usepch") then set_pcxxheader("Engine/Modules.hpp") end + end) end diff --git a/tools/shadernodes.lua b/tools/shadernodes.lua index d9f229b61..8f00b08d5 100644 --- a/tools/shadernodes.lua +++ b/tools/shadernodes.lua @@ -3,7 +3,7 @@ option("shadernodes", { description = "Build ShaderNodes tool (requires Qt)", de if has_config("shadernodes") then add_requires("nodeeditor", "qt5core", "qt5gui", "qt5widgets", {debug = is_mode("debug")}) - rule("qt5.env") + rule("qt5.env", function () after_load(function (target) -- retrieve qtbase local qtdir @@ -21,9 +21,9 @@ if has_config("shadernodes") then target:data_set("qt", qtdir) end) + end) - - rule("qt5.moc") + rule("qt5.moc", function () add_deps("qt5.env") set_extensions(".h", ".hpp") before_buildcmd_file(function (target, batchcmds, sourcefile, opt) @@ -92,8 +92,9 @@ if has_config("shadernodes") then batchcmds:set_depmtime(os.mtime(objectfile)) batchcmds:set_depcache(target:dependfile(objectfile)) end) + end) - target("NazaraShaderNodes") + target("NazaraShaderNodes", function () set_group("Tools") set_kind("binary") add_rules("qt5.moc") @@ -114,5 +115,5 @@ if has_config("shadernodes") then add_headerfiles("../src/ShaderNode/**.hpp", "../src/ShaderNode/**.inl", { prefixdir = "private", install = false }) add_files("../src/ShaderNode/**.cpp") add_files("../src/ShaderNode/Previews/PreviewValues.cpp", { unity_ignored = true }) -- fixes an issue with MSVC and operator* - + end) end diff --git a/xmake.lua b/xmake.lua index 412f6ec1d..447e2ad12 100644 --- a/xmake.lua +++ b/xmake.lua @@ -112,11 +112,6 @@ local modules = { for name, module in pairs(rendererBackends) do ModuleTargetConfig(name, module) end - else - -- Register backends as separate modules - for name, module in pairs(rendererBackends) do - ModuleTarget(name, module) - end end end }, @@ -129,6 +124,18 @@ local modules = { Packages = {"entt", "kiwisolver"} } } + +if not has_config("embed_rendererbackends") then + -- Register backends as separate modules + for name, module in pairs(rendererBackends) do + if (modules[name] ~= nil) then + os.raise("overriding module " .. name) + end + + modules[name] = module + end +end + NazaraModules = modules includes("xmake/**.lua") @@ -141,7 +148,7 @@ option("usepch", { description = "Use precompiled headers to speedup compilation option("unitybuild", { description = "Build the engine using unity build", default = false }) set_project("NazaraEngine") -set_xmakever("2.6.3") +set_xmakever("2.7.3") add_requires("chipmunk2d", "dr_wav", "efsw", "entt 3.10.1", "fmt", "frozen", "kiwisolver", "libflac", "libsdl", "minimp3", "ordered_map", "stb") add_requires("freetype", { configs = { bzip2 = true, png = true, woff2 = true, zlib = true, debug = is_mode("debug") } }) @@ -287,8 +294,8 @@ function ModuleTargetConfig(name, module) end end -function ModuleTarget(name, module) - target("Nazara" .. name) +for name, module in pairs(modules) do + target("Nazara" .. name, function () set_kind("shared") set_group("Modules") @@ -323,10 +330,7 @@ function ModuleTarget(name, module) add_includedirs("src") ModuleTargetConfig(name, module) -end - -for name, module in pairs(modules) do - ModuleTarget(name, module) + end) end includes("tools/*.lua")