mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-12 12:18:32 -04:00
Add ASAN cmake option (#6981)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user