diff --git a/engine/include/api.h b/engine/include/api.h index bf6548a..38ee5cd 100644 --- a/engine/include/api.h +++ b/engine/include/api.h @@ -1,5 +1,7 @@ #pragma once #include "zlib.h" +#include "core.h" ENGINE_API const char* engine(); ENGINE_API extern Module engine_module; -ENGINE_API extern Module engine_module_hello; \ No newline at end of file +ENGINE_API extern Module engine_module_hello; + diff --git a/engine/modules/asset/include/asset.h b/engine/modules/asset/include/asset.h index 1eaff15..6a4601e 100644 --- a/engine/modules/asset/include/asset.h +++ b/engine/modules/asset/include/asset.h @@ -2,4 +2,4 @@ #include "zlib.h" #include "core.h" const char* asset(); -inline Module asset_module{ asset(), false}; \ No newline at end of file +//inline Module asset_module{ asset(), false}; \ No newline at end of file diff --git a/engine/modules/core/include/core.h b/engine/modules/core/include/core.h index 1df9a48..2760e94 100644 --- a/engine/modules/core/include/core.h +++ b/engine/modules/core/include/core.h @@ -1,14 +1,14 @@ #pragma once #include "zlib.h" const char* core(); -inline Module core_module{ core(), false}; -struct ModuleManager; -struct ModuleManagerPtr { - ModuleManager* ptr; - ModuleManagerPtr(); -}; -CORE_API inline ModuleManagerPtr ms_instance; +inline Module core_module{ "ssss", false}; struct ModuleManager { ModuleManager(); static ModuleManager* Ptr(); -}; \ No newline at end of file +}; +struct ModuleManagerPtr { +public: + ModuleManager* ptr; + ModuleManagerPtr(); +}; +inline int s_ptr; \ No newline at end of file diff --git a/engine/modules/core/src/core.cpp b/engine/modules/core/src/core.cpp index 57bb94a..efebeab 100644 --- a/engine/modules/core/src/core.cpp +++ b/engine/modules/core/src/core.cpp @@ -11,8 +11,8 @@ ModuleManager::ModuleManager() ModuleManager* ModuleManager::Ptr() { - static ModuleManager module; - auto* ptr = &module; + static ModuleManager manager; + auto* ptr = &manager; return ptr; } diff --git a/engine/modules/zlib/include/zlib.h b/engine/modules/zlib/include/zlib.h index f38cb2f..f71d423 100644 --- a/engine/modules/zlib/include/zlib.h +++ b/engine/modules/zlib/include/zlib.h @@ -6,6 +6,9 @@ struct Detail { int count = 0; int new_count = 0; int del_count = 0; + Detail() { + std::cout << "Detail" << std::endl; + } }; struct Module; ZLIB_API inline Detail detail; diff --git a/engine/modules/zlib/include/zlog.h b/engine/modules/zlib/include/zlog.h index d1401b7..cf5e3f1 100644 --- a/engine/modules/zlib/include/zlog.h +++ b/engine/modules/zlib/include/zlog.h @@ -43,5 +43,7 @@ namespace zlog { const std::string format_str = fmt::format(std::forward(args)...); throw std::runtime_error(format_str); }; - void flush(); + inline void flush() { + zlog.flush(); + } }; \ No newline at end of file diff --git a/engine/modules/zlib/src/zlog.cpp b/engine/modules/zlib/src/zlog.cpp index 7eed7c0..d297c12 100644 --- a/engine/modules/zlib/src/zlog.cpp +++ b/engine/modules/zlib/src/zlog.cpp @@ -32,7 +32,4 @@ namespace zlog { m_logger->flush(); spdlog::drop_all(); } - void flush(){ - zlog.flush(); - } } diff --git a/engine/src/api.cpp b/engine/src/api.cpp index dffcc1b..a678974 100644 --- a/engine/src/api.cpp +++ b/engine/src/api.cpp @@ -1,7 +1,9 @@ #include "api.h" ENGINE_API Module engine_module{ engine(), true }; -ENGINE_API inline Module engine_module_hello{ "engine_module_hello", true }; +ENGINE_API Module engine_module_hello{ "engine_module_hello", true }; const char* engine() { return "engine"; } + + diff --git a/engine/xmake.lua b/engine/xmake.lua index 9250172..3b0351b 100644 --- a/engine/xmake.lua +++ b/engine/xmake.lua @@ -7,8 +7,8 @@ target("engine") add_includedirs("modules/asset/include", {public = true}) add_includedirs("modules/core/include", {public = true}) add_includedirs("modules/zlib/include", {public = true}) - add_deps("asset", "zlib", "core", { inherit = false}) - add_rules("engine.api", {inherit = false}) + add_deps("asset", "zlib", "core") + add_rules("engine.api") includes("xmake/xmake.lua") includes("modules/*/xmake.lua") \ No newline at end of file diff --git a/engine/xmake/rule_api/rule_api.lua b/engine/xmake/rule_api/rule_api.lua index b1f4c96..273ad58 100644 --- a/engine/xmake/rule_api/rule_api.lua +++ b/engine/xmake/rule_api/rule_api.lua @@ -36,26 +36,10 @@ function main(target) target:add("links", dep) local dir = deptarget:targetdir() if not linkdirs[dir] then - target:add("linkdirs", dir) + target:add("linkdirs", path.join(os.projectdir(),dir)) linkdirs[dir] = true end end end end - -- local real_deps = {} - -- local links = {} - -- for _,dep in ipairs(deps) do - -- local deptarget = project.target(dep) - -- if deptarget:kind() == "static" then - -- add_define(target, dep, is_static) - -- --add_packages(target, deptarget) - -- table.insert(links, dep) - -- elseif is_link then - -- table.insert(real_deps, dep) - -- end - -- end - -- if is_link then - -- --target:add("links", links) - -- --target:set("deps", real_deps) - -- end end \ No newline at end of file diff --git a/game/vulkan/include/vulkan.h b/game/vulkan/include/vulkan.h index 4d43d61..e51cd03 100644 --- a/game/vulkan/include/vulkan.h +++ b/game/vulkan/include/vulkan.h @@ -1,6 +1,5 @@ #pragma once #include "zlib.h" #include "core.h" -#include "api.h" VULKAN_API const char* vulkan(); -inline Module vulkan_module{vulkan(), true}; +VULKAN_API extern Module vulkan_module; diff --git a/game/vulkan/src/vulkan.cpp b/game/vulkan/src/vulkan.cpp index ec3c06b..ad170b0 100644 --- a/game/vulkan/src/vulkan.cpp +++ b/game/vulkan/src/vulkan.cpp @@ -2,7 +2,7 @@ const char* vulkan() { - auto c1 = engine_module_hello.name.c_str(); - auto c2 = zlib_module.name.c_str(); + return "vulkan"; } + diff --git a/game/zworld_editor/xmake.lua b/game/zworld_editor/xmake.lua index 31123e7..d164f42 100644 --- a/game/zworld_editor/xmake.lua +++ b/game/zworld_editor/xmake.lua @@ -2,6 +2,4 @@ target("zworld-editor") set_kind("binary") set_group("game") add_files("src/*.cpp") - add_headerfiles("include/*.h") - add_includedirs("include", {public = true}) add_deps("zworld", {public = true})