From bafa4bda20ce5281e084d0978157219d327ec07e Mon Sep 17 00:00:00 2001 From: Draiget Date: Mon, 18 Oct 2021 11:58:08 +0400 Subject: [PATCH] Add Windows build support --- CMakeLists.txt | 4 +++- include/elasticlient/client.h | 3 +++ include/elasticlient/logging.h | 3 +++ src/client.cc | 3 +++ src/logging-impl.h | 20 ++++++++++++++++---- src/scroll.cc | 3 +++ 6 files changed, 31 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b60b63..969cd53 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,9 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -Wall -Wextra -Wfatal-errors -Wformat-security -Wuninitialized -Wfloat-equal -fPIC -g") +if(CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -Wall -Wextra -Wfatal-errors -Wformat-security -Wuninitialized -Wfloat-equal -fPIC -g") +endif(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS_RELEASE "-O2") macro(get_variable VAR_NAME VAR_TEXT DEFAULT_VALUE IS_OPTION) diff --git a/include/elasticlient/client.h b/include/elasticlient/client.h index 21b92db..93a3fc8 100644 --- a/include/elasticlient/client.h +++ b/include/elasticlient/client.h @@ -14,6 +14,9 @@ #include #include +#ifndef __GNUC__ +#undef DELETE +#endif // Forward cpr::Response existence. namespace cpr { diff --git a/include/elasticlient/logging.h b/include/elasticlient/logging.h index 15d18a7..12d6c46 100644 --- a/include/elasticlient/logging.h +++ b/include/elasticlient/logging.h @@ -6,6 +6,9 @@ #pragma once #include +#ifndef __GNUC__ +#undef ERROR +#endif /// The elasticlient namespace namespace elasticlient { diff --git a/src/client.cc b/src/client.cc index 6bc540e..09f19ec 100644 --- a/src/client.cc +++ b/src/client.cc @@ -11,6 +11,9 @@ #include #include "logging-impl.h" +#ifndef __GNUC__ +#undef DELETE +#endif namespace { diff --git a/src/logging-impl.h b/src/logging-impl.h index a7c203a..5f0e5c9 100644 --- a/src/logging-impl.h +++ b/src/logging-impl.h @@ -12,13 +12,22 @@ #include #include - -#define LOG(logLevel, args...) \ +#ifdef __GNUC__ +#define LOG(logLevel, args ...) \ do { \ if(elasticlient::isLoggingEnabled()) { \ elasticlient::propagateLogMessage(logLevel, args); \ } \ } while (false) +#else +#define LOG(logLevel, ...) \ + do { \ + if(elasticlient::isLoggingEnabled()) { \ + elasticlient::propagateLogMessage(logLevel, __VA_ARGS__); \ + } \ + } while (false) +#endif + namespace elasticlient { @@ -33,8 +42,11 @@ void dbgLog(LogLevel logLevel, const std::string &message); inline void propagateLogMessage( - LogLevel logLevel, const char* message, ...) __attribute__ ((format (printf, 2, 3))); - + LogLevel logLevel, const char* message, ...) +#ifdef __GNUC__ + __attribute__ ((format (printf, 2, 3))) +#endif +; void propagateLogMessage(LogLevel logLevel, const char* message, ...) { va_list args; diff --git a/src/scroll.cc b/src/scroll.cc index 01e4eef..a68b653 100644 --- a/src/scroll.cc +++ b/src/scroll.cc @@ -11,6 +11,9 @@ #include #include "logging-impl.h" +#ifndef __GNUC__ +#undef DELETE +#endif namespace elasticlient {