adb / libbase: clean up NOGDI and evil ERROR macro

Instead of defining and undefining NOGDI:

1. Always #include "base/logging.h" after #include <windows.h>.
Unfortunately, I could not find an easy way to give the user a
warning/error if they include in the wrong order.

2. base/logging.h does #undef ERROR to undefine the evil ERROR macro
that is from another era and probably a bad idea to begin with.

Change-Id: I995d89620611e849af9d7ec47eb55fc0512377f2
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
This commit is contained in:
Spencer Low 2015-05-19 22:12:06 -07:00
parent fe5b251329
commit ac3f7d9a78
5 changed files with 9 additions and 24 deletions

View file

@ -96,9 +96,6 @@ LOCAL_STATIC_LIBRARIES := libcrypto_static
ifeq ($(HOST_OS),windows)
LOCAL_C_INCLUDES += development/host/windows/usb/api/
# Windows.h defines an awful ERROR macro that collides with base/logging.h.
# Suppress it with NOGDI.
LOCAL_CFLAGS += -DNOGDI
endif
include $(BUILD_HOST_STATIC_LIBRARY)
@ -165,9 +162,6 @@ ifeq ($(HOST_OS),darwin)
endif
ifeq ($(HOST_OS),windows)
# Windows.h defines an awful ERROR macro that collides with base/logging.h.
# Suppress it with NOGDI.
LOCAL_CFLAGS += -DNOGDI
LOCAL_LDLIBS += -lws2_32 -lgdi32
EXTRA_STATIC_LIBS := AdbWinApi
endif

View file

@ -16,11 +16,6 @@
#define TRACE_TAG TRACE_AUTH
#ifdef _WIN32
// This blocks some definitions we need on Windows.
#undef NOGDI
#endif
#include "sysdeps.h"
#include "adb_auth.h"

View file

@ -16,9 +16,6 @@
#define TRACE_TAG TRACE_SYSDEPS
// For whatever reason this blocks the definition of ToAscii...
#undef NOGDI
#include "sysdeps.h"
#include <winsock2.h> /* winsock.h *must* be included before windows.h. */

View file

@ -13,18 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef BASE_LOGGING_H
#define BASE_LOGGING_H
#ifdef ERROR
#error ERROR is already defined. If this is Windows code, #define NOGDI before \
including anything.
#endif
// NOTE: For Windows, you must include logging.h after windows.h to allow the
// following code to suppress the evil ERROR macro:
#ifdef _WIN32
#ifndef NOGDI
#define NOGDI // Suppress the evil ERROR macro.
// windows.h includes wingdi.h which defines an evil macro ERROR.
#ifdef ERROR
#undef ERROR
#endif
#endif

View file

@ -14,6 +14,10 @@
* limitations under the License.
*/
#ifdef _WIN32
#include <windows.h>
#endif
#include "base/logging.h"
#include <libgen.h>
@ -34,8 +38,6 @@
#ifndef _WIN32
#include <mutex>
#else
#include <windows.h>
#endif
#include "base/macros.h"