41 lines
1.3 KiB
CMake
41 lines
1.3 KiB
CMake
function(pp_configure_project_warnings target)
|
|
if(MSVC)
|
|
target_compile_options(${target} INTERFACE
|
|
/W4
|
|
/permissive-
|
|
/Zc:__cplusplus
|
|
/Zc:preprocessor)
|
|
if(PP_ENABLE_MSVC_ANALYZE)
|
|
target_compile_options(${target} INTERFACE /analyze)
|
|
endif()
|
|
else()
|
|
target_compile_options(${target} INTERFACE
|
|
-Wall
|
|
-Wextra
|
|
-Wpedantic
|
|
-Wconversion
|
|
-Wshadow
|
|
-Wnull-dereference)
|
|
endif()
|
|
|
|
if(PP_ENABLE_ASAN)
|
|
if(MSVC)
|
|
target_compile_options(${target} INTERFACE /fsanitize=address)
|
|
target_link_options(${target} INTERFACE /fsanitize=address)
|
|
else()
|
|
target_compile_options(${target} INTERFACE -fsanitize=address)
|
|
target_link_options(${target} INTERFACE -fsanitize=address)
|
|
endif()
|
|
endif()
|
|
|
|
if(PP_ENABLE_UBSAN AND NOT MSVC)
|
|
target_compile_options(${target} INTERFACE -fsanitize=undefined)
|
|
target_link_options(${target} INTERFACE -fsanitize=undefined)
|
|
endif()
|
|
|
|
if(PP_ENABLE_TSAN AND NOT MSVC)
|
|
target_compile_options(${target} INTERFACE -fsanitize=thread)
|
|
target_link_options(${target} INTERFACE -fsanitize=thread)
|
|
endif()
|
|
endfunction()
|