[librsvg] Visual Studio builds: Move projects to win32/



commit 1bfa2d7b0e85b8c31d7bf9fd55cdfbd0455ca5eb
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Thu Feb 23 11:59:29 2017 +0800

    Visual Studio builds: Move projects to win32/
    
    Move the projects to win32/ from build/win32/, so that one will need to go down
    one less level down the tree to reach the project files, and will allow the
    autotools modules (Makefile.msvcproj, Makefile-newvs.am,
    Makefile.msvc-introspection) to be in sync with the ones in GLib and G-I master.
    
    This also makes the support of Visual Studio 2017 complete by allowing it in the
    NMake Makefiles, which is a must for this package since NMake Makefiles are used
    to build the Rust bits on Visual Studio, as well as for introspection builds.

 Makefile.am                                        |   18 ++--
 build/Makefile-newvs.am                            |   57 --------
 build/Makefile.am                                  |    1 -
 build/Makefile.msvcproj                            |  149 -------------------
 configure.ac                                       |    9 +-
 win32/Makefile-newvs.am                            |   55 +++++++
 {build/win32 => win32}/Makefile.am                 |    2 +-
 {build => win32}/Makefile.msvc-introspection       |   70 +++++-----
 win32/Makefile.msvcproj                            |  153 ++++++++++++++++++++
 {build/win32 => win32}/detectenv-msvc.mak          |    4 +-
 {build/win32 => win32}/introspection-msvc.mak      |    4 +-
 {build/win32 => win32}/rsvg-introspection-msvc.mak |    0
 {build/win32 => win32}/rsvg-rust.mak               |   10 +-
 {build/win32 => win32}/vs12/Makefile.am            |    8 +-
 {build/win32 => win32}/vs12/README.txt             |    0
 .../vs12/libpixbufloader-svg.vcxproj               |   16 +--
 .../vs12/libpixbufloader-svg.vcxproj.filters       |    2 +-
 {build/win32 => win32}/vs12/librsvg.sln            |    0
 .../win32 => win32}/vs12/rsvg-build-defines.props  |    2 +-
 .../vs12/rsvg-convert.vcxproj.filtersin            |    0
 {build/win32 => win32}/vs12/rsvg-convert.vcxprojin |   14 +--
 {build/win32 => win32}/vs12/rsvg-gen-srcs.props    |    4 +-
 {build/win32 => win32}/vs12/rsvg-install.propsin   |    0
 {build/win32 => win32}/vs12/rsvg-install.vcxproj   |   18 +--
 {build/win32 => win32}/vs12/rsvg-rust.vcxproj      |    0
 .../win32 => win32}/vs12/rsvg-version-paths.props  |    2 +-
 {build/win32 => win32}/vs12/rsvg-view-3.vcxproj    |   16 +--
 .../vs12/rsvg-view-3.vcxproj.filters               |    2 +-
 {build/win32 => win32}/vs12/rsvg.vcxproj.filtersin |    4 +-
 {build/win32 => win32}/vs12/rsvg.vcxprojin         |   54 ++-----
 {build/win32 => win32}/vs14/Makefile.am            |    5 +-
 {build/win32 => win32}/vs15/Makefile.am            |    5 +-
 32 files changed, 315 insertions(+), 369 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index a4b538b..facd9ca 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = . gdk-pixbuf-loader tests tools doc build
+SUBDIRS = . gdk-pixbuf-loader tests tools doc win32
 
 NULL =
 BUILT_SOURCES =
@@ -329,35 +329,35 @@ rsvg_HEADERS_EXCLUDES = dummy
 rsvg_convert_FILES = $(rsvg_convert_SOURCES)
 rsvg_convert_EXCLUDES = dummy
 
-include $(top_srcdir)/build/Makefile.msvcproj
+include $(top_srcdir)/win32/Makefile.msvcproj
 
 # autotools: Why must we do this instead of dist-hook?
 MSVCPROJ_GENERATED = \
-       $(top_builddir)/build/win32/vs12/rsvg.vcxproj           \
-       $(top_builddir)/build/win32/vs12/rsvg-convert.vcxproj
+       $(top_builddir)/win32/vs12/rsvg.vcxproj         \
+       $(top_builddir)/win32/vs12/rsvg-convert.vcxproj
 
 if HAVE_INTROSPECTION
 
 MSVC_INTROSPECT_GIRS = $(INTROSPECTION_GIRS)
 
 INTROSPECTION_INTERMEDIATE_ITEMS = \
-       $(top_builddir)/build/win32/Rsvg-@RSVG_API_VERSION  gir msvc.introspect         \
-       $(top_builddir)/build/win32/Rsvg_@RSVG_API_VERSION_U@_gir_list
+       $(top_builddir)/win32/Rsvg-@RSVG_API_VERSION  gir msvc.introspect               \
+       $(top_builddir)/win32/Rsvg_@RSVG_API_VERSION_U@_gir_list
 
 Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_FILES = $(Rsvg_@RSVG_API_VERSION_U@_gir_FILES)
 Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_PACKAGES = $(Rsvg_@RSVG_API_VERSION_U@_gir_PACKAGES)
 Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_EXPORT_PACKAGES = $(Rsvg_@RSVG_API_VERSION_U@_gir_EXPORT_PACKAGES)
 Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_INCLUDE_GIRS = $(Rsvg_@RSVG_API_VERSION_U@_gir_INCLUDES)
 Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_LIBS = rsvg-@RSVG_API_VERSION@
-Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_CFLAGS = -I../.. -DRSVG_COMPILATION
+Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_CFLAGS = -I.. -DRSVG_COMPILATION
 Rsvg_@RSVG_API_VERSION_U@_gir_MSVC_SCANNERFLAGS = $(Rsvg_@RSVG_API_VERSION_U@_gir_SCANNERFLAGS)
 
 MSVCPROJ_GENERATED += $(INTROSPECTION_INTERMEDIATE_ITEMS)
 
-include $(top_srcdir)/build/Makefile.msvc-introspection
+include $(top_srcdir)/win32/Makefile.msvc-introspection
 endif # HAVE_INTROSPECTION
 
