diff --git a/CMake/logging.cmake b/CMake/logging.cmake deleted file mode 100644 index 12b201b538..0000000000 --- a/CMake/logging.cmake +++ /dev/null @@ -1,20 +0,0 @@ -set(SPDLOG_LEVEL_TRACE 0) -set(SPDLOG_LEVEL_DEBUG 1) -set(SPDLOG_LEVEL_INFO 2) -set(SPDLOG_LEVEL_WARN 3) -set(SPDLOG_LEVEL_ERROR 4) -set(SPDLOG_LEVEL_CRITICAL 5) -set(SPDLOG_LEVEL_OFF 6) -set(LOG_LEVELS "SPDLOG_LEVEL_TRACE;SPDLOG_LEVEL_DEBUG;SPDLOG_LEVEL_INFO;SPDLOG_LEVEL_WARN;SPDLOG_LEVEL_ERROR;SPDLOG_LEVEL_CRITICAL;SPDLOG_LEVEL_OFF") -set(LOG_LEVEL SPDLOG_LEVEL_TRACE CACHE STRING "The spdlog level that prints will be logged out. Overridden to SPDLOG_LEVEL_ERROR on Release builds.") -set_property(CACHE LOG_LEVEL PROPERTY STRINGS ${LOG_LEVELS}) -if(NOT LOG_LEVEL IN_LIST LOG_LEVELS) - message(FATAL_ERROR "LOG_LEVEL must be one of ${LOG_LEVELS}") -endif() -set(SPDLOG_ACTIVE_LEVEL ${${LOG_LEVEL}}) -set(LOG_LEVEL_GAME_PRINTS ${SPDLOG_LEVEL_OFF}) - -add_compile_definitions( - LOG_LEVEL_GAME_PRINTS=${LOG_LEVEL_GAME_PRINTS} - SPDLOG_ACTIVE_LEVEL=${SPDLOG_ACTIVE_LEVEL} -) diff --git a/CMakeLists.txt b/CMakeLists.txt index 26f51c7769..0a120c9489 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,9 @@ set(GAME_STR "MM") project(2s2h VERSION 3.0.1 LANGUAGES C CXX) include(CMake/2ship-cvars.cmake) include(CMake/lus-cvars.cmake) -include(CMake/logging.cmake) +set(SPDLOG_LEVEL_TRACE 0) +set(SPDLOG_LEVEL_OFF 6) +set(SPDLOG_MIN_CUTOFF SPDLOG_LEVEL_TRACE CACHE STRING "cutoff at trace") set(PROJECT_BUILD_NAME "Mion Bravo" CACHE STRING "" FORCE) set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE) diff --git a/libultraship b/libultraship index 5d498e780f..a8bdcab363 160000 --- a/libultraship +++ b/libultraship @@ -1 +1 @@ -Subproject commit 5d498e780f25dc3c05804b0328db683121d96a2d +Subproject commit a8bdcab363571038bb71f195f21ec3e9033a220d diff --git a/mm/2s2h/BenGui/BenMenu.cpp b/mm/2s2h/BenGui/BenMenu.cpp index 43c71124c1..600a0d9553 100644 --- a/mm/2s2h/BenGui/BenMenu.cpp +++ b/mm/2s2h/BenGui/BenMenu.cpp @@ -86,6 +86,12 @@ static const std::vector debugSaveOptions = { "Empty save", // DEBUG_SAVE_INFO_NONE }; +#ifdef _DEBUG +DebugLogOption defaultLogLevel = DEBUG_LOG_TRACE; +#else +DebugLogOption defaultLogLevel = DEBUG_LOG_INFO; +#endif + static const std::vector logLevels = { "Trace", // DEBUG_LOG_TRACE "Debug", // DEBUG_LOG_DEBUG @@ -1690,10 +1696,11 @@ void BenMenu::AddDevTools() { .Options(ComboboxOptions() .Tooltip("The log level determines which messages are printed to the " "console. This does not affect the log file output.") - .ComboVec(&logLevels)) + .ComboVec(&logLevels) + .DefaultIndex(defaultLogLevel)) .Callback([](WidgetInfo& info) { Ship::Context::GetInstance()->GetLogger()->set_level( - (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", 1)); + (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", defaultLogLevel)); }) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Frame Advance", WIDGET_CHECKBOX) diff --git a/mm/2s2h/BenPort.cpp b/mm/2s2h/BenPort.cpp index e23afc2a1d..bc0b0dc4cc 100644 --- a/mm/2s2h/BenPort.cpp +++ b/mm/2s2h/BenPort.cpp @@ -173,10 +173,17 @@ OTRGlobals::OTRGlobals() { context = Ship::Context::CreateUninitializedInstance("2 Ship 2 Harkinian", appShortName, "2ship2harkinian.json"); context->InitFileDropMgr(); - context->InitLogging(); context->InitGfxDebugger(); context->InitConfiguration(); context->InitConsoleVariables(); +#if (_DEBUG) + auto defaultLogLevel = spdlog::level::trace; +#else + auto defaultLogLevel = spdlog::level::info; +#endif + auto logLevel = (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", defaultLogLevel); + context->InitLogging(logLevel, logLevel); + Ship::Context::GetInstance()->GetLogger()->set_pattern("[%H:%M:%S.%e] [%s:%#] [%l] %v"); // tell LUS to reserve 3 SoH specific threads (Game, Audio, Save) context->InitResourceManager(archiveFiles, {}, 3); @@ -195,15 +202,6 @@ OTRGlobals::OTRGlobals() { context->InitWindow(benFast3dWindow); // Override LUS defaults -#if (_DEBUG) - int defaultLogLevel = 0; -#else - int defaultLogLevel = 2; -#endif - Ship::Context::GetInstance()->GetLogger()->set_level( - (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", defaultLogLevel)); - Ship::Context::GetInstance()->GetLogger()->set_pattern("[%H:%M:%S.%e] [%s:%#] [%l] %v"); - auto overlay = context->GetInstance()->GetWindow()->GetGui()->GetGameOverlay(); overlay->LoadFont("Press Start 2P", 12.0f, "fonts/PressStart2P-Regular.ttf"); overlay->LoadFont("Fipps", 32.0f, "fonts/Fipps-Regular.otf"); diff --git a/mm/CMakeLists.txt b/mm/CMakeLists.txt index 2bb1114a46..79dbefa55e 100644 --- a/mm/CMakeLists.txt +++ b/mm/CMakeLists.txt @@ -251,7 +251,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows") "ENABLE_DX11;" ">" "$<$:" - "NDEBUG" + "NDEBUG;" ">" #"$<$:ENABLE_CROWD_CONTROL>" "INCLUDE_GAME_PRINTF;" @@ -259,6 +259,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows") "F3DEX_GBI_2" "UNICODE;" "_UNICODE" + SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF} + LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF} STORMLIB_NO_AUTO_LINK "_CRT_SECURE_NO_WARNINGS;" NOMINMAX @@ -266,33 +268,35 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows") elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" - "_DEBUG" + "_DEBUG;" ">" "$<$:" - "NDEBUG" + "NDEBUG;" ">" - "F3DEX_GBI_2" - "SPDLOG_ACTIVE_LEVEL=3;" + "F3DEX_GBI_2;" "SPDLOG_NO_THREAD_ID;" "SPDLOG_NO_TLS;" "STBI_NO_THREAD_LOCALS;" + SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF} + LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF} ) elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" - "_DEBUG" + "_DEBUG;" ">" "$<$:" - "NDEBUG" + "NDEBUG;" ">" - "F3DEX_GBI_2" + "F3DEX_GBI_2;" # "$<$:ENABLE_CROWD_CONTROL>" - "SPDLOG_ACTIVE_LEVEL=0;" "_CONSOLE;" "_CRT_SECURE_NO_WARNINGS;" "ENABLE_OPENGL;" "UNICODE;" - "_UNICODE" + "_UNICODE;" + SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF} + LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF} "NON_MATCHING;" "NON_EQUIVALENT;" )