Browse Source

Add more deprecation tags.

Rojo 4 months ago
parent
commit
bec91aa784
1 changed files with 73 additions and 2 deletions
  1. 73 2
      include/Common/EABase/eadeprecated.h

+ 73 - 2
include/Common/EABase/eadeprecated.h

@@ -177,6 +177,16 @@
 	_value EA_INTERNAL_DEPRECATED_AFTERTYPE(_major_version, _minor_version, _patch_version, _annotation, _msg)
 
 
+/////////////////////////////////////////////////////////////////////////////////
+//
+// Internal macro which disables the compiler warnings
+//  EA_INTERNAL_DISABLE_DEPRECATED()
+//
+#define EA_INTERNAL_DISABLE_DEPRECATED()	\
+	EA_DISABLE_VC_WARNING(4996);			\
+	EA_DISABLE_CLANG_WARNING(-Wdeprecated-declarations);
+
+
 /////////////////////////////////////////////////////////////////////////////////
 //
 // Suppress deprecated warnings around a block of code, see file comment for full usage.
@@ -184,8 +194,8 @@
 //
 #define EA_DISABLE_DEPRECATED(_moduleVersion, _major_version, _minor_version, _patch_version, _annotation, _msg) \
 	EA_INTERNAL_DEPRECATED_BEFORETYPE(_moduleVersion, _major_version, _minor_version, _patch_version, _annotation) \
-	EA_DISABLE_VC_WARNING(4996);										\
-	EA_DISABLE_CLANG_WARNING(-Wdeprecated-declarations);
+	EA_INTERNAL_DISABLE_DEPRECATED();
+
 
 /////////////////////////////////////////////////////////////////////////////////
 //
@@ -243,9 +253,70 @@
 #if EA_IS_ENABLED(EA_DEPRECATIONS_FOR_2025_APRIL)
 	#define EA_REMOVE_AT_2025_APRIL EA_DEPRECATED
 	#define EA_REMOVE_AT_2025_APRIL_MSG EA_DEPRECATED_MESSAGE
+	#define EA_DISABLE_DEPRECATED_UNTIL_2025_APRIL EA_INTERNAL_DISABLE_DEPRECATED
+	#define EA_RESTORE_DEPRECATED_UNTIL_2025_APRIL EA_RESTORE_DEPRECATED
 #else
 	#define EA_REMOVE_AT_2025_APRIL
 	#define EA_REMOVE_AT_2025_APRIL_MSG(msg)
+	#define EA_DISABLE_DEPRECATED_UNTIL_2025_APRIL()
+	#define EA_RESTORE_DEPRECATED_UNTIL_2025_APRIL()
+#endif
+
+// EA_DEPRECATIONS_FOR_2025_OCT
+// This macro is provided as a means to disable warnings temporarily (in particular if a user is compiling with warnings as errors).
+// All deprecations raised by this macro (when it is EA_ENABLED) are scheduled for removal approximately October 2025.
+#ifndef EA_DEPRECATIONS_FOR_2025_OCT
+	#define EA_DEPRECATIONS_FOR_2025_OCT EA_ENABLED
+#endif
+
+#if EA_IS_ENABLED(EA_DEPRECATIONS_FOR_2025_OCT)
+	#define EA_REMOVE_AT_2025_OCT EA_DEPRECATED
+	#define EA_REMOVE_AT_2025_OCT_MSG EA_DEPRECATED_MESSAGE
+	#define EA_DISABLE_DEPRECATED_UNTIL_2025_OCT EA_INTERNAL_DISABLE_DEPRECATED
+	#define EA_RESTORE_DEPRECATED_UNTIL_2025_OCT EA_RESTORE_DEPRECATED
+#else
+	#define EA_REMOVE_AT_2025_OCT
+	#define EA_REMOVE_AT_2025_OCT_MSG(msg)
+	#define EA_DISABLE_DEPRECATED_UNTIL_2025_OCT()
+	#define EA_RESTORE_DEPRECATED_UNTIL_2025_OCT()
+#endif
+
+// EA_DEPRECATIONS_FOR_2026_APRIL
+// This macro is provided as a means to disable warnings temporarily (in particular if a user is compiling with warnings as errors).
+// All deprecations raised by this macro (when it is EA_ENABLED) are scheduled for removal approximately April 2026.
+#ifndef EA_DEPRECATIONS_FOR_2026_APRIL
+	#define EA_DEPRECATIONS_FOR_2026_APRIL EA_ENABLED
+#endif
+
+#if EA_IS_ENABLED(EA_DEPRECATIONS_FOR_2026_APRIL)
+	#define EA_REMOVE_AT_2026_APRIL EA_DEPRECATED
+	#define EA_REMOVE_AT_2026_APRIL_MSG EA_DEPRECATED_MESSAGE
+	#define EA_DISABLE_DEPRECATED_UNTIL_2026_APRIL EA_INTERNAL_DISABLE_DEPRECATED
+	#define EA_RESTORE_DEPRECATED_UNTIL_2026_APRIL EA_RESTORE_DEPRECATED
+#else
+	#define EA_REMOVE_AT_2026_APRIL
+	#define EA_REMOVE_AT_2026_APRIL_MSG(msg)
+	#define EA_DISABLE_DEPRECATED_UNTIL_2026_APRIL()
+	#define EA_RESTORE_DEPRECATED_UNTIL_2026_APRIL()
+#endif
+
+// EA_DEPRECATIONS_FOR_2026_OCT
+// This macro is provided as a means to disable warnings temporarily (in particular if a user is compiling with warnings as errors).
+// All deprecations raised by this macro (when it is EA_ENABLED) are scheduled for removal approximately October 2026.
+#ifndef EA_DEPRECATIONS_FOR_2026_OCT
+	#define EA_DEPRECATIONS_FOR_2026_OCT EA_ENABLED
+#endif
+
+#if EA_IS_ENABLED(EA_DEPRECATIONS_FOR_2026_OCT)
+	#define EA_REMOVE_AT_2026_OCT EA_DEPRECATED
+	#define EA_REMOVE_AT_2026_OCT_MSG EA_DEPRECATED_MESSAGE
+	#define EA_DISABLE_DEPRECATED_UNTIL_2026_OCT EA_INTERNAL_DISABLE_DEPRECATED
+	#define EA_RESTORE_DEPRECATED_UNTIL_2026_OCT EA_RESTORE_DEPRECATED
+#else
+	#define EA_REMOVE_AT_2026_OCT
+	#define EA_REMOVE_AT_2026_OCT_MSG(msg)
+	#define EA_DISABLE_DEPRECATED_UNTIL_2026_OCT()
+	#define EA_RESTORE_DEPRECATED_UNTIL_2026_OCT()
 #endif