Skip to content

Commit

Permalink
Add sanitizer stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
albin-johansson committed Dec 7, 2023
1 parent 00ed4c4 commit 9eb925f
Showing 1 changed file with 46 additions and 19 deletions.
65 changes: 46 additions & 19 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,14 @@ project(centurion
option(CEN_USE_SYSTEM_SDL "Use the system SDL libraries" ON)
option(CEN_BUILD_UNIT_TESTS "Build the unit test suite" OFF)
option(CEN_BUILD_MOCK_TESTS "Build the mock test suite" OFF)
option(CEN_USE_ADDRESS_SANITIZER "Build with the address sanitizer enabled" OFF)
option(CEN_USE_UB_SANITIZER "Build with the undefined behavior sanitizer enabled" OFF)

message(DEBUG "CEN_USE_SYSTEM_SDL: ${CEN_USE_SYSTEM_SDL}")
message(DEBUG "CEN_BUILD_UNIT_TESTS: ${CEN_BUILD_UNIT_TESTS}")
message(DEBUG "CEN_BUILD_MOCK_TESTS: ${CEN_BUILD_MOCK_TESTS}")
message(DEBUG "CEN_USE_ADDRESS_SANITIZER: ${CEN_USE_ADDRESS_SANITIZER}")
message(DEBUG "CEN_USE_UB_SANITIZER: ${CEN_USE_UB_SANITIZER}")

set(CENTURION_ROOT_DIR "${PROJECT_SOURCE_DIR}")

Expand All @@ -28,32 +32,55 @@ else ()
find_package(SDL3 REQUIRED PATHS "${CENTURION_ROOT_DIR}/external/SDL/build")
endif ()

if (MSVC)
list(APPEND CENTURION_COMPILER_FLAGS
/EHsc
/MP
/W4
/permissive-
/Zc:preprocessor
/Zc:__cplusplus
)
else ()
list(APPEND CENTURION_COMPILER_FLAGS
-Wall
-Wextra
-Wpedantic
-Wconversion
-Wsign-conversion
-Wshadow
)

if (NOT MSVC)
if (CEN_USE_ADDRESS_SANITIZER MATCHES "ON")
list(APPEND CENTURION_COMPILER_FLAGS -fsanitize=address -fno-sanitize-recover -fno-omit-frame-pointer -g)
list(APPEND CENTURION_LINK_FLAGS -fsanitize=address -fno-sanitize-recover -fno-omit-frame-pointer -g)
elseif (CEN_USE_UB_SANITIZER MATCHES "ON")
list(APPEND CENTURION_COMPILER_FLAGS -fsanitize=undefined -fno-sanitize-recover -fno-omit-frame-pointer -g)
list(APPEND CENTURION_LINK_FLAGS -fsanitize=undefined -fno-sanitize-recover -fno-omit-frame-pointer -g)
endif ()
endif ()
endif ()

message(DEBUG "CENTURION_COMPILER_FLAGS: ${CENTURION_COMPILER_FLAGS}")
message(DEBUG "CENTURION_LINK_FLAGS: ${CENTURION_LINK_FLAGS}")

function(cen_apply_compiler_options target)
set_target_properties(${target}
PROPERTIES
CXX_STANDARD_REQUIRED ON
CXX_STANDARD_EXTENSIONS OFF
)

if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(${target}
PRIVATE
/EHsc
/MP
/W4
/permissive-
/Zc:preprocessor
/Zc:__cplusplus
)
else ()
target_compile_options(${target}
PRIVATE
-Wall
-Wextra
-Wpedantic
-Wconversion
-Wsign-conversion
)
target_compile_options(${target} PRIVATE "${CENTURION_COMPILER_FLAGS}")
target_link_options(${target} PRIVATE "${CENTURION_LINK_FLAGS}")

if (NOT MSVC)
if (CEN_USE_ADDRESS_SANITIZER MATCHES "ON")
target_link_libraries(${target} PRIVATE -fsanitize=address)
elseif (CEN_USE_UB_SANITIZER MATCHES "ON")
target_link_libraries(${target} PRIVATE -fsanitize=undefined)
endif ()
endif ()
endfunction()

Expand Down

0 comments on commit 9eb925f

Please sign in to comment.