From 3b625a7caa573f433fc7c5166c3ad891bfd37ae1 Mon Sep 17 00:00:00 2001 From: Dexrn ZacAttack Date: Fri, 23 Jan 2026 18:15:18 -0800 Subject: [PATCH] feat: lazy init --- projects/WinDurango.Common/CMakeLists.txt | 2 +- .../include/WinDurango.Common/WinDurango.h | 4 ++++ projects/WinDurango.Common/src/WinDurango.cpp | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/projects/WinDurango.Common/CMakeLists.txt b/projects/WinDurango.Common/CMakeLists.txt index d7df24f..bd90b47 100644 --- a/projects/WinDurango.Common/CMakeLists.txt +++ b/projects/WinDurango.Common/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 4.0) project(WinDurango.Common VERSION 1.0.0) -set(VERSION_SUFFIX "-dev.3") # used for non-stable versions, otherwise blank +set(VERSION_SUFFIX "-dev.4") # used for non-stable versions, otherwise blank set(CMAKE_CXX_STANDARD 17) diff --git a/projects/WinDurango.Common/include/WinDurango.Common/WinDurango.h b/projects/WinDurango.Common/include/WinDurango.Common/WinDurango.h index ee5f7cc..c7480e5 100644 --- a/projects/WinDurango.Common/include/WinDurango.Common/WinDurango.h +++ b/projects/WinDurango.Common/include/WinDurango.Common/WinDurango.h @@ -13,7 +13,11 @@ namespace wd::common { WinDurango() = default; + void Init(); + Config Config; + private: + bool _inited = false; }; } diff --git a/projects/WinDurango.Common/src/WinDurango.cpp b/projects/WinDurango.Common/src/WinDurango.cpp index d2c3dc1..d6dfecf 100644 --- a/projects/WinDurango.Common/src/WinDurango.cpp +++ b/projects/WinDurango.Common/src/WinDurango.cpp @@ -6,7 +6,15 @@ namespace wd::common { WinDurango *WinDurango::GetInstance() { static WinDurango Instance = WinDurango(); // if we don't declare it in src, it will make multiple instances per header import in different libs afaik + if (!Instance._inited) + Instance.Init(); // lazy return &Instance; } + + void WinDurango::Init() { + // todo load config + + this->_inited = true; + } }