diff --git a/CMakeLists.txt b/CMakeLists.txt index e0f12eb1e..b4b62d3c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,7 +73,8 @@ if(PROJECT_IS_TOP_LEVEL) option(BOX2D_PROFILE "Enable profiling with Tracy" OFF) option(BOX2D_VALIDATE "Enable heavy validation" ON) option(BOX2D_UNIT_TESTS "Build the Box2D unit tests" ON) - + option(BOX2D_COMPILE_WARNING_AS_ERROR "Compile warnings as errors" OFF) + if(MSVC AND WIN32) # add_compile_options(/fsanitize=address) # set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/GS- /Gy /O2 /Oi /Ot") diff --git a/shared/CMakeLists.txt b/shared/CMakeLists.txt index 9a9e98082..f0c050116 100644 --- a/shared/CMakeLists.txt +++ b/shared/CMakeLists.txt @@ -17,6 +17,10 @@ set_target_properties(shared PROPERTIES C_STANDARD 17 ) +if (BOX2D_COMPILE_WARNING_AS_ERROR) + set_target_properties(shared PROPERTIES COMPILE_WARNING_AS_ERROR ON) +endif() + target_include_directories(shared PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(shared PRIVATE box2d) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5e08afae0..dbc41b129 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -92,12 +92,15 @@ set_target_properties(box2d PROPERTIES C_STANDARD 17 C_STANDARD_REQUIRED YES C_EXTENSIONS YES - COMPILE_WARNING_AS_ERROR ON VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX} ) +if (BOX2D_COMPILE_WARNING_AS_ERROR) + set_target_properties(box2d PROPERTIES COMPILE_WARNING_AS_ERROR ON) +endif() + if (BOX2D_PROFILE) target_compile_definitions(box2d PRIVATE BOX2D_PROFILE) @@ -160,15 +163,15 @@ elseif (MINGW) endif() elseif (APPLE) message(STATUS "Box2D on Apple") - target_compile_options(box2d PRIVATE -Wmissing-prototypes -Wall -Wextra -pedantic -Werror) + target_compile_options(box2d PRIVATE -Wmissing-prototypes -Wall -Wextra -pedantic) elseif (EMSCRIPTEN) message(STATUS "Box2D on Emscripten") - if (BOX2D_DISABLE_SIMD OFF) + if (NOT BOX2D_DISABLE_SIMD) target_compile_options(box2d PRIVATE -msimd128 -msse2) endif() elseif (UNIX) message(STATUS "Box2D using Unix") - target_compile_options(box2d PRIVATE -Wmissing-prototypes -Wall -Wextra -pedantic -Werror -Wno-unused-value) + target_compile_options(box2d PRIVATE -Wmissing-prototypes -Wall -Wextra -pedantic -Wno-unused-value) if ("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "aarch64") # raspberry pi # -mfpu=neon diff --git a/src/distance.c b/src/distance.c index 415ca80c2..1e1e5341c 100644 --- a/src/distance.c +++ b/src/distance.c @@ -218,10 +218,6 @@ static void b2ComputeSimplexWitnessPoints( b2Vec2* a, b2Vec2* b, const b2Simplex { switch ( s->count ) { - case 0: - B2_ASSERT( false ); - break; - case 1: *a = s->v1.wA; *b = s->v1.wB; @@ -240,6 +236,8 @@ static void b2ComputeSimplexWitnessPoints( b2Vec2* a, b2Vec2* b, const b2Simplex break; default: + *a = b2Vec2_zero; + *b = b2Vec2_zero; B2_ASSERT( false ); break; }