fix android compilation (#372) * fix android compilation * checking __GLIBCXX__ and __GLIBCPP__ macro in addition to __ANDROID__ * using vsnprintf instead of std::vsnprintf to compile on Android * removed __GLIBCPP__ check on Android * StringPrintF instead of std::to_string for Android
diff --git a/src/benchmark_register.cc b/src/benchmark_register.cc index fe37320..c95da98 100644 --- a/src/benchmark_register.cc +++ b/src/benchmark_register.cc
@@ -31,6 +31,7 @@ #include <fstream> #include <iostream> #include <memory> +#include <sstream> #include <thread> #include "check.h" @@ -163,8 +164,8 @@ StringPrintF("%s:", family->arg_names_[arg_i].c_str()); } } - - instance.name += std::to_string(arg); + + instance.name += StringPrintF("%d", arg); ++arg_i; }
diff --git a/src/colorprint.cc b/src/colorprint.cc index 513376b..2dec4a8 100644 --- a/src/colorprint.cc +++ b/src/colorprint.cc
@@ -89,7 +89,7 @@ std::size_t size = 256; char local_buff[256]; - auto ret = std::vsnprintf(local_buff, size, msg, args_cp); + auto ret = vsnprintf(local_buff, size, msg, args_cp); va_end(args_cp); @@ -104,7 +104,7 @@ // we did not provide a long enough buffer on our first attempt. size = (size_t)ret + 1; // + 1 for the null byte std::unique_ptr<char[]> buff(new char[size]); - ret = std::vsnprintf(buff.get(), size, msg, args); + ret = vsnprintf(buff.get(), size, msg, args); CHECK(ret > 0 && ((size_t)ret) < size); return buff.get(); }
diff --git a/test/register_benchmark_test.cc b/test/register_benchmark_test.cc index e9f8ea5..c0ecad7 100644 --- a/test/register_benchmark_test.cc +++ b/test/register_benchmark_test.cc
@@ -114,14 +114,14 @@ #endif #ifndef BENCHMARK_HAS_NO_VARIADIC_REGISTER_BENCHMARK { - int x = 42; + const char* x = "42"; auto capturing_lam = [=](benchmark::State& st) { while (st.KeepRunning()) { } - st.SetLabel(std::to_string(x)); + st.SetLabel(x); }; benchmark::RegisterBenchmark("lambda_benchmark", capturing_lam); - AddCases({{"lambda_benchmark", "42"}}); + AddCases({{"lambda_benchmark", x}}); } #endif }