-$(MSVCPROJ_GENERATED): $(top_builddir)/build/win32/vs12/rsvg.vs12.headers
+$(MSVCPROJ_GENERATED): $(top_builddir)/win32/vs12/rsvg.vs12.headers
 
 EXTRA_DIST += $(MSVCPROJ_GENERATED)
 
diff --git a/configure.ac b/configure.ac
index 22ef9dd..e196cfa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -316,11 +316,10 @@ tools/Makefile
 doc/Makefile
 doc/version.xml
 config.h.win32
-build/Makefile
-build/win32/Makefile
-build/win32/vs12/Makefile
-build/win32/vs14/Makefile
-build/win32/vs15/Makefile
+win32/Makefile
+win32/vs12/Makefile
+win32/vs14/Makefile
+win32/vs15/Makefile
 ])
 
 AC_CONFIG_FILES([librsvg-${RSVG_API_VERSION}.pc:librsvg.pc.in],[],[RSVG_API_VERSION=$RSVG_API_VERSION])
diff --git a/win32/Makefile-newvs.am b/win32/Makefile-newvs.am
new file mode 100644
index 0000000..3a91862
--- /dev/null
+++ b/win32/Makefile-newvs.am
@@ -0,0 +1,55 @@
+# Centralized autotools file
+# Create the Visual Studio 2012/2013/2015 project files
+# from the Visual Studio 2010 project files
+
+# This autotools file, from GLib, can be used in other projects
+# that have Visual Studio build support.
+
+# Author: Fan, Chun-wei
+# November 05, 2012
+
+# MSVC_BASE_VER: Baseline MSVC 201x version to copy/process project files from (100 for 2010, 120 for 2013)
+# MSVC_BASE_VER_LONG: Long Version of baseline Visual Studio 201x version (2010, 2012, 2013, 14, 15)
+# MSVC_BASE_TOOLSET: Use if baseline MSVC toolset is not in the form v$(MSVC_BASE_VER)0, meaning 
v$(MSVC_BASE_TOOLSET)
+# MSVC_VER_LONG: Long Version of target Visual Studio (2012, 2013, 14 and so on)
+# MSVC_VER: Short Version of target Visual Studio (110 for 2012, 120 for 2013, 140 for 2015, 141 for 2017)
+# MSVC_TOOLSET: Use if target MSVC toolsett is not in the form v $(MSVC_VER)0, meaning v$(MSVC_TOOLSET)
+
+if MSVC_BASE_NO_TOOLSET_SET
+MSVC_BASE_TOOLSET = $(MSVC_BASE_VER)0
+endif
+
+if MSVC_NO_TOOLSET_SET
+MSVC_TOOLSET = $(MSVC_VER)0
+endif
+
+%.sln:
+       sed 's/11\.00/12\.00/g' < $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ > 
$(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp
+       sed 's/$(MSVC_BASE_VER_LONG)/$(MSVC_VER_LONG)/g' < $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp > 
$(top_builddir)/win32/vs$(MSVC_VER)/$@
+       rm $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp
+
+%.txt:
+       sed 's/vs$(MSVC_BASE_VER)/vs$(MSVC_VER)/g' < $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ > 
$(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp
+       sed 's/VS$(MSVC_BASE_VER)/VS$(MSVC_VER)/g' < $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp > 
$(top_builddir)/win32/vs$(MSVC_VER)/$@
+       rm $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp
+
+%.vcxproj:
+       if test -e $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@; then \
+               sed 's/v$(MSVC_BASE_TOOLSET)/v$(MSVC_TOOLSET)/g' < $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ 
$(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+       else \
+               sed 's/v$(MSVC_BASE_TOOLSET)/v$(MSVC_TOOLSET)/g' < 
$(top_builddir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+       fi
+
+%.props: $(top_builddir)/win32/vs$(MSVC_BASE_VER)/Makefile
+       if test -e $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@; then \
+               sed 's/<VSVer>$(MSVC_BASE_VER)<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < 
$(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+       else \
+               sed 's/<VSVer>$(MSVC_BASE_VER)<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < 
$(top_builddir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+       fi
+
+%.vcxproj.filters:
+       if test -e $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@; then \
+               cp $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+       else \
+               cp $(top_builddir)/win32/vs$(MSVC_BASE_VER)/$@ $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+       fi
diff --git a/build/win32/Makefile.am b/win32/Makefile.am
similarity index 90%
rename from build/win32/Makefile.am
rename to win32/Makefile.am
index ae2194e..dfe3961 100644
--- a/build/win32/Makefile.am
+++ b/win32/Makefile.am
@@ -11,7 +11,7 @@ introspection.body.mak: $(MSVC_INTROSPECTION_INTERMEDIATE_FILES)
        -$(RM) introspection.body.mak
        for F in `ls *.msvc.introspect`; do \
                case $$F in \
-                       *)      cat $(top_builddir)/build/win32/$$F >>introspection.body.mak \
+                       *)      cat $(top_builddir)/win32/$$F >>introspection.body.mak \
                        ;; \
                esac; \
        done
diff --git a/build/Makefile.msvc-introspection b/win32/Makefile.msvc-introspection
similarity index 63%
rename from build/Makefile.msvc-introspection
rename to win32/Makefile.msvc-introspection
index 6c90964..1a244e0 100644
--- a/build/Makefile.msvc-introspection
+++ b/win32/Makefile.msvc-introspection
@@ -2,7 +2,7 @@
 # Common autotools file for constructing the g-ir-scanner and
 # g-ir-compiler command lines for Visual Studio builds.
 
-# This is copied from $(srcroot)/build from the gobject-introspection
+# This is copied from $(srcroot)/win32 from the gobject-introspection
 # project, which may be included in projects that support both
 # Visual Studio builds and introspection.
 
@@ -18,7 +18,7 @@
 #    is required unless --headers-only is specified in
 #    YourLib_1_0_gir__MSVC_SCANNERFLAGS)
 #
-#   include $(top_srcdir)/build/Makefile.msvc-introspection
+#   include <this Makefile.msvc-introspection>
 #   MSVC_INTROSPECT_GIRS = YourLib-1.0.gir
 #   YourLib_1_0_gir_NAMESPACE = YourLib # This is optional
 #   YourLib_1_0_gir_VERSION = 1.0 # This is optional
@@ -27,7 +27,9 @@
 #   YourLib_1_0_gir_MSVC_PROGRAM = YourProgram
 #   YourLib_1_0_gir_MSVC_PACKAGES = (Dependent .pc files)
 #   YourLib_1_0_gir_MSVC_INCLUDE_GIRS = (Dependent external .gir's)
-#   YourLiv_1_0_gir_MSVC_EXPORT_PACKAGES = (Packages exported by this .gir)
+#   YourLib_1_0_gir_MSVC_EXPORT_PACKAGES = (Packages exported by this .gir)
+#   YourLib_1_0_gir_MSVC_C_INCLUDES = (List of public C headers which need to be included by
+#                                      consumers at compile time to make use of the API)
 
 # Private functions
 
@@ -63,6 +65,7 @@ _gir_libraries_msvc = $(foreach lib,$($(_gir_name)_MSVC_LIBS),--library=$(lib))
 _gir_packages_msvc = $(foreach pkg,$($(_gir_name)_MSVC_PACKAGES),--pkg=$(pkg))
 _gir_includes_msvc = $(foreach include,$($(_gir_name)_MSVC_INCLUDE_GIRS),--include=$(include))
 _gir_export_packages_msvc = $(foreach pkg,$($(_gir_name)_MSVC_EXPORT_PACKAGES),--pkg-export=$(pkg))
+_gir_c_includes_msvc = $(foreach include,$($(_gir_name)_MSVC_C_INCLUDES),--c-include=$(include))
 
 #
 # Create NMake Makefile Sections for Building Introspection files
@@ -79,47 +82,48 @@ $(if $(or $(findstring --header-only,$($(_gir_name)_MSVC_SCANNERFLAGS)),
           $($(_gir_name)_MSVC_PROGRAM)),,
     $(error Need to define $(_gir_name)_MSVC_LIBS or $(_gir_name)_MSVC_PROGRAM))
 
-$(top_builddir)/build/win32/$(_gir_name)_list:
+$(top_builddir)/win32/$(_gir_name)_list:
        for F in $(_gir_files_msvc); do \
                case $$$$F in \
                *.c|*.cpp|*.cc|*.cxx|*.h|*.hpp|*.hh|*.hxx) \
-                       echo '..\..'$(_gir_source_subdir_msvc)$$$$F 
$(top_builddir)/build/win32/$(_gir_name)_list \
+                       echo '..'$(_gir_source_subdir_msvc)$$$$F >>$(top_builddir)/win32/$(_gir_name)_list \
                        ;; \
                esac; \
        done
 
-$(top_builddir)/build/win32/$(1).msvc.introspect:
-       -$(RM) $(top_builddir)/build/win32/$(1).msvc.introspect
+$(top_builddir)/win32/$(1).msvc.introspect:
+       -$(RM) $(top_builddir)/win32/$(1).msvc.introspect
 
 # Assemble the Command to Run g-ir-scanner
-       echo $(1)': '$(_gir_name)'_list 
'$($(_gir_name)_MSVC_GIR_DEPS)>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  @-echo Generating $$$$@...'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  $$$$(PYTHON) $$$$(G_IR_SCANNER) \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --verbose -no-libtool   \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --namespace='$(_gir_namespace_msvc)'    \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --nsversion='$(_gir_version_msvc)'      \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$(_gir_packages_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$(_gir_libraries_msvc)'        \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$(_gir_program_msvc)'  \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --add-include-path=$$$$(G_IR_INCLUDEDIR)        
\'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$(_gir_includes_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$(_gir_export_packages_msvc)'  \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --cflags-begin  \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$($(_gir_name)_MSVC_CFLAGS)'   \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --cflags-end    \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$($(_gir_name)_MSVC_SCANNERFLAGS)'     \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --filelist='$(_gir_name)'_list  \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  -o $$$$@'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '' >>$(top_builddir)/build/win32/$(1).msvc.introspect
+       echo $(1)': '$(_gir_name)'_list 
'$($(_gir_name)_MSVC_GIR_DEPS)>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  @-echo Generating $$$$@...'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  $$$$(PYTHON) $$$$(G_IR_SCANNER) \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --verbose -no-libtool   \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --namespace='$(_gir_namespace_msvc)'    \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --nsversion='$(_gir_version_msvc)'      \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$(_gir_packages_msvc)' \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$(_gir_libraries_msvc)'        \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$(_gir_program_msvc)'  \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --add-include-path=$$$$(G_IR_INCLUDEDIR)        \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$(_gir_includes_msvc)' \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$(_gir_export_packages_msvc)'  \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$(_gir_c_includes_msvc)'       \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --cflags-begin  \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$($(_gir_name)_MSVC_CFLAGS)'   \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --cflags-end    \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$($(_gir_name)_MSVC_SCANNERFLAGS)'     \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --filelist='$(_gir_name)'_list  \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  -o $$$$@'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '' >>$(top_builddir)/win32/$(1).msvc.introspect
 
 # Finally Assemble the Command to Compile the generated .gir
-       echo '$(_typelib_basename_msvc).typelib: 
'$(_typelib_basename_msvc)'.gir'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  @-echo Compiling $$$$@...'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  $$$$(G_IR_COMPILER)     \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  --includedir=. --debug --verbose        \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  '$(1)'  \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '  -o $$$$@'>>$(top_builddir)/build/win32/$(1).msvc.introspect
-       echo '' >>$(top_builddir)/build/win32/$(1).msvc.introspect
+       echo '$(_typelib_basename_msvc).typelib: 
'$(_typelib_basename_msvc)'.gir'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  @-echo Compiling $$$$@...'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  $$$$(G_IR_COMPILER)     \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  --includedir=. --debug --verbose        \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  '$(1)'  \'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '  -o $$$$@'>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo '' >>$(top_builddir)/win32/$(1).msvc.introspect
 endef
 
 $(foreach gir,$(MSVC_INTROSPECT_GIRS),$(eval $(call gir-nmake-builder,$(gir))))
diff --git a/win32/Makefile.msvcproj b/win32/Makefile.msvcproj
new file mode 100644
index 0000000..2e96e12
--- /dev/null
+++ b/win32/Makefile.msvcproj
@@ -0,0 +1,153 @@
+# Author: Fan, Chun-wei
+# Common Autotools file used to generate Visual Studio 2008+
+# Projects from their templates
+
+# This autotools file, from GLib, can be used in other projects
+# that have Visual Studio build support.
+
+# * Input variables:
+#
+#   MSVCPROJS - List of Projects that should be generated
+#
+# * Simple tutorial
+#
+# Add this to Makefile.am where your library/program is built:
+#   include <this Makefile.msvcproj>
+#   MSVCPROJS = YourProject (can be multiple projects in a single srcdir)
+#   YourProject_FILES = $(libyourlib_1_0_SOURCES)
+#   YourProject_EXCLUDES = ... # list of sources to exclude, separated by '|', wildcards allowed; use random 
unsed value if none
+#   (the following 3 lines if headers need to be installed)
+#   YourProject_HEADERS_DIR = $(libyourlibincludedir)
+#   YourProject_HEADERS_INST = $(libyourlib_1_0_HEADERS)
+#   YourProject_HEADERS_EXCLUDES = ... # <list of headers to exclude from installation, separated by '|', 
wildcards allowed; use random unsed value if none>
+#
+#   dist-hook: \ # (or add to it if it is already there, note the vs9 items will also call the vs10 items in 
the process)
+#      $(top_builddir)/win32/vs9/YourProject.vcproj    \
+#      $(top_builddir)/win32/vs9/YourProject.headers   # if headers need to be installed
+#
+#   --or, if Visual Studio 2013 or later is required--
+#   dist-hook: \ # (or add to it if it is already there, this does -not- call other vs items in the process)
+#      $(top_builddir)/win32/vs12/YourProject.vcxproj  \
+#      $(top_builddir)/win32/vs12/YourProject.vs12.headers     # if headers need to be installed
+
+# Private functions
+
+## Transform the MSVC project filename (no filename extensions) to something which can reference through a 
variable
+## without automake/make complaining, eg Gtk-2.0 -> Gtk_2_0
+_proj_name=$(subst /,_,$(subst -,_,$(subst .,_,$(1))))
+_proj_path_raw:=$(subst $(abs_top_srcdir),,$(abs_srcdir))
+_proj_path=$(subst /,\\,$(_proj_path_raw))
+_proj_subdir_int=$(subst \\\\,\\,\\$(_proj_path)\\)
+_proj_subdir=$(subst \\.\\,\\,$(_proj_subdir_int))
+
+_proj_files_raw=$(subst /,\\,$($(_proj_name)_FILES))
+_proj_files=$(subst $(srcdir)\\,,$(subst $(builddir)\\,,$(subst 
$(top_builddir)\\$(_proj_path)\\,\\,$(_proj_files_raw))))
+_proj_filters=$($(_proj_name)_EXCLUDES)
+
+_proj_headers_raw=$(subst /,\\,$($(_proj_name)_HEADERS_INST))
+_proj_headers=$(subst $(srcdir)\\,,$(subst $(builddir)\\,,$(subst 
$(top_builddir)\\$(_proj_path)\\,\\,$(_proj_headers_raw))))
+_proj_headers_excludes=$($(_proj_name)_HEADERS_EXCLUDES)
+
+_headers_dest_posix=$(subst $(includedir),,$($(_proj_name)_HEADERS_DIR))
+_headers_destdir=$(subst /,\\,$(_headers_dest_posix))
+
+#
+# Creates Visual Studio 2008/2010 projects from items passed in from autotools files
+# $(1) - Base Name of the MSVC project files (outputs)
+#
+
+define msvcproj-builder
+
+$(top_builddir)/win32/vs10/$(1).vcxproj: $(top_builddir)/win32/vs9/$(1).vcproj
+$(top_builddir)/win32/vs10/$(1).vcxproj.filters: $(top_builddir)/win32/vs9/$(1).vcproj
+$(1).sourcefiles: $(top_builddir)/win32/vs9/$(1).vcproj
+$(1).vs10.sourcefiles: $(top_builddir)/win32/vs9/$(1).vcproj
+$(1).vs10.sourcefiles.filters: $(top_builddir)/win32/vs9/$(1).vcproj
+
+$(top_builddir)/win32/vs9/$(1).vcproj: Makefile
+       -$(RM) $(top_builddir)/win32/vs9/$(1).vcproj
+       -$(RM) $(top_builddir)/win32/vs10/$(1).vcxproj
+       -$(RM) $(top_builddir)/win32/vs10/$(1).vcxproj.filters
+       -$(RM) $(top_builddir)/win32/vs11/$(1).vcxproj
+       -$(RM) $(top_builddir)/win32/vs11/$(1).vcxproj.filters
+       -$(RM) $(top_builddir)/win32/vs12/$(1).vcxproj
+       -$(RM) $(top_builddir)/win32/vs12/$(1).vcxproj.filters
+       -$(RM) $(top_builddir)/win32/vs14/$(1).vcxproj
+       -$(RM) $(top_builddir)/win32/vs14/$(1).vcxproj.filters
+
+
+       for F in $(_proj_files); do \
+               case $$$$F in \
+               $(_proj_filters)) \
+                       ;; \
+               *.c|*.cpp|*.cc|*.cxx) \
+                       echo '   <File RelativePath="..\..'$(_proj_subdir)$$$$F'" />' >>$(1).sourcefiles && \
+                       echo '   <ClCompile Include="..\..'$(_proj_subdir)$$$$F'" />' >>$(1).vs10.sourcefiles 
&& \
+                       echo '   <ClCompile Include="..\..'$(_proj_subdir)$$$$F'"><Filter>Source 
Files</Filter></ClCompile>' >>$(1).vs10.sourcefiles.filters \
+                       ;; \
+               esac;   \
+       done
+
+
+       $(CPP) -P - <$(top_srcdir)/win32/vs9/$(1).vcprojin >$(top_builddir)/win32/vs9/$(1).vcproj
+       $(CPP) -P - <$(top_srcdir)/win32/vs10/$(1).vcxprojin >$(top_builddir)/win32/vs10/$(1).vcxproj
+       $(CPP) -P - <$(top_srcdir)/win32/vs10/$(1).vcxproj.filtersin 
$(top_builddir)/win32/vs10/$(1).vcxproj.filters
+       $(RM) $(1).sourcefiles
+       $(RM) $(1).vs10.sourcefiles
+       $(RM) $(1).vs10.sourcefiles.filters
+
+$(top_builddir)/win32/vs10/$(1).vs10.headers: $(top_builddir)/win32/vs9/$(1).headers
+
+$(top_builddir)/win32/vs9/$(1).headers: Makefile
+       -$(RM) $(top_builddir)/win32/vs9/$(1).headers
+       -$(RM) $(top_builddir)/win32/vs10/$(1).vs10.headers
+
+       for F in $(_proj_headers); do \
+               case $$$$F in \
+               $(_proj_headers_excludes)) \
+                       ;; \
+               *.h|*.hpp|*.hh|*.hxx) \
+                       echo 'copy ..\..'$(_proj_subdir)$$$$F' 
$$$$(CopyDir)\include'$(_headers_destdir)'\'$$$$F'&#x0D;&#x0A;' >>$(top_builddir)/win32/vs9/$(1).headers && \
+                       echo 'copy ..\..'$(_proj_subdir)$$$$F' 
$$$$(CopyDir)\include'$(_headers_destdir)'\'$$$$F >>$(top_builddir)/win32/vs10/$(1).vs10.headers \
+                       ;; \
+               esac;   \
+       done
+
+$(top_builddir)/win32/vs12/$(1).vcxproj.filters: $(top_builddir)/win32/vs12/$(1).vcxproj
+
+$(top_builddir)/win32/vs12/$(1).vcxproj: Makefile
+       -$(RM) $(top_builddir)/win32/vs14/$(1).vcxproj
+       -$(RM) $(top_builddir)/win32/vs14/$(1).vcxproj.filters
+
+       for F in $(_proj_files); do \
+               case $$$$F in \
+               $(_proj_filters)) \
+                       ;; \
+               *.c|*.cpp|*.cc|*.cxx) \
+                       echo '   <ClCompile Include="..\..'$(_proj_subdir)$$$$F'" />' >>$(1).vs12.sourcefiles 
&& \
+                       echo '   <ClCompile Include="..\..'$(_proj_subdir)$$$$F'"><Filter>Source 
Files</Filter></ClCompile>' >>$(1).vs12.sourcefiles.filters \
+                       ;; \
+               esac;   \
+       done
+
+       $(CPP) -P - <$(top_srcdir)/win32/vs12/$(1).vcxprojin >$(top_builddir)/win32/vs12/$(1).vcxproj
+       $(CPP) -P - <$(top_srcdir)/win32/vs12/$(1).vcxproj.filtersin 
$(top_builddir)/win32/vs12/$(1).vcxproj.filters
+       $(RM) $(1).vs12.sourcefiles
+       $(RM) $(1).vs12.sourcefiles.filters
+
+$(top_builddir)/win32/vs12/$(1).vs12.headers: Makefile
+       -$(RM) $(top_builddir)/win32/vs12/$(1).vs12.headers
+
+       for F in $(_proj_headers); do \
+               case $$$$F in \
+               $(_proj_headers_excludes)) \
+                       ;; \
+               *.h|*.hpp|*.hh|*.hxx) \
+                       echo 'copy ..\..'$(_proj_subdir)$$$$F' 
$$$$(CopyDir)\include'$(_headers_destdir)'\'$$$$F >>$(top_builddir)/win32/vs12/$(1).vs12.headers \
+                       ;; \
+               esac;   \
+       done
+
+endef
+
+$(foreach proj,$(MSVCPROJS),$(eval $(call msvcproj-builder,$(proj))))
diff --git a/build/win32/detectenv-msvc.mak b/win32/detectenv-msvc.mak
similarity index 94%
rename from build/win32/detectenv-msvc.mak
rename to win32/detectenv-msvc.mak
index 61f979d..6fd96cc 100644
--- a/build/win32/detectenv-msvc.mak
+++ b/win32/detectenv-msvc.mak
@@ -40,8 +40,10 @@ VSVER = 10
 VSVER = 11
 !elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
 VSVER = 12
