diff options
| author | louist103 <35883445+louist103@users.noreply.github.com> | 2026-07-25 14:05:12 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-25 14:05:12 +0000 |
| commit | 27e6fe015c8d701aaeffd2ccd379706caccba891 (patch) | |
| tree | 014edf08bd0d1db454e7e50eebb767322385c9bb | |
| parent | 90c6b34e8f53652279fc1ca0b3c4300ff8891e87 (diff) | |
Add ASAN cmake option (#6981)
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | soh/CMakeLists.txt | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d92b7379b..3cc6fbf87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ include(CMake/lus-cvars.cmake) set(SPDLOG_LEVEL_TRACE 0) set(SPDLOG_LEVEL_OFF 6) set(SPDLOG_MIN_CUTOFF SPDLOG_LEVEL_TRACE CACHE STRING "cutoff at trace") +option(USE_ASAN "Use Address Sanitizer" OFF) option(SUPPRESS_WARNINGS "Suppress warnings in LUS and src (decomp)" ON) if(SUPPRESS_WARNINGS) diff --git a/soh/CMakeLists.txt b/soh/CMakeLists.txt index 615fdeafe..27184d7f4 100644 --- a/soh/CMakeLists.txt +++ b/soh/CMakeLists.txt @@ -715,6 +715,33 @@ else() ) endif() +if(USE_ASAN) + target_compile_options(libultraship PRIVATE -fsanitize=address) + target_link_options(libultraship PRIVATE -fsanitize=address) + target_compile_options(soh PRIVATE -fsanitize=address) + target_link_options(soh PRIVATE -fsanitize=address) + target_link_options(ZAPD PRIVATE -fsanitize=address) + target_link_options(OTRExporter PRIVATE -fsanitize=address) + target_compile_options(ZAPD PRIVATE -fsanitize=address) + target_compile_options(OTRExporter PRIVATE -fsanitize=address) + if (MSVC) + target_compile_definitions(ImGui PRIVATE _DISABLE_VECTOR_ANNOTATION) + target_compile_definitions(ImGui PRIVATE _DISABLE_STRING_ANNOTATION) + target_compile_definitions(libultraship PRIVATE _DISABLE_VECTOR_ANNOTATION) + target_compile_definitions(libultraship PRIVATE _DISABLE_STRING_ANNOTATION) + + target_compile_definitions(soh PRIVATE _DISABLE_VECTOR_ANNOTATION) + target_compile_definitions(soh PRIVATE _DISABLE_STRING_ANNOTATION) + target_compile_options(libultraship PRIVATE $<$<CONFIG:Debug>:/Zi;>) + target_compile_options(soh PRIVATE $<$<CONFIG:Debug>:/Zi;>) + # The default stack size on Windows is 1MB. ASAN uses a lot more stack so boost it to 16 + set_target_properties(soh PROPERTIES + LINK_FLAGS "/STACK:16777216" + ) + endif() +endif() + + if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|NintendoSwitch|CafeOS") INSTALL(TARGETS soh DESTINATION . COMPONENT ship) endif() |
