From 2716c7d56cb745937766897e0626d9d099730025 Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Fri, 3 Jan 2025 02:08:02 -0600 Subject: [PATCH] Cleaned up cmake --- CMakeLists.txt | 121 +++++++------------- src/Companion.cpp | 1 - src/Companion.h | 1 - src/factories/sf64/MessageLookupFactory.cpp | 2 +- 4 files changed, 43 insertions(+), 82 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fdbe317..ce9dd62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,9 +52,12 @@ set(SRC_DIR ${CXX_FILES} ${C_FILES} ${LGFXD_FILES}) option(USE_STANDALONE "Build as a standalone executable" ON) option(BUILD_STORMLIB "Build with StormLib support" ON) +option(BUILD_ASAN "Build with AddressSanitizer" OFF) -#add_compile_options(-fsanitize=address) -#add_link_options(-fsanitize=address) +if (BUILD_ASAN) + add_compile_options(-fsanitize=address) + add_link_options(-fsanitize=address) +endif() # Build if (USE_STANDALONE) @@ -69,86 +72,46 @@ if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_FLAGS_RELEASE "-O3") set(CMAKE_CXX_FLAGS "-Wno-narrowing") else() - if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") - target_compile_options(${PROJECT_NAME} PRIVATE - $<$: - /w; - /Od; - /MDd - > - $<$: - /Oi; - /Gy; - /W3; - /MD - > - /bigobj - /STACK:16777216 - /permissive-; - /MP; - ${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT}; - ${DEFAULT_CXX_EXCEPTION_HANDLING} - ) - target_compile_options(${PROJECT_NAME} PRIVATE $<$:/ZI;>) - elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") - target_compile_options(${PROJECT_NAME} PRIVATE - $<$: - /MDd - > - $<$: - /O2; - /Oi; - /Gy; - /MD - > - /STACK:16777216 - /permissive-; - /bigobj - /MP; + target_compile_options(${PROJECT_NAME} PRIVATE + $<$: /w; - ${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT}; - ${DEFAULT_CXX_EXCEPTION_HANDLING} - ) - endif() - if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") - target_link_options(${PROJECT_NAME} PRIVATE - $<$: - /INCREMENTAL - > - $<$: - /OPT:REF; - /OPT:ICF; - /INCREMENTAL:NO; - /FORCE:MULTIPLE - > - /bigobj - /STACK:16777216 - /MANIFEST:NO; - /DEBUG; - /SUBSYSTEM:CONSOLE - ) - elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") - target_link_options(${PROJECT_NAME} PRIVATE - $<$: - /OPT:REF; - /OPT:ICF; - /INCREMENTAL:NO; - /FORCE:MULTIPLE - > - /bigobj - /STACK:16777216 - /MANIFEST:NO; - /DEBUG; - /SUBSYSTEM:CONSOLE - ) - endif() + /Od; + /ZI; + /MDd + > + $<$: + /Oi; + /Gy; + /W3; + /MD + > + /bigobj + /permissive-; + /MP; + ${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT}; + ${DEFAULT_CXX_EXCEPTION_HANDLING} + ) + target_link_options(${PROJECT_NAME} PRIVATE + $<$: + /INCREMENTAL + > + $<$: + /OPT:REF; + /OPT:ICF; + /INCREMENTAL:NO; + /FORCE:MULTIPLE + > + /bigobj + /MANIFEST:NO; + /DEBUG; + /SUBSYSTEM:CONSOLE + ) endif() # Fetch Dependencies if(MSVC) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:16777216") endif() if(NOT USE_STANDALONE AND EXISTS "/mnt/c/WINDOWS/system32/wsl.exe") @@ -226,8 +189,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") endif() if(NOT USE_STANDALONE) -target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/lib) -target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) -target_include_directories(${PROJECT_NAME} PUBLIC ${yaml-cpp_SOURCE_DIR}/include) + target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/lib) + target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) + target_include_directories(${PROJECT_NAME} PUBLIC ${yaml-cpp_SOURCE_DIR}/include) endif() \ No newline at end of file diff --git a/src/Companion.cpp b/src/Companion.cpp index e97fa27..fadae00 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -1255,7 +1255,6 @@ std::optional> Companion::RegisterAsset(cons auto entry = std::make_tuple(output, node); this->gAddrMap[this->gCurrentFile][node["offset"].as()] = entry; - this->gAssetDependencies[this->gCurrentFile][name] = std::make_pair(node, true); auto dResult = this->ParseNode(node, output); if(dResult.has_value()) { this->gParseResults[this->gCurrentFile].push_back(dResult.value()); diff --git a/src/Companion.h b/src/Companion.h index 6f14708..749e318 100644 --- a/src/Companion.h +++ b/src/Companion.h @@ -198,7 +198,6 @@ private: std::variant, std::string> gWriteOrder; std::unordered_map> gFactories; std::unordered_map>> gWriteMap; - std::unordered_map>> gAssetDependencies; std::unordered_map>> gAddrMap; void ProcessFile(YAML::Node root); diff --git a/src/factories/sf64/MessageLookupFactory.cpp b/src/factories/sf64/MessageLookupFactory.cpp index 043ab42..e7422c4 100644 --- a/src/factories/sf64/MessageLookupFactory.cpp +++ b/src/factories/sf64/MessageLookupFactory.cpp @@ -93,7 +93,7 @@ std::optional> SF64::MessageLookupFactory::parse(st entry["autogen"] = true; SPDLOG_INFO("Message ID: {} Ptr: {:X} Offset: {:X}", id, ptr, (SEGMENT_NUMBER(offset) << 24) | (ptr - vram)); - Companion::Instance->RegisterAsset(output, entry); + Companion::Instance->AddAsset(entry); message.push_back({id, ptr}); id = reader.ReadInt32(); ptr = reader.ReadInt32();