-!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 2000
+!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 1910
 VSVER = 14
+!elseif $(VCVERSION) > 1909 && $(VCVERSION) < 2000
+VSVER = 15
 !else
 VSVER = 0
 !endif
diff --git a/build/win32/introspection-msvc.mak b/win32/introspection-msvc.mak
similarity index 96%
rename from build/win32/introspection-msvc.mak
rename to win32/introspection-msvc.mak
index 8739844..e7cb10c 100644
--- a/build/win32/introspection-msvc.mak
+++ b/win32/introspection-msvc.mak
@@ -1,6 +1,6 @@
 # Common NMake Makefile module for checking the build environment is sane
 # for building introspection files under MSVC/NMake.
-# This can be copied from $(gi_srcroot)\build\win32 for GNOME items
+# This can be copied from $(gi_srcroot)\win32 for GNOME items
 # that support MSVC builds and introspection under MSVC.
 
 # Can override with env vars as needed
@@ -8,7 +8,7 @@
 # Change or pass in or set the following to suit your environment
 
 !if "$(PREFIX)" == ""
-PREFIX = ..\..\..\vs$(VSVER)\$(PLAT)
+PREFIX = ..\..\vs$(VSVER)\$(PLAT)
 !endif
 
 !if ![setlocal]                && \
diff --git a/build/win32/rsvg-introspection-msvc.mak b/win32/rsvg-introspection-msvc.mak
similarity index 100%
rename from build/win32/rsvg-introspection-msvc.mak
rename to win32/rsvg-introspection-msvc.mak
diff --git a/build/win32/rsvg-rust.mak b/win32/rsvg-rust.mak
similarity index 82%
rename from build/win32/rsvg-rust.mak
rename to win32/rsvg-rust.mak
index e33e62a..f992a3a 100644
--- a/build/win32/rsvg-rust.mak
+++ b/win32/rsvg-rust.mak
@@ -22,17 +22,17 @@ all: vs$(VSVER)\$(CFG)\$(PLAT)\obj\rsvg_internals\$(CFG)\rsvg_internals.lib
 vs$(VSVER)\$(CFG)\$(PLAT)\obj\rsvg_internals\$(CFG)\rsvg_internals.lib:
        @set CARGO_TARGET_DIR=..\build\win32\vs$(VSVER)\$(CFG)\$(PLAT)\obj\rsvg_internals
        @set GTK_LIB_DIR=..\..\vs$(VSVER)\$(PLAT)\lib;$(LIB)
