Closed gearama closed 1 week ago
I compared the files locally, and we need to add prefix to all the macros that are getting defined. In the previous version, we prefixed them all with _az_
, but if we're touching them anyways, let's change that to _azure_
?
#ifndef _azure_JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
#define _azure_JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
#endif
etc, etc.
@gearama, this should do it:
(Get-Content sdk/core/azure-core/inc/azure/core/internal/json/json.hpp) `
.Replace('NLOHMANN_JSON_TO', '_azure_NLOHMANN_JSON_TO') `
.Replace('NLOHMANN_JSON_SERIALIZE_ENUM', '_azure_NLOHMANN_JSON_SERIALIZE_ENUM') `
.Replace('NLOHMANN_JSON_PASTE64', '_azure_NLOHMANN_JSON_PASTE64') `
.Replace('NLOHMANN_JSON_PASTE63', '_azure_NLOHMANN_JSON_PASTE63') `
.Replace('NLOHMANN_JSON_PASTE62', '_azure_NLOHMANN_JSON_PASTE62') `
.Replace('NLOHMANN_JSON_PASTE61', '_azure_NLOHMANN_JSON_PASTE61') `
.Replace('NLOHMANN_JSON_PASTE60', '_azure_NLOHMANN_JSON_PASTE60') `
.Replace('NLOHMANN_JSON_PASTE59', '_azure_NLOHMANN_JSON_PASTE59') `
.Replace('NLOHMANN_JSON_PASTE58', '_azure_NLOHMANN_JSON_PASTE58') `
.Replace('NLOHMANN_JSON_PASTE57', '_azure_NLOHMANN_JSON_PASTE57') `
.Replace('NLOHMANN_JSON_PASTE56', '_azure_NLOHMANN_JSON_PASTE56') `
.Replace('NLOHMANN_JSON_PASTE55', '_azure_NLOHMANN_JSON_PASTE55') `
.Replace('NLOHMANN_JSON_PASTE54', '_azure_NLOHMANN_JSON_PASTE54') `
.Replace('NLOHMANN_JSON_PASTE53', '_azure_NLOHMANN_JSON_PASTE53') `
.Replace('NLOHMANN_JSON_PASTE52', '_azure_NLOHMANN_JSON_PASTE52') `
.Replace('NLOHMANN_JSON_PASTE51', '_azure_NLOHMANN_JSON_PASTE51') `
.Replace('NLOHMANN_JSON_PASTE50', '_azure_NLOHMANN_JSON_PASTE50') `
.Replace('NLOHMANN_JSON_PASTE49', '_azure_NLOHMANN_JSON_PASTE49') `
.Replace('NLOHMANN_JSON_PASTE48', '_azure_NLOHMANN_JSON_PASTE48') `
.Replace('NLOHMANN_JSON_PASTE47', '_azure_NLOHMANN_JSON_PASTE47') `
.Replace('NLOHMANN_JSON_PASTE46', '_azure_NLOHMANN_JSON_PASTE46') `
.Replace('NLOHMANN_JSON_PASTE45', '_azure_NLOHMANN_JSON_PASTE45') `
.Replace('NLOHMANN_JSON_PASTE44', '_azure_NLOHMANN_JSON_PASTE44') `
.Replace('NLOHMANN_JSON_PASTE43', '_azure_NLOHMANN_JSON_PASTE43') `
.Replace('NLOHMANN_JSON_PASTE42', '_azure_NLOHMANN_JSON_PASTE42') `
.Replace('NLOHMANN_JSON_PASTE41', '_azure_NLOHMANN_JSON_PASTE41') `
.Replace('NLOHMANN_JSON_PASTE40', '_azure_NLOHMANN_JSON_PASTE40') `
.Replace('NLOHMANN_JSON_PASTE39', '_azure_NLOHMANN_JSON_PASTE39') `
.Replace('NLOHMANN_JSON_PASTE38', '_azure_NLOHMANN_JSON_PASTE38') `
.Replace('NLOHMANN_JSON_PASTE37', '_azure_NLOHMANN_JSON_PASTE37') `
.Replace('NLOHMANN_JSON_PASTE36', '_azure_NLOHMANN_JSON_PASTE36') `
.Replace('NLOHMANN_JSON_PASTE35', '_azure_NLOHMANN_JSON_PASTE35') `
.Replace('NLOHMANN_JSON_PASTE34', '_azure_NLOHMANN_JSON_PASTE34') `
.Replace('NLOHMANN_JSON_PASTE33', '_azure_NLOHMANN_JSON_PASTE33') `
.Replace('NLOHMANN_JSON_PASTE32', '_azure_NLOHMANN_JSON_PASTE32') `
.Replace('NLOHMANN_JSON_PASTE31', '_azure_NLOHMANN_JSON_PASTE31') `
.Replace('NLOHMANN_JSON_PASTE30', '_azure_NLOHMANN_JSON_PASTE30') `
.Replace('NLOHMANN_JSON_PASTE29', '_azure_NLOHMANN_JSON_PASTE29') `
.Replace('NLOHMANN_JSON_PASTE28', '_azure_NLOHMANN_JSON_PASTE28') `
.Replace('NLOHMANN_JSON_PASTE27', '_azure_NLOHMANN_JSON_PASTE27') `
.Replace('NLOHMANN_JSON_PASTE26', '_azure_NLOHMANN_JSON_PASTE26') `
.Replace('NLOHMANN_JSON_PASTE25', '_azure_NLOHMANN_JSON_PASTE25') `
.Replace('NLOHMANN_JSON_PASTE24', '_azure_NLOHMANN_JSON_PASTE24') `
.Replace('NLOHMANN_JSON_PASTE23', '_azure_NLOHMANN_JSON_PASTE23') `
.Replace('NLOHMANN_JSON_PASTE22', '_azure_NLOHMANN_JSON_PASTE22') `
.Replace('NLOHMANN_JSON_PASTE21', '_azure_NLOHMANN_JSON_PASTE21') `
.Replace('NLOHMANN_JSON_PASTE20', '_azure_NLOHMANN_JSON_PASTE20') `
.Replace('NLOHMANN_JSON_PASTE19', '_azure_NLOHMANN_JSON_PASTE19') `
.Replace('NLOHMANN_JSON_PASTE18', '_azure_NLOHMANN_JSON_PASTE18') `
.Replace('NLOHMANN_JSON_PASTE17', '_azure_NLOHMANN_JSON_PASTE17') `
.Replace('NLOHMANN_JSON_PASTE16', '_azure_NLOHMANN_JSON_PASTE16') `
.Replace('NLOHMANN_JSON_PASTE15', '_azure_NLOHMANN_JSON_PASTE15') `
.Replace('NLOHMANN_JSON_PASTE14', '_azure_NLOHMANN_JSON_PASTE14') `
.Replace('NLOHMANN_JSON_PASTE13', '_azure_NLOHMANN_JSON_PASTE13') `
.Replace('NLOHMANN_JSON_PASTE12', '_azure_NLOHMANN_JSON_PASTE12') `
.Replace('NLOHMANN_JSON_PASTE11', '_azure_NLOHMANN_JSON_PASTE11') `
.Replace('NLOHMANN_JSON_PASTE10', '_azure_NLOHMANN_JSON_PASTE10') `
.Replace('NLOHMANN_JSON_PASTE9', '_azure_NLOHMANN_JSON_PASTE9') `
.Replace('NLOHMANN_JSON_PASTE8', '_azure_NLOHMANN_JSON_PASTE8') `
.Replace('NLOHMANN_JSON_PASTE7', '_azure_NLOHMANN_JSON_PASTE7') `
.Replace('NLOHMANN_JSON_PASTE6', '_azure_NLOHMANN_JSON_PASTE6') `
.Replace('NLOHMANN_JSON_PASTE5', '_azure_NLOHMANN_JSON_PASTE5') `
.Replace('NLOHMANN_JSON_PASTE4', '_azure_NLOHMANN_JSON_PASTE4') `
.Replace('NLOHMANN_JSON_PASTE3', '_azure_NLOHMANN_JSON_PASTE3') `
.Replace('NLOHMANN_JSON_PASTE2', '_azure_NLOHMANN_JSON_PASTE2') `
.Replace('NLOHMANN_JSON_PASTE', '_azure_NLOHMANN_JSON_PASTE') `
.Replace('NLOHMANN_JSON_NAMESPACE_NO_VERSION', '_azure_NLOHMANN_JSON_NAMESPACE_NO_VERSION') `
.Replace('NLOHMANN_JSON_GET_MACRO', '_azure_NLOHMANN_JSON_GET_MACRO') `
.Replace('NLOHMANN_JSON_FROM_WITH_DEFAULT', '_azure_NLOHMANN_JSON_FROM_WITH_DEFAULT') `
.Replace('NLOHMANN_JSON_FROM', '_azure_NLOHMANN_JSON_FROM') `
.Replace('NLOHMANN_JSON_EXPAND', '_azure_NLOHMANN_JSON_EXPAND') `
.Replace('NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON', '_azure_NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON') `
.Replace('NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS', '_azure_NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS') `
.Replace('NLOHMANN_JSON_ABI_TAGS_CONCAT_EX', '_azure_NLOHMANN_JSON_ABI_TAGS_CONCAT_EX') `
.Replace('NLOHMANN_JSON_ABI_TAGS_CONCAT', '_azure_NLOHMANN_JSON_ABI_TAGS_CONCAT') `
.Replace('NLOHMANN_JSON_ABI_TAGS', '_azure_NLOHMANN_JSON_ABI_TAGS') `
.Replace('NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT', '_azure_NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT') `
.Replace('NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE', '_azure_NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE') `
.Replace('NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE', '_azure_NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE') `
.Replace('NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT', '_azure_NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT') `
.Replace('NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE', '_azure_NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE') `
.Replace('NLOHMANN_DEFINE_TYPE_INTRUSIVE', '_azure_NLOHMANN_DEFINE_TYPE_INTRUSIVE') `
.Replace('NLOHMANN_CAN_CALL_STD_FUNC_IMPL', '_azure_NLOHMANN_CAN_CALL_STD_FUNC_IMPL') `
.Replace('NLOHMANN_BASIC_JSON_TPL_DECLARATION', '_azure_NLOHMANN_BASIC_JSON_TPL_DECLARATION') `
.Replace('NLOHMANN_BASIC_JSON_TPL', '_azure_NLOHMANN_BASIC_JSON_TPL') `
.Replace('JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON', '_azure_JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON') `
.Replace('JSON_USE_IMPLICIT_CONVERSIONS', '_azure_JSON_USE_IMPLICIT_CONVERSIONS') `
.Replace('JSON_USE_GLOBAL_UDLS', '_azure_JSON_USE_GLOBAL_UDLS') `
.Replace('JSON_TRY', '_azure_JSON_TRY') `
.Replace('JSON_THROW', '_azure_JSON_THROW') `
.Replace('JSON_PRIVATE_UNLESS_TESTED', '_azure_JSON_PRIVATE_UNLESS_TESTED') `
.Replace('JSON_NO_UNIQUE_ADDRESS', '_azure_JSON_NO_UNIQUE_ADDRESS') `
.Replace('JSON_INTERNAL_CATCH', '_azure_JSON_INTERNAL_CATCH') `
.Replace('JSON_INLINE_VARIABLE', '_azure_JSON_INLINE_VARIABLE') `
.Replace('JSON_IMPLEMENT_OPERATOR', '_azure_JSON_IMPLEMENT_OPERATOR') `
.Replace('JSON_HEDLEY_WARN_UNUSED_RESULT_MSG', '_azure_JSON_HEDLEY_WARN_UNUSED_RESULT_MSG') `
.Replace('JSON_HEDLEY_WARN_UNUSED_RESULT', '_azure_JSON_HEDLEY_WARN_UNUSED_RESULT') `
.Replace('JSON_HEDLEY_WARNING', '_azure_JSON_HEDLEY_WARNING') `
.Replace('JSON_HEDLEY_VERSION_ENCODE', '_azure_JSON_HEDLEY_VERSION_ENCODE') `
.Replace('JSON_HEDLEY_VERSION_DECODE_REVISION', '_azure_JSON_HEDLEY_VERSION_DECODE_REVISION') `
.Replace('JSON_HEDLEY_VERSION_DECODE_MINOR', '_azure_JSON_HEDLEY_VERSION_DECODE_MINOR') `
.Replace('JSON_HEDLEY_VERSION_DECODE_MAJOR', '_azure_JSON_HEDLEY_VERSION_DECODE_MAJOR') `
.Replace('JSON_HEDLEY_VERSION', '_azure_JSON_HEDLEY_VERSION') `
.Replace('JSON_HEDLEY_UNREACHABLE_RETURN', '_azure_JSON_HEDLEY_UNREACHABLE_RETURN') `
.Replace('JSON_HEDLEY_UNREACHABLE', '_azure_JSON_HEDLEY_UNREACHABLE') `
.Replace('JSON_HEDLEY_UNPREDICTABLE', '_azure_JSON_HEDLEY_UNPREDICTABLE') `
.Replace('JSON_HEDLEY_UNLIKELY', '_azure_JSON_HEDLEY_UNLIKELY') `
.Replace('JSON_HEDLEY_UNAVAILABLE', '_azure_JSON_HEDLEY_UNAVAILABLE') `
.Replace('JSON_HEDLEY_TI_VERSION_CHECK', '_azure_JSON_HEDLEY_TI_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TI_VERSION', '_azure_JSON_HEDLEY_TI_VERSION') `
.Replace('JSON_HEDLEY_TI_CLPRU_VERSION_CHECK', '_azure_JSON_HEDLEY_TI_CLPRU_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TI_CLPRU_VERSION', '_azure_JSON_HEDLEY_TI_CLPRU_VERSION') `
.Replace('JSON_HEDLEY_TI_CL2000_VERSION_CHECK', '_azure_JSON_HEDLEY_TI_CL2000_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TI_CL2000_VERSION', '_azure_JSON_HEDLEY_TI_CL2000_VERSION') `
.Replace('JSON_HEDLEY_TI_CL430_VERSION_CHECK', '_azure_JSON_HEDLEY_TI_CL430_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TI_CL430_VERSION', '_azure_JSON_HEDLEY_TI_CL430_VERSION') `
.Replace('JSON_HEDLEY_TI_CL7X_VERSION_CHECK', '_azure_JSON_HEDLEY_TI_CL7X_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TI_CL7X_VERSION', '_azure_JSON_HEDLEY_TI_CL7X_VERSION') `
.Replace('JSON_HEDLEY_TI_CL6X_VERSION_CHECK', '_azure_JSON_HEDLEY_TI_CL6X_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TI_CL6X_VERSION', '_azure_JSON_HEDLEY_TI_CL6X_VERSION') `
.Replace('JSON_HEDLEY_TI_ARMCL_VERSION_CHECK', '_azure_JSON_HEDLEY_TI_ARMCL_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TI_ARMCL_VERSION', '_azure_JSON_HEDLEY_TI_ARMCL_VERSION') `
.Replace('JSON_HEDLEY_TINYC_VERSION_CHECK', '_azure_JSON_HEDLEY_TINYC_VERSION_CHECK') `
.Replace('JSON_HEDLEY_TINYC_VERSION', '_azure_JSON_HEDLEY_TINYC_VERSION') `
.Replace('JSON_HEDLEY_SUNPRO_VERSION_CHECK', '_azure_JSON_HEDLEY_SUNPRO_VERSION_CHECK') `
.Replace('JSON_HEDLEY_SUNPRO_VERSION', '_azure_JSON_HEDLEY_SUNPRO_VERSION') `
.Replace('JSON_HEDLEY_STRINGIFY_EX', '_azure_JSON_HEDLEY_STRINGIFY_EX') `
.Replace('JSON_HEDLEY_STRINGIFY', '_azure_JSON_HEDLEY_STRINGIFY') `
.Replace('JSON_HEDLEY_STATIC_CAST', '_azure_JSON_HEDLEY_STATIC_CAST') `
.Replace('JSON_HEDLEY_STATIC_ASSERT', '_azure_JSON_HEDLEY_STATIC_ASSERT') `
.Replace('JSON_HEDLEY_SENTINEL', '_azure_JSON_HEDLEY_SENTINEL') `
.Replace('JSON_HEDLEY_RETURNS_NON_NULL', '_azure_JSON_HEDLEY_RETURNS_NON_NULL') `
.Replace('JSON_HEDLEY_RESTRICT', '_azure_JSON_HEDLEY_RESTRICT') `
.Replace('JSON_HEDLEY_REQUIRE_MSG', '_azure_JSON_HEDLEY_REQUIRE_MSG') `
.Replace('JSON_HEDLEY_REQUIRE_CONSTEXPR', '_azure_JSON_HEDLEY_REQUIRE_CONSTEXPR') `
.Replace('JSON_HEDLEY_REQUIRE', '_azure_JSON_HEDLEY_REQUIRE') `
.Replace('JSON_HEDLEY_REINTERPRET_CAST', '_azure_JSON_HEDLEY_REINTERPRET_CAST') `
.Replace('JSON_HEDLEY_PURE', '_azure_JSON_HEDLEY_PURE') `
.Replace('JSON_HEDLEY_PUBLIC', '_azure_JSON_HEDLEY_PUBLIC') `
.Replace('JSON_HEDLEY_PRIVATE', '_azure_JSON_HEDLEY_PRIVATE') `
.Replace('JSON_HEDLEY_PRINTF_FORMAT', '_azure_JSON_HEDLEY_PRINTF_FORMAT') `
.Replace('JSON_HEDLEY_PREDICT_TRUE', '_azure_JSON_HEDLEY_PREDICT_TRUE') `
.Replace('JSON_HEDLEY_PREDICT_FALSE', '_azure_JSON_HEDLEY_PREDICT_FALSE') `
.Replace('JSON_HEDLEY_PREDICT', '_azure_JSON_HEDLEY_PREDICT') `
.Replace('JSON_HEDLEY_PRAGMA', '_azure_JSON_HEDLEY_PRAGMA') `
.Replace('JSON_HEDLEY_PGI_VERSION_CHECK', '_azure_JSON_HEDLEY_PGI_VERSION_CHECK') `
.Replace('JSON_HEDLEY_PGI_VERSION', '_azure_JSON_HEDLEY_PGI_VERSION') `
.Replace('JSON_HEDLEY_PELLES_VERSION_CHECK', '_azure_JSON_HEDLEY_PELLES_VERSION_CHECK') `
.Replace('JSON_HEDLEY_PELLES_VERSION', '_azure_JSON_HEDLEY_PELLES_VERSION') `
.Replace('JSON_HEDLEY_NULL', '_azure_JSON_HEDLEY_NULL') `
.Replace('JSON_HEDLEY_NO_THROW', '_azure_JSON_HEDLEY_NO_THROW') `
.Replace('JSON_HEDLEY_NO_RETURN', '_azure_JSON_HEDLEY_NO_RETURN') `
.Replace('JSON_HEDLEY_NO_ESCAPE', '_azure_JSON_HEDLEY_NO_ESCAPE') `
.Replace('JSON_HEDLEY_NON_NULL', '_azure_JSON_HEDLEY_NON_NULL') `
.Replace('JSON_HEDLEY_NEVER_INLINE', '_azure_JSON_HEDLEY_NEVER_INLINE') `
.Replace('JSON_HEDLEY_MSVC_VERSION_CHECK', '_azure_JSON_HEDLEY_MSVC_VERSION_CHECK') `
.Replace('JSON_HEDLEY_MSVC_VERSION', '_azure_JSON_HEDLEY_MSVC_VERSION') `
.Replace('JSON_HEDLEY_MESSAGE', '_azure_JSON_HEDLEY_MESSAGE') `
.Replace('JSON_HEDLEY_MCST_LCC_VERSION_CHECK', '_azure_JSON_HEDLEY_MCST_LCC_VERSION_CHECK') `
.Replace('JSON_HEDLEY_MCST_LCC_VERSION', '_azure_JSON_HEDLEY_MCST_LCC_VERSION') `
.Replace('JSON_HEDLEY_MALLOC', '_azure_JSON_HEDLEY_MALLOC') `
.Replace('JSON_HEDLEY_LIKELY', '_azure_JSON_HEDLEY_LIKELY') `
.Replace('JSON_HEDLEY_IS_CONSTEXPR_', '_azure_JSON_HEDLEY_IS_CONSTEXPR_') `
.Replace('JSON_HEDLEY_IS_CONSTANT', '_azure_JSON_HEDLEY_IS_CONSTANT') `
.Replace('JSON_HEDLEY_INTEL_VERSION_CHECK', '_azure_JSON_HEDLEY_INTEL_VERSION_CHECK') `
.Replace('JSON_HEDLEY_INTEL_VERSION', '_azure_JSON_HEDLEY_INTEL_VERSION') `
.Replace('JSON_HEDLEY_INTEL_CL_VERSION_CHECK', '_azure_JSON_HEDLEY_INTEL_CL_VERSION_CHECK') `
.Replace('JSON_HEDLEY_INTEL_CL_VERSION', '_azure_JSON_HEDLEY_INTEL_CL_VERSION') `
.Replace('JSON_HEDLEY_INLINE', '_azure_JSON_HEDLEY_INLINE') `
.Replace('JSON_HEDLEY_IMPORT', '_azure_JSON_HEDLEY_IMPORT') `
.Replace('JSON_HEDLEY_IBM_VERSION_CHECK', '_azure_JSON_HEDLEY_IBM_VERSION_CHECK') `
.Replace('JSON_HEDLEY_IBM_VERSION', '_azure_JSON_HEDLEY_IBM_VERSION') `
.Replace('JSON_HEDLEY_IAR_VERSION_CHECK', '_azure_JSON_HEDLEY_IAR_VERSION_CHECK') `
.Replace('JSON_HEDLEY_IAR_VERSION', '_azure_JSON_HEDLEY_IAR_VERSION') `
.Replace('JSON_HEDLEY_HAS_WARNING', '_azure_JSON_HEDLEY_HAS_WARNING') `
.Replace('JSON_HEDLEY_HAS_FEATURE', '_azure_JSON_HEDLEY_HAS_FEATURE') `
.Replace('JSON_HEDLEY_HAS_EXTENSION', '_azure_JSON_HEDLEY_HAS_EXTENSION') `
.Replace('JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE', '_azure_JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE') `
.Replace('JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS', '_azure_JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS') `
.Replace('JSON_HEDLEY_HAS_CPP_ATTRIBUTE', '_azure_JSON_HEDLEY_HAS_CPP_ATTRIBUTE') `
.Replace('JSON_HEDLEY_HAS_BUILTIN', '_azure_JSON_HEDLEY_HAS_BUILTIN') `
.Replace('JSON_HEDLEY_HAS_ATTRIBUTE', '_azure_JSON_HEDLEY_HAS_ATTRIBUTE') `
.Replace('JSON_HEDLEY_GNUC_VERSION_CHECK', '_azure_JSON_HEDLEY_GNUC_VERSION_CHECK') `
.Replace('JSON_HEDLEY_GNUC_VERSION', '_azure_JSON_HEDLEY_GNUC_VERSION') `
.Replace('JSON_HEDLEY_GNUC_HAS_WARNING', '_azure_JSON_HEDLEY_GNUC_HAS_WARNING') `
.Replace('JSON_HEDLEY_GNUC_HAS_FEATURE', '_azure_JSON_HEDLEY_GNUC_HAS_FEATURE') `
.Replace('JSON_HEDLEY_GNUC_HAS_EXTENSION', '_azure_JSON_HEDLEY_GNUC_HAS_EXTENSION') `
.Replace('JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE', '_azure_JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE') `
.Replace('JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE', '_azure_JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE') `
.Replace('JSON_HEDLEY_GNUC_HAS_BUILTIN', '_azure_JSON_HEDLEY_GNUC_HAS_BUILTIN') `
.Replace('JSON_HEDLEY_GNUC_HAS_ATTRIBUTE', '_azure_JSON_HEDLEY_GNUC_HAS_ATTRIBUTE') `
.Replace('JSON_HEDLEY_GCC_VERSION_CHECK', '_azure_JSON_HEDLEY_GCC_VERSION_CHECK') `
.Replace('JSON_HEDLEY_GCC_VERSION', '_azure_JSON_HEDLEY_GCC_VERSION') `
.Replace('JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK', '_azure_JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK') `
.Replace('JSON_HEDLEY_GCC_HAS_WARNING', '_azure_JSON_HEDLEY_GCC_HAS_WARNING') `
.Replace('JSON_HEDLEY_GCC_HAS_FEATURE', '_azure_JSON_HEDLEY_GCC_HAS_FEATURE') `
.Replace('JSON_HEDLEY_GCC_HAS_EXTENSION', '_azure_JSON_HEDLEY_GCC_HAS_EXTENSION') `
.Replace('JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE', '_azure_JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE') `
.Replace('JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE', '_azure_JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE') `
.Replace('JSON_HEDLEY_GCC_HAS_BUILTIN', '_azure_JSON_HEDLEY_GCC_HAS_BUILTIN') `
.Replace('JSON_HEDLEY_GCC_HAS_ATTRIBUTE', '_azure_JSON_HEDLEY_GCC_HAS_ATTRIBUTE') `
.Replace('JSON_HEDLEY_FLAGS_CAST', '_azure_JSON_HEDLEY_FLAGS_CAST') `
.Replace('JSON_HEDLEY_FLAGS', '_azure_JSON_HEDLEY_FLAGS') `
.Replace('JSON_HEDLEY_FALL_THROUGH', '_azure_JSON_HEDLEY_FALL_THROUGH') `
.Replace('JSON_HEDLEY_END_C_DECLS', '_azure_JSON_HEDLEY_END_C_DECLS') `
.Replace('JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK', '_azure_JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK') `
.Replace('JSON_HEDLEY_EMSCRIPTEN_VERSION', '_azure_JSON_HEDLEY_EMSCRIPTEN_VERSION') `
.Replace('JSON_HEDLEY_EMPTY_BASES', '_azure_JSON_HEDLEY_EMPTY_BASES') `
.Replace('JSON_HEDLEY_DMC_VERSION_CHECK', '_azure_JSON_HEDLEY_DMC_VERSION_CHECK') `
.Replace('JSON_HEDLEY_DMC_VERSION', '_azure_JSON_HEDLEY_DMC_VERSION') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_PUSH', '_azure_JSON_HEDLEY_DIAGNOSTIC_PUSH') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_POP', '_azure_JSON_HEDLEY_DIAGNOSTIC_POP') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION', '_azure_JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS', '_azure_JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES', '_azure_JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED', '_azure_JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_', '_azure_JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_') `
.Replace('JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL', '_azure_JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL') `
.Replace('JSON_HEDLEY_DEPRECATED_FOR', '_azure_JSON_HEDLEY_DEPRECATED_FOR') `
.Replace('JSON_HEDLEY_DEPRECATED', '_azure_JSON_HEDLEY_DEPRECATED') `
.Replace('JSON_HEDLEY_C_DECL', '_azure_JSON_HEDLEY_C_DECL') `
.Replace('JSON_HEDLEY_CRAY_VERSION_CHECK', '_azure_JSON_HEDLEY_CRAY_VERSION_CHECK') `
.Replace('JSON_HEDLEY_CRAY_VERSION', '_azure_JSON_HEDLEY_CRAY_VERSION') `
.Replace('JSON_HEDLEY_CPP_CAST', '_azure_JSON_HEDLEY_CPP_CAST') `
.Replace('JSON_HEDLEY_CONST_CAST', '_azure_JSON_HEDLEY_CONST_CAST') `
.Replace('JSON_HEDLEY_CONSTEXPR', '_azure_JSON_HEDLEY_CONSTEXPR') `
.Replace('JSON_HEDLEY_CONST', '_azure_JSON_HEDLEY_CONST') `
.Replace('JSON_HEDLEY_CONCAT_EX', '_azure_JSON_HEDLEY_CONCAT_EX') `
.Replace('JSON_HEDLEY_CONCAT3_EX', '_azure_JSON_HEDLEY_CONCAT3_EX') `
.Replace('JSON_HEDLEY_CONCAT3', '_azure_JSON_HEDLEY_CONCAT3') `
.Replace('JSON_HEDLEY_CONCAT', '_azure_JSON_HEDLEY_CONCAT') `
.Replace('JSON_HEDLEY_COMPCERT_VERSION_CHECK', '_azure_JSON_HEDLEY_COMPCERT_VERSION_CHECK') `
.Replace('JSON_HEDLEY_COMPCERT_VERSION', '_azure_JSON_HEDLEY_COMPCERT_VERSION') `
.Replace('JSON_HEDLEY_CLANG_HAS_WARNING', '_azure_JSON_HEDLEY_CLANG_HAS_WARNING') `
.Replace('JSON_HEDLEY_CLANG_HAS_FEATURE', '_azure_JSON_HEDLEY_CLANG_HAS_FEATURE') `
.Replace('JSON_HEDLEY_CLANG_HAS_EXTENSION', '_azure_JSON_HEDLEY_CLANG_HAS_EXTENSION') `
.Replace('JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE', '_azure_JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE') `
.Replace('JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE', '_azure_JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE') `
.Replace('JSON_HEDLEY_CLANG_HAS_BUILTIN', '_azure_JSON_HEDLEY_CLANG_HAS_BUILTIN') `
.Replace('JSON_HEDLEY_CLANG_HAS_ATTRIBUTE', '_azure_JSON_HEDLEY_CLANG_HAS_ATTRIBUTE') `
.Replace('JSON_HEDLEY_BEGIN_C_DECLS', '_azure_JSON_HEDLEY_BEGIN_C_DECLS') `
.Replace('JSON_HEDLEY_ASSUME', '_azure_JSON_HEDLEY_ASSUME') `
.Replace('JSON_HEDLEY_ARRAY_PARAM', '_azure_JSON_HEDLEY_ARRAY_PARAM') `
.Replace('JSON_HEDLEY_ARM_VERSION_CHECK', '_azure_JSON_HEDLEY_ARM_VERSION_CHECK') `
.Replace('JSON_HEDLEY_ARM_VERSION', '_azure_JSON_HEDLEY_ARM_VERSION') `
.Replace('JSON_HEDLEY_ALWAYS_INLINE', '_azure_JSON_HEDLEY_ALWAYS_INLINE') `
.Replace('JSON_HAS_THREE_WAY_COMPARISON', '_azure_JSON_HAS_THREE_WAY_COMPARISON') `
.Replace('JSON_HAS_STATIC_RTTI', '_azure_JSON_HAS_STATIC_RTTI') `
.Replace('JSON_HAS_RANGES', '_azure_JSON_HAS_RANGES') `
.Replace('JSON_HAS_FILESYSTEM', '_azure_JSON_HAS_FILESYSTEM') `
.Replace('JSON_HAS_EXPERIMENTAL_FILESYSTEM', '_azure_JSON_HAS_EXPERIMENTAL_FILESYSTEM') `
.Replace('JSON_HAS_CPP_20', '_azure_JSON_HAS_CPP_20') `
.Replace('JSON_HAS_CPP_17', '_azure_JSON_HAS_CPP_17') `
.Replace('JSON_HAS_CPP_14', '_azure_JSON_HAS_CPP_14') `
.Replace('JSON_HAS_CPP_11', '_azure_JSON_HAS_CPP_11') `
.Replace('JSON_EXPLICIT', '_azure_JSON_EXPLICIT') `
.Replace('JSON_DISABLE_ENUM_SERIALIZATION', '_azure_JSON_DISABLE_ENUM_SERIALIZATION') `
.Replace('JSON_DIAGNOSTICS', '_azure_JSON_DIAGNOSTICS') `
.Replace('JSON_CATCH', '_azure_JSON_CATCH') `
.Replace('JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_', '_azure_JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_') `
.Replace('JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_', '_azure_JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_') `
.Replace('JSON_ASSERT', '_azure_JSON_ASSERT') `
.Replace('INCLUDE_NLOHMANN_JSON_FWD_HPP_', '_azure_INCLUDE_NLOHMANN_JSON_FWD_HPP_') `
| Set-Content sdk/core/azure-core/inc/azure/core/internal/json/json.hpp
Also,
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
and
#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_
lines should probably be dropped, no need to prefix INCLUDE_NLOHMANN_JSON_FWD_HPP_
.
@antkmsft done the changes you requested
The diff of the json file looks right, but is a lot. Can you outline the steps to you did to add/update the new file.
I haven't been able to review this PR yet, but given the size, I would love to understand what exact steps you took for the json library update to help make the review process quicker.
@ahsonkhan, it does pass the existing tests (both nlohmann JSON and Azure SDK), so I don't think it should be blocked from Beta release at least, but it would be better if we fetch 3.11.3 unit test updates as part of the same PR well.
/azp run cpp - core
Ah, I also think we probably should update
sdk/core/azure-core/test/nlohmann-json-test/*
.As @antkmsft mentioned, we should definitely keep the source and tests versions in-sync, so an update of the nlohmann json source should be together with the test update as well.
Please address this before merging, at the very least. I'll try to review the rest, tomorrow, but would like some help in making reviewing this change easier. What should we focus on?
I'd like to make sure that the existing tests run with the newer json library, to be honest. If there are any breaking changes in the nlohmann implementation, the old tests will start failing, but the new tests would have accounted for any breaking changes.
Since our implementation was built around the old implementation, we should keep the old tests for at least the first iteration of this PR.
Once the PR is in and we've run at least a single nightly build on the new implementation with the old tests, we should integrate the new tests.
Basically, we start by using the old tests to help ensure that the new json library won't break us, then switch to the new tests to ensure that if we have tests covering any new additions to the library.
/azp run cpp - core
/azp run cpp - core
/azp run cpp - core
/azp run cpp - core
/azp run cpp - core
Ah, I also think we probably should update
sdk/core/azure-core/test/nlohmann-json-test/*
.As @antkmsft mentioned, we should definitely keep the source and tests versions in-sync, so an update of the nlohmann json source should be together with the test update as well. Please address this before merging, at the very least. I'll try to review the rest, tomorrow, but would like some help in making reviewing this change easier. What should we focus on?
I'd like to make sure that the existing tests run with the newer json library, to be honest. If there are any breaking changes in the nlohmann implementation, the old tests will start failing, but the new tests would have accounted for any breaking changes.
Since our implementation was built around the old implementation, we should keep the old tests for at least the first iteration of this PR.
Once the PR is in and we've run at least a single nightly build on the new implementation with the old tests, we should integrate the new tests.
Basically, we start by using the old tests to help ensure that the new json library won't break us, then switch to the new tests to ensure that if we have tests covering any new additions to the library.
while i would agree with you there are api changes in the internal impl of the tests , the old ones don't compile properly , thus i had to update.
As mentioned in the description i ran all the CI pipelines that IMHO cover most if not all of the public interface , thus the functionality out of it that we use is covered , if we want to run some coverage tools to determine dead code in the json that we don't use that i would like to do to remove unneeded functionality, only that future updates would be harder to perform as we would need to determine what we removed and where it is and get rid of them again.
We can talk about it more monday, i did not bring this up thursday as that meeting was too clogged with go lang issues :)
We can talk about it more monday, i did not bring this up thursday as that meeting was too clogged with go lang issues :)
So be it. I was hoping to avoid doing even more work to update the tests, but if the existing tests break, so be it.
Reminder, in case this got lost -
Sorry, I just found two more macros that I missed, but that should be it! -
JSON_NO_IO
andJSON_TEST_KEEP_MACROS
.
I can now see JSON_NO_IO
prefixed, but the JSON_TEST_KEEP_MACROS
is still unprefixed.
Reminder, in case this got lost -
Sorry, I just found two more macros that I missed, but that should be it! -
JSON_NO_IO
andJSON_TEST_KEEP_MACROS
.I can now see
JSON_NO_IO
prefixed, but theJSON_TEST_KEEP_MACROS
is still unprefixed.
done, apologies , i somehow missed that
/azp run cpp - core
Just to understand, how come we remove INCLUDE_NLOHMANN_JSON_HPP_
instead of renaming it? It's probably right, so not suggesting we do something else, but trying to understand the rationale. Does it fail to compile with it?
@ahsonkhan, similar to https://github.com/Azure/azure-sdk-for-cpp/pull/5681#issuecomment-2150898548. More, the pattern,
#ifndef X_HPP_INCLUDED
#define X_HPP_INCLUDED
// header file contents
#endif
it is called "include guard". It is basically the same as
#pragma once
// header file contents
It is in our guidelines for C++ to use #pragma once
instead of include guards.
Formally, #pragmas
are not standardized, but practically, every C++ compiler implements it.
This is maybe not so often the case with C compilers, BTW, especially maybe for some exotic embedded platforms, which is why in Embedded C repo, we were using include guards and not pragmas.
@gearama, could you please drop all the occurrences of
/*!
@brief namespace for Niels Lohmann
@see
https://github.com/nlohmann
@since version 1.0.0
*/
?
The reason is that I used doxygen to generate docs, and what it does is that it ends up attaching namespace for Niels Lohmann
as a description for Azure
namespace (not the Azure::Core::Json::_internal
).
/azp run cpp - core
closes #5670 Updated json library Updated macos tests to ver 14 Readmes have been touched with add/remove spaces at the end to trigger all Ci pipelines in order to run all tests to verify the json library behaves as expected
Ran all the CI pipelines , since i have to revert the readme files i paste the result here
Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.