From 155274f0dff32fd109a05a94cf1f002bf2dd97a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Fri, 6 Sep 2019 12:41:42 +0200 Subject: [PATCH] Add disabling the use of Android's logging at compile time This is done via the new compile time toggle, `CATCH_CONFIG_ANDROID_LOGWRITE`. Closes #1743 --- docs/configuration.md | 3 +++ include/internal/catch_compiler_capabilities.h | 7 ++++++- include/internal/catch_debug_console.cpp | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index 3f77059fa8..8726415a4e 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -155,6 +155,9 @@ by using `_NO_` in the macro, e.g. `CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS`. CATCH_CONFIG_EXPERIMENTAL_REDIRECT // Enables the new (experimental) way of capturing stdout/stderr CATCH_CONFIG_ENABLE_BENCHMARKING // Enables the integrated benchmarking features (has a significant effect on compilation speed) CATCH_CONFIG_USE_ASYNC // Force parallel statistical processing of samples during benchmarking + CATCH_CONFIG_ANDROID_LOGWRITE // Use android's logging system for debug output + +> `CATCH_CONFIG_ANDROID_LOGWRITE` was [introduced](https://github.com/catchorg/Catch2/issues/1743) in Catch X.Y.Z Currently Catch enables `CATCH_CONFIG_WINDOWS_SEH` only when compiled with MSVC, because some versions of MinGW do not have the necessary Win32 API support. diff --git a/include/internal/catch_compiler_capabilities.h b/include/internal/catch_compiler_capabilities.h index 42481a9666..7934e7fae6 100644 --- a/include/internal/catch_compiler_capabilities.h +++ b/include/internal/catch_compiler_capabilities.h @@ -94,6 +94,7 @@ // Android somehow still does not support std::to_string #if defined(__ANDROID__) # define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING +# define CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE #endif //////////////////////////////////////////////////////////////////////////////// @@ -115,7 +116,7 @@ // Required for some versions of Cygwin to declare gettimeofday // see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin # define _BSD_SOURCE -// some versions of cygwin (most) do not support std::to_string. Use the libstd check. +// some versions of cygwin (most) do not support std::to_string. Use the libstd check. // https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813 # if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) @@ -301,6 +302,10 @@ # define CATCH_CONFIG_USE_ASYNC #endif +#if defined(CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_NO_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_ANDROID_LOGWRITE) +# define CATCH_CONFIG_ANDROID_LOGWRITE +#endif + #if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) # define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS # define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS diff --git a/include/internal/catch_debug_console.cpp b/include/internal/catch_debug_console.cpp index 5a99d42269..a341d81089 100644 --- a/include/internal/catch_debug_console.cpp +++ b/include/internal/catch_debug_console.cpp @@ -7,11 +7,12 @@ */ #include "catch_debug_console.h" +#include "catch_compiler_capabilities.h" #include "catch_stream.h" #include "catch_platform.h" #include "catch_windows_h_proxy.h" -#if defined(__ANDROID__) +#if defined(CATCH_CONFIG_ANDROID_LOGWRITE) #include namespace Catch {