-       @cd ..\..\rust
+       @cd ..\rust
        $(CARGO_CMD) --verbose
-       @cd ..\build\win32\vs$(VSVER)
+       @cd ..\win32\vs$(VSVER)
        @set GTK_LIB_DIR=
        @set CARGO_TARGET_DIR=
 
 clean:
-       @set CARGO_TARGET_DIR=..\build\win32\vs$(VSVER)\$(CFG)\$(PLAT)\obj\rsvg_internals
-       @cd ..\..\rust
+       @set CARGO_TARGET_DIR=..\win32\vs$(VSVER)\$(CFG)\$(PLAT)\obj\rsvg_internals
+       @cd ..\rust
        @$(CARGO) clean
-       @cd ..\build\win32\vs$(VSVER)
+       @cd ..\win32\vs$(VSVER)
        @set CARGO_TARGET_DIR=
        
 !else
diff --git a/build/win32/vs12/Makefile.am b/win32/vs12/Makefile.am
similarity index 71%
rename from build/win32/vs12/Makefile.am
rename to win32/vs12/Makefile.am
index b849b99..c0d113d 100644
--- a/build/win32/vs12/Makefile.am
+++ b/win32/vs12/Makefile.am
@@ -24,10 +24,10 @@ EXTRA_DIST =        \
        README.txt                              \
        $(GENERATED_ITEMS)
 
