summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Roberts <neil@linux.intel.com>2011-06-13 13:09:47 +0100
committerNeil Roberts <neil@linux.intel.com>2011-06-14 12:14:02 +0100
commit01e1260aa0a659776961e7ade5eab571374d2a6a (patch)
tree03d17169512bfb61f044369a6b3b1c98e3c71c18
parent5dc42284a5174d6cb451d0f5956801e67da3e627 (diff)
downloadcogl-01e1260aa0a659776961e7ade5eab571374d2a6a.tar.gz
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.
-rw-r--r--Makefile.am4
-rw-r--r--config-custom.h35
-rw-r--r--configure.ac1
3 files changed, 39 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index ed547d05..2524e149 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 00000000..6db96f55
--- /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 ad27450b..26f7d414 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