[librsvg] Visual Studio builds: Fix pre-Visual Studio 2012 builds



commit 2ae18d05e654b1130fa7397b316d270be1707450
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Thu Jan 21 18:13:54 2016 +0800

    Visual Studio builds: Fix pre-Visual Studio 2012 builds
    
    A recent commit made use of the C99 function isnan(), which is not
    supported directly in pre-2013 Visual Studio.  Earlier Visual Studio
    however does provide _isnan() which does what we will need, so add a
    fallback math.h in build/win32/vs9 that defines isnan() and includes the
    stock math.h, and make the projects include this math.h.
    
    This header is copied to the build/win32/vs[10|11] during 'make dist', as
    Visual Studio 2010 and 2012 will need this as well.

 build/win32/vs10/Makefile.am               |    6 +++-
 build/win32/vs10/rsvg-build-defines.props  |    2 +-
 build/win32/vs11/Makefile.am               |    6 +++-
 build/win32/vs9/Makefile.am                |    1 +
 build/win32/vs9/math.h                     |   39 ++++++++++++++++++++++++++++
 build/win32/vs9/rsvg-build-defines.vsprops |    2 +-
 6 files changed, 52 insertions(+), 4 deletions(-)
---
diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am
index 4719683..0295b7c 100644
--- a/build/win32/vs10/Makefile.am
+++ b/build/win32/vs10/Makefile.am
@@ -3,7 +3,8 @@ GENERATED_ITEMS =                       \
        rsvg.vcxproj.filters            \
        rsvg-convert.vcxproj            \
        rsvg-convert.vcxproj.filters    \
-       rsvg-install.props
+       rsvg-install.props              \
+       math.h
 
 EXTRA_DIST =   \
        librsvg.sln                             \
@@ -27,6 +28,9 @@ rsvg-install.props: $(top_srcdir)/build/win32/vs10/rsvg-install.propsin rsvg.vs1
        $(CPP) -P - <$(top_srcdir)/build/win32/vs10/rsvg-install.propsin >$@
        rm rsvg.vs10.headers
 
+math.h: $(top_srcdir)/build/win32/vs9/math.h
+       cp $< $@
+
 DISTCLEANFILES = $(GENERATED_ITEMS)
 
 -include $(top_srcdir)/git.mk
diff --git a/build/win32/vs10/rsvg-build-defines.props b/build/win32/vs10/rsvg-build-defines.props
index d819425..45d70f6 100644
--- a/build/win32/vs10/rsvg-build-defines.props
+++ b/build/win32/vs10/rsvg-build-defines.props
@@ -5,7 +5,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros">
     <LibRsvgCFlags>G_LOG_DOMAIN="librsvg";RSVG_DISABLE_DEPRECATION_WARNINGS;RSVG_COMPILATION</LibRsvgCFlags>
-    
<LibRsvgIncPath>$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2</LibRsvgIncPath>
+    
<LibRsvgIncPath>$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2;.\</LibRsvgIncPath>
     <LibRsvgLibs>pangocairo-1.0.lib;pango-1.0.lib;croco-0.6.lib;libxml2.lib</LibRsvgLibs>
     <IntlLib>intl.lib</IntlLib>
     
<Gtk3IncPath>$(GlibEtcInstallRoot)\include\gtk-3.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(LibRsvgIncPath)</Gtk3IncPath>
diff --git a/build/win32/vs11/Makefile.am b/build/win32/vs11/Makefile.am
index 3314824..95d1a20 100644
--- a/build/win32/vs11/Makefile.am
+++ b/build/win32/vs11/Makefile.am
@@ -13,7 +13,8 @@ EXTRA_DIST =    \
        rsvg-install.vcxproj                    \
        rsvg-view-3.vcxproj                     \
        rsvg-view-3.vcxproj.filters             \
-       README.txt 
+       README.txt                              \
+       math.h
 
 DISTCLEANFILES = $(EXTRA_DIST)
 
@@ -22,3 +23,6 @@ MSVC_FORMAT_VER = 12
 MSVC_VER_LONG = 2012
 
 include $(top_srcdir)/build/Makefile-newvs.am
+
+math.h: $(top_srcdir)/build/win32/vs9/math.h
+       cp $< $@
diff --git a/build/win32/vs9/Makefile.am b/build/win32/vs9/Makefile.am
index 56a81dc..1a67404 100644
--- a/build/win32/vs9/Makefile.am
+++ b/build/win32/vs9/Makefile.am
@@ -15,6 +15,7 @@ EXTRA_DIST =  \
        rsvg-install.vcproj             \
        rsvg-view-3.vcproj              \
        README.txt                      \
+       math.h                          \
        $(GENERATED_ITEMS)
 
 rsvg-install.vsprops: $(top_srcdir)/build/win32/vs9/rsvg-install.vspropsin rsvg.headers
diff --git a/build/win32/vs9/math.h b/build/win32/vs9/math.h
new file mode 100644
index 0000000..f4f0c89
--- /dev/null
+++ b/build/win32/vs9/math.h
@@ -0,0 +1,39 @@
+/* librsvg - SVG rendering library
+ * Copyright (C) 2015 Chun-wei Fan <fanc999 yahoo com tw>
+ *
+ * Author: Chun-wei Fan <fanc999 yahoo com tw>
+ *
+ * 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/>.
+ */
+
+#include <float.h>
+
+/* include the system's math.h */
+#include <../include/math.h>
+#include <glib.h>
+
+#if (_MSC_VER < 1800)
+/* it seems of the supported compilers only
+ * MSVC does not have isnan(), but it does
+ * have _isnan() which does the same as isnan()
+ */
+#ifndef __MSVC_ISNAN_FALLBACK__
+#define __MSVC_ISNAN_FALLBACK__
+static inline gboolean
+isnan (double x)
+{
+  return _isnan (x);
+}
+#endif /* __MSVC_ISNAN_FALLBACK__ */
+#endif /* _MSC_VER < 1800 */
diff --git a/build/win32/vs9/rsvg-build-defines.vsprops b/build/win32/vs9/rsvg-build-defines.vsprops
index 5fff8a0..1eddc6e 100644
--- a/build/win32/vs9/rsvg-build-defines.vsprops
+++ b/build/win32/vs9/rsvg-build-defines.vsprops
@@ -21,7 +21,7 @@
        />
        <UserMacro
                Name="LibRsvgIncPath"
-               
Value="$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2"
+               
Value="$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2;.\"
        />
        <UserMacro
                Name="Gtk3IncPath"


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