[cogl] configure: Force #undef of 'near' and 'far' on Windows



commit 01e1260aa0a659776961e7ade5eab571374d2a6a
Author: Neil Roberts <neil linux intel com>
Date:   Mon Jun 13 13:09:47 2011 +0100

    configure: Force #undef of 'near' and 'far' on Windows
    
    This adds an extra header that gets included from config.h where we
    can add configuration defines. This is used to #undef 'near' and 'far'
    when building for Windows so that we don't have to avoid using them as
    variable names in the Cogl code.

 Makefile.am     |    4 +++-
 config-custom.h |   35 +++++++++++++++++++++++++++++++++++
 configure.ac    |    1 +
 3 files changed, 39 insertions(+), 1 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index ed547d0..2524e14 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,4 +8,6 @@ SUBDIRS += examples doc po
 
 ACLOCAL_AMFLAGS = -I build/autotools ${ACLOCAL_FLAGS}
 
-EXTRA_DIST = README.in
+EXTRA_DIST = \
+	README.in \
+	config-custom.h
diff --git a/config-custom.h b/config-custom.h
new file mode 100644
index 0000000..6db96f5
--- /dev/null
+++ b/config-custom.h
@@ -0,0 +1,35 @@
+/*
+ * Cogl
+ *
+ * An object oriented GL/GLES Abstraction/Utility Layer
+ *
+ * Copyright (C) 2011 Intel Corporation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* The contents of this file get #included by config.h so it is
+   intended for extra configuration that needs to be included by all
+   Cogl source files. */
+
+/* The windows headers #define 'near' and 'far' to be blank. We
+   commonly want to use these variable names for doing perspective
+   transformation so rather than having to workaround this mis-feature
+   in Windows in the code we just #undef them here. We need to do this
+   after including windows.h */
+#ifdef _WIN32
+#include <windows.h>
+#undef near
+#undef far
+#endif /* _WIN32 */
diff --git a/configure.ac b/configure.ac
index ad27450..26f7d41 100644
--- a/configure.ac
+++ b/configure.ac
@@ -100,6 +100,7 @@ AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip
                   dist-bzip2])
 AM_SILENT_RULES([yes])
 
+AH_BOTTOM([#include "config-custom.h"])
 
 dnl ================================================================
 dnl Export the API versioning



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]