-rsvg-install.props: $(top_srcdir)/build/win32/vs12/rsvg-install.propsin rsvg.vs12.headers
-       -$(RM) $(top_builddir)/build/win32/vs14/rsvg-install.props
-       -$(RM) $(top_builddir)/build/win32/vs15/rsvg-install.props
-       $(CPP) -P - <$(top_srcdir)/build/win32/vs12/rsvg-install.propsin >$@
+rsvg-install.props: $(top_srcdir)/win32/vs12/rsvg-install.propsin rsvg.vs12.headers
+       -$(RM) $(top_builddir)/win32/vs14/rsvg-install.props
+       -$(RM) $(top_builddir)/win32/vs15/rsvg-install.props
+       $(CPP) -P - <$(top_srcdir)/win32/vs12/rsvg-install.propsin >$@
        rm rsvg.vs12.headers
 
 DISTCLEANFILES = $(GENERATED_ITEMS)
diff --git a/build/win32/vs12/README.txt b/win32/vs12/README.txt
similarity index 100%
rename from build/win32/vs12/README.txt
rename to win32/vs12/README.txt
diff --git a/build/win32/vs12/libpixbufloader-svg.vcxproj b/win32/vs12/libpixbufloader-svg.vcxproj
similarity index 93%
rename from build/win32/vs12/libpixbufloader-svg.vcxproj
rename to win32/vs12/libpixbufloader-svg.vcxproj
index a56a8c9..a015a7d 100644
--- a/build/win32/vs12/libpixbufloader-svg.vcxproj
+++ b/win32/vs12/libpixbufloader-svg.vcxproj
@@ -66,18 +66,8 @@
     <Import Project="rsvg-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Debug'"><LinkIncremental>true</LinkIncremental></PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Release'"><LinkIncremental>false</LinkIncremental></PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
