if(CV_GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
add_extra_compiler_option(-Wno-missing-field-initializers) # GCC 4.x emits warnings about {}, fixed in GCC 5+
endif()
+ if(CV_CLANG AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0)
+ add_extra_compiler_option(-Wno-deprecated-enum-enum-conversion)
+ add_extra_compiler_option(-Wno-deprecated-anon-enum-enum-conversion)
+ endif()
endif()
add_extra_compiler_option(-fdiagnostics-show-option)
#pragma warning( disable: 4127 )
#endif
+#if defined(CV_SKIP_DISABLE_CLANG_ENUM_WARNINGS)
+ // nothing
+#elif defined(CV_FORCE_DISABLE_CLANG_ENUM_WARNINGS)
+ #define CV_DISABLE_CLANG_ENUM_WARNINGS
+#elif defined(__clang__) && defined(__has_warning)
+ #if __has_warning("-Wdeprecated-enum-enum-conversion") && __has_warning("-Wdeprecated-anon-enum-enum-conversion")
+ #define CV_DISABLE_CLANG_ENUM_WARNINGS
+ #endif
+#endif
+#ifdef CV_DISABLE_CLANG_ENUM_WARNINGS
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-enum-enum-conversion"
+#pragma clang diagnostic ignored "-Wdeprecated-anon-enum-enum-conversion"
+#endif
+
namespace cv
{
CV__DEBUG_NS_BEGIN
#pragma warning( pop )
#endif
+#ifdef CV_DISABLE_CLANG_ENUM_WARNINGS
+#undef CV_DISABLE_CLANG_ENUM_WARNINGS
+#pragma clang diagnostic pop
+#endif
+
#endif