|
@@ -0,0 +1,94 @@
|
|
|
+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;
|
|
|
+ }
|
|
|
+
|