@@ -165,7 +155,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gdk-pixbuf-loader\io-svg.c" />
+    <ClCompile Include="..\..\gdk-pixbuf-loader\io-svg.c" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="rsvg.vcxproj">
diff --git a/build/win32/vs12/libpixbufloader-svg.vcxproj.filters 
b/win32/vs12/libpixbufloader-svg.vcxproj.filters
similarity index 89%
rename from build/win32/vs12/libpixbufloader-svg.vcxproj.filters
rename to win32/vs12/libpixbufloader-svg.vcxproj.filters
index bf12661..df7432a 100644
--- a/build/win32/vs12/libpixbufloader-svg.vcxproj.filters
+++ b/win32/vs12/libpixbufloader-svg.vcxproj.filters
@@ -15,6 +15,6 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gdk-pixbuf-loader\io-svg.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\gdk-pixbuf-loader\io-svg.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/librsvg.sln b/win32/vs12/librsvg.sln
similarity index 100%
rename from build/win32/vs12/librsvg.sln
rename to win32/vs12/librsvg.sln
diff --git a/build/win32/vs12/rsvg-build-defines.props b/win32/vs12/rsvg-build-defines.props
similarity index 89%
rename from build/win32/vs12/rsvg-build-defines.props
rename to win32/vs12/rsvg-build-defines.props
index 9592ed8..8d62f8f 100644
--- a/build/win32/vs12/rsvg-build-defines.props
+++ b/win32/vs12/rsvg-build-defines.props
@@ -23,7 +23,7 @@ nmake -f rsvg-rust.mak CFG=$(Configuration)</RsvgRustNMakeCmd>
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
diff --git a/build/win32/vs12/rsvg-convert.vcxproj.filtersin b/win32/vs12/rsvg-convert.vcxproj.filtersin
similarity index 100%
rename from build/win32/vs12/rsvg-convert.vcxproj.filtersin
rename to win32/vs12/rsvg-convert.vcxproj.filtersin
diff --git a/build/win32/vs12/rsvg-convert.vcxprojin b/win32/vs12/rsvg-convert.vcxprojin
similarity index 93%
rename from build/win32/vs12/rsvg-convert.vcxprojin
rename to win32/vs12/rsvg-convert.vcxprojin
index 8ed9162..b59471d 100644
--- a/build/win32/vs12/rsvg-convert.vcxprojin
+++ b/win32/vs12/rsvg-convert.vcxprojin
@@ -66,18 +66,8 @@
     <Import Project="rsvg-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Debug'"><LinkIncremental>true</LinkIncremental></PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Release'"><LinkIncremental>false</LinkIncremental></PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
diff --git a/build/win32/vs12/rsvg-gen-srcs.props b/win32/vs12/rsvg-gen-srcs.props
similarity index 84%
rename from build/win32/vs12/rsvg-gen-srcs.props
rename to win32/vs12/rsvg-gen-srcs.props
index ac961e1..fd2c20f 100644
--- a/build/win32/vs12/rsvg-gen-srcs.props
+++ b/win32/vs12/rsvg-gen-srcs.props
@@ -4,10 +4,10 @@
     <Import Project="rsvg-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros">
-    <CopyConfigH>copy ..\..\..\config.h.win32 ..\..\..\config.h</CopyConfigH>
+    <CopyConfigH>copy ..\..\config.h.win32 ..\..\config.h</CopyConfigH>
     <GenerateRsvgDef>
 echo EXPORTS &gt; $(DefDir)\rsvg.def
-cl  /EP ..\..\..\rsvg.symbols &gt;&gt; $(DefDir)\rsvg.def
+cl  /EP ..\..\rsvg.symbols &gt;&gt; $(DefDir)\rsvg.def
      </GenerateRsvgDef>
   </PropertyGroup>
   <PropertyGroup>
diff --git a/build/win32/vs12/rsvg-install.propsin b/win32/vs12/rsvg-install.propsin
similarity index 100%
rename from build/win32/vs12/rsvg-install.propsin
rename to win32/vs12/rsvg-install.propsin
diff --git a/build/win32/vs12/rsvg-install.vcxproj b/win32/vs12/rsvg-install.vcxproj
similarity index 79%
rename from build/win32/vs12/rsvg-install.vcxproj
rename to win32/vs12/rsvg-install.vcxproj
index 017c556..46e2beb 100644
--- a/build/win32/vs12/rsvg-install.vcxproj
+++ b/win32/vs12/rsvg-install.vcxproj
@@ -75,18 +75,12 @@
   </ItemDefinitionGroup>
   <ItemGroup>
     <CustomBuild Include="placeholder">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying Build Results...</Message>
-      <Command 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(RsvgDoInstall)$(RsvgPostInstall)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">placeholder;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying Build Results...</Message>
-      <Command 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(RsvgDoInstall)$(RsvgPostInstall)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">placeholder;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying Build Results...</Message>
-      <Command 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(RsvgDoInstall)$(RsvgPostInstall)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">placeholder;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying Build Results...</Message>
-      <Command 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(RsvgDoInstall)$(RsvgPostInstall)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">placeholder;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)'=='Debug'">Copying Build Results...</Message>
+      <Command Condition="'$(Configuration)'=='Debug'">$(RsvgDoInstall)$(RsvgPostInstall)</Command>
+      <Outputs Condition="'$(Configuration)'=='Debug'">placeholder;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)'=='Release'">Copying Build Results...</Message>
+      <Command Condition="'$(Configuration)'=='Release'">$(RsvgDoInstall)$(RsvgPostInstall)</Command>
+      <Outputs Condition="'$(Configuration)'=='Release'">placeholder;%(Outputs)</Outputs>
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
diff --git a/build/win32/vs12/rsvg-rust.vcxproj b/win32/vs12/rsvg-rust.vcxproj
similarity index 100%
rename from build/win32/vs12/rsvg-rust.vcxproj
rename to win32/vs12/rsvg-rust.vcxproj
diff --git a/build/win32/vs12/rsvg-version-paths.props b/win32/vs12/rsvg-version-paths.props
similarity index 95%
rename from build/win32/vs12/rsvg-version-paths.props
rename to win32/vs12/rsvg-version-paths.props
index a26f07d..e4ec88f 100644
--- a/build/win32/vs12/rsvg-version-paths.props
+++ b/win32/vs12/rsvg-version-paths.props
@@ -5,7 +5,7 @@
   <PropertyGroup Label="UserMacros">
     <ApiVersion>2.0</ApiVersion>
     <VSVer>12</VSVer>
-    <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
+    <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
     <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
     <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)</DefDir>
     <RsvgLibtoolCompatibleDllPrefix>lib</RsvgLibtoolCompatibleDllPrefix>
diff --git a/build/win32/vs12/rsvg-view-3.vcxproj b/win32/vs12/rsvg-view-3.vcxproj
similarity index 93%
rename from build/win32/vs12/rsvg-view-3.vcxproj
rename to win32/vs12/rsvg-view-3.vcxproj
index 9e2d877..0f23f41 100644
--- a/build/win32/vs12/rsvg-view-3.vcxproj
+++ b/win32/vs12/rsvg-view-3.vcxproj
@@ -66,18 +66,8 @@
     <Import Project="rsvg-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Debug'"><LinkIncremental>true</LinkIncremental></PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Release'"><LinkIncremental>false</LinkIncremental></PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
@@ -163,7 +153,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\rsvg-view.c" />
+    <ClCompile Include="..\..\rsvg-view.c" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="rsvg.vcxproj">
diff --git a/build/win32/vs12/rsvg-view-3.vcxproj.filters b/win32/vs12/rsvg-view-3.vcxproj.filters
similarity index 90%
rename from build/win32/vs12/rsvg-view-3.vcxproj.filters
rename to win32/vs12/rsvg-view-3.vcxproj.filters
index d96ce38..003da32 100644
--- a/build/win32/vs12/rsvg-view-3.vcxproj.filters
+++ b/win32/vs12/rsvg-view-3.vcxproj.filters
@@ -15,6 +15,6 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\rsvg-view.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\rsvg-view.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/rsvg.vcxproj.filtersin b/win32/vs12/rsvg.vcxproj.filtersin
similarity index 82%
rename from build/win32/vs12/rsvg.vcxproj.filtersin
rename to win32/vs12/rsvg.vcxproj.filtersin
index 5615420..7d777f1 100644
--- a/build/win32/vs12/rsvg.vcxproj.filtersin
+++ b/win32/vs12/rsvg.vcxproj.filtersin
@@ -18,7 +18,7 @@
 #include "rsvg.vs12.sourcefiles.filters"
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
-    <CustomBuild Include="..\..\..\rsvg.symbols"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\rsvg.symbols"><Filter>Resource Files</Filter></CustomBuild>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/rsvg.vcxprojin b/win32/vs12/rsvg.vcxprojin
similarity index 75%
rename from build/win32/vs12/rsvg.vcxprojin
rename to win32/vs12/rsvg.vcxprojin
index d68eb4e..2c11f46 100644
--- a/build/win32/vs12/rsvg.vcxprojin
+++ b/win32/vs12/rsvg.vcxprojin
@@ -66,18 +66,8 @@
     <Import Project="rsvg-gen-srcs.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Debug'"><LinkIncremental>true</LinkIncremental></PropertyGroup>
+  <PropertyGroup 
Condition="'$(Configuration)'=='Release'"><LinkIncremental>false</LinkIncremental></PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
@@ -184,33 +174,21 @@
 #include "rsvg.vs12.sourcefiles"
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\config.h.win32">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying config.h...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyConfigH)</Command>
-      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying config.h...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyConfigH)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\config.h;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying config.h...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyConfigH)</Command>
-      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying config.h...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyConfigH)</Command>
-      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\config.h;%(Outputs)</Outputs>
+    <CustomBuild Include="..\..\config.h.win32">
+      <Message Condition="'$(Configuration)'=='Debug'">Copying config.h...</Message>
+      <Command Condition="'$(Configuration)'=='Debug'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)'=='Release'">Copying config.h...</Message>
+      <Command Condition="'$(Configuration)'=='Release'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)'=='Release'">..\..\config.h;%(Outputs)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="..\..\..\rsvg.symbols">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating 
$(ProjectName).def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateRsvgDef)</Command>
-      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)$(ProjectName).def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating 
$(ProjectName).def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateRsvgDef)</Command>
-      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)$(ProjectName).def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating 
$(ProjectName).def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateRsvgDef)</Command>
-      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)$(ProjectName).def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating 
$(ProjectName).def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateRsvgDef)</Command>
-      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)$(ProjectName).def;%(Outputs)</Outputs>
+    <CustomBuild Include="..\..\rsvg.symbols">
+      <Message Condition="'$(Configuration)'=='Debug'">Generating $(ProjectName).def...</Message>
+      <Command Condition="'$(Configuration)'=='Debug'">$(GenerateRsvgDef)</Command>
+      <Outputs Condition="'$(Configuration)'=='Debug'">$(IntDir)$(ProjectName).def;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)'=='Release'">Generating $(ProjectName).def...</Message>
+      <Command Condition="'$(Configuration)'=='Release'">$(GenerateRsvgDef)</Command>
+      <Outputs Condition="'$(Configuration)'=='Release'">$(IntDir)$(ProjectName).def;%(Outputs)</Outputs>
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
diff --git a/build/win32/vs14/Makefile.am b/win32/vs14/Makefile.am
similarity index 87%
rename from build/win32/vs14/Makefile.am
rename to win32/vs14/Makefile.am
index b94e3b0..75ddb33 100644
--- a/build/win32/vs14/Makefile.am
+++ b/win32/vs14/Makefile.am
@@ -14,14 +14,13 @@ EXTRA_DIST =    \
        rsvg-install.vcxproj                    \
        rsvg-view-3.vcxproj                     \
        rsvg-view-3.vcxproj.filters             \
-       README.txt 
+       README.txt
 
 DISTCLEANFILES = $(EXTRA_DIST)
 
 MSVC_BASE_VER = 12
 MSVC_BASE_VER_LONG = 2013
 MSVC_VER = 14
-MSVC_FORMAT_VER = 12
 MSVC_VER_LONG = 14
 
-include $(top_srcdir)/build/Makefile-newvs.am
+include $(top_srcdir)/win32/Makefile-newvs.am
diff --git a/build/win32/vs15/Makefile.am b/win32/vs15/Makefile.am
similarity index 87%
rename from build/win32/vs15/Makefile.am
rename to win32/vs15/Makefile.am
index 8c50708..04971a5 100644
--- a/build/win32/vs15/Makefile.am
+++ b/win32/vs15/Makefile.am
@@ -14,15 +14,14 @@ EXTRA_DIST =    \
        rsvg-install.vcxproj                    \
        rsvg-view-3.vcxproj                     \
        rsvg-view-3.vcxproj.filters             \
-       README.txt 
+       README.txt
 
 DISTCLEANFILES = $(EXTRA_DIST)
 
 MSVC_BASE_VER = 12
 MSVC_BASE_VER_LONG = 2013
 MSVC_VER = 15
-MSVC_FORMAT_VER = 12
 MSVC_VER_LONG = 15
 MSVC_TOOLSET = 141
 
-include $(top_srcdir)/build/Makefile-newvs.am
+include $(top_srcdir)/win32/Makefile-newvs.am



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