From ca7d32448041e33bdb206241f210ad8961f8d10c Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Wed, 7 Aug 2013 14:35:46 +0400 Subject: [PATCH] Fix mingw build issue caused by "interface" preprocessor definition Due to a weird odditie of windows, mingw has to redefine "interface" to "struct" in its headers as described e.g. at https://bugzilla.redhat.com/show_bug.cgi?id=980270 So if some software includes windows.h before ftdi.h, it'll lead to a build failure. This snippet, borrowed from libusb, fixes it. Signed-off-by: Paul Fertser --- src/ftdi.h | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/src/ftdi.h b/src/ftdi.h index 15067c7..3d97dd9 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -20,6 +20,18 @@ #include #include +/* 'interface' might be defined as a macro on Windows, so we need to + * undefine it so as not to break the current libftdi API, because + * struct ftdi_context has an 'interface' member + * As this can be problematic if you include windows.h after ftdi.h + * in your sources, we force windows.h to be included first. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +#include +#if defined(interface) +#undef interface +#endif +#endif + /** FTDI chip type */ enum ftdi_chip_type { -- 1.7.1