diff --git a/api/include/opentelemetry/logs/event_logger.h b/api/include/opentelemetry/logs/event_logger.h index 929e97cc2c..dbeffd2042 100644 --- a/api/include/opentelemetry/logs/event_logger.h +++ b/api/include/opentelemetry/logs/event_logger.h @@ -15,6 +15,17 @@ OPENTELEMETRY_BEGIN_NAMESPACE namespace logs { #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + /** * Handles event log record creation. **/ @@ -77,6 +88,14 @@ class OPENTELEMETRY_DEPRECATED EventLogger void IgnoreTraitResult(ValueType &&...) {} }; + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif } // namespace logs OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/logs/event_logger_provider.h b/api/include/opentelemetry/logs/event_logger_provider.h index 9eea0ca23b..cb3b05dc72 100644 --- a/api/include/opentelemetry/logs/event_logger_provider.h +++ b/api/include/opentelemetry/logs/event_logger_provider.h @@ -15,6 +15,17 @@ class EventLogger; class Logger; #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + /** * Creates new EventLogger instances. */ @@ -32,6 +43,14 @@ class OPENTELEMETRY_DEPRECATED EventLoggerProvider nostd::shared_ptr delegate_logger, nostd::string_view event_domain) noexcept = 0; }; + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif } // namespace logs OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/logs/noop.h b/api/include/opentelemetry/logs/noop.h index 5e7654ae75..73bf1e57f9 100644 --- a/api/include/opentelemetry/logs/noop.h +++ b/api/include/opentelemetry/logs/noop.h @@ -91,10 +91,22 @@ class NoopLoggerProvider final : public LoggerProvider }; #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + class NoopEventLogger final : public EventLogger { public: NoopEventLogger() : logger_{nostd::shared_ptr(new NoopLogger())} {} + ~NoopEventLogger() override = default; const nostd::string_view GetName() noexcept override { return "noop event logger"; } @@ -112,27 +124,9 @@ class NoopEventLogger final : public EventLogger class NoopEventLoggerProvider final : public EventLoggerProvider { public: -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable : 4996) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" -# endif - NoopEventLoggerProvider() : event_logger_{nostd::shared_ptr(new NoopEventLogger())} {} - -# if defined(_MSC_VER) -# pragma warning(pop) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic pop -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic pop -# endif + ~NoopEventLoggerProvider() override = default; nostd::shared_ptr CreateEventLogger( nostd::shared_ptr /*delegate_logger*/, @@ -144,6 +138,14 @@ class NoopEventLoggerProvider final : public EventLoggerProvider private: nostd::shared_ptr event_logger_; }; + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif } // namespace logs diff --git a/api/include/opentelemetry/logs/provider.h b/api/include/opentelemetry/logs/provider.h index 58f668e041..83d2e765de 100644 --- a/api/include/opentelemetry/logs/provider.h +++ b/api/include/opentelemetry/logs/provider.h @@ -48,6 +48,16 @@ class OPENTELEMETRY_EXPORT Provider } #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif /** * Returns the singleton EventLoggerProvider. * @@ -70,6 +80,13 @@ class OPENTELEMETRY_EXPORT Provider std::lock_guard guard(GetLock()); GetEventProvider() = tp; } +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif private: @@ -80,10 +97,6 @@ class OPENTELEMETRY_EXPORT Provider } #if OPENTELEMETRY_ABI_VERSION_NO < 2 - OPENTELEMETRY_DEPRECATED - OPENTELEMETRY_API_SINGLETON static nostd::shared_ptr & - GetEventProvider() noexcept - { # if defined(_MSC_VER) # pragma warning(push) # pragma warning(disable : 4996) @@ -95,8 +108,13 @@ class OPENTELEMETRY_EXPORT Provider # pragma clang diagnostic ignored "-Wdeprecated-declarations" # endif + OPENTELEMETRY_DEPRECATED + OPENTELEMETRY_API_SINGLETON static nostd::shared_ptr & + GetEventProvider() noexcept + { static nostd::shared_ptr provider(new NoopEventLoggerProvider); return provider; + } # if defined(_MSC_VER) # pragma warning(pop) @@ -105,7 +123,6 @@ class OPENTELEMETRY_EXPORT Provider # elif defined(__clang__) || defined(__apple_build_version__) # pragma clang diagnostic pop # endif - } #endif OPENTELEMETRY_API_SINGLETON static common::SpinLockMutex &GetLock() noexcept diff --git a/examples/common/logs_foo_library/CMakeLists.txt b/examples/common/logs_foo_library/CMakeLists.txt index b1173098fd..14b0209bd5 100644 --- a/examples/common/logs_foo_library/CMakeLists.txt +++ b/examples/common/logs_foo_library/CMakeLists.txt @@ -12,3 +12,24 @@ target_include_directories(common_logs_foo_library PUBLIC $) target_link_libraries(common_logs_foo_library PUBLIC opentelemetry-cpp::api) + +# Internal deprecated API calling should not failed the build in maintainer mode +if(OTELCPP_MAINTAINER_MODE) + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") + get_target_property(COMMON_LOGS_FOO_COMPILE_OPTS common_logs_foo_library + COMPILE_OPTIONS) + list(REMOVE_ITEM COMMON_LOGS_FOO_COMPILE_OPTS + -Wno-error=deprecated-declarations) + set_target_properties( + common_logs_foo_library PROPERTIES COMPILE_OPTIONS + "${COMMON_LOGS_FOO_COMPILE_OPTS}") + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + get_target_property(COMMON_LOGS_FOO_COMPILE_OPTS common_logs_foo_library + COMPILE_OPTIONS) + list(REMOVE_ITEM COMMON_LOGS_FOO_COMPILE_OPTS /wd4996) + list(APPEND COMMON_LOGS_FOO_COMPILE_OPTS /w34996) + set_target_properties( + common_logs_foo_library PROPERTIES COMPILE_OPTIONS + "${COMMON_LOGS_FOO_COMPILE_OPTS}") + endif() +endif()