[gtk+] Visual Studio builds: Move project files to win32/



commit ea58ebe76d1854b0b42ad960a3d3e61203e7a3c5
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Mon Jan 9 15:33:25 2017 +0800

    Visual Studio builds: Move project files to win32/
    
    It was suggested that the project files to be moved to win32/, so that we can
    have one less layer of directories we need to go down into to reach the project files.

 Makefile.am                                        |    2 +-
 build/Makefile-newvs.am                            |   47 ------
 build/Makefile.am                                  |    5 -
 build/Makefile.msvcproj                            |  154 --------------------
 build/win32/vs12/gsk-4.vcxproj.filtersin           |   39 -----
 build/win32/vs12/gtk-4.vcxproj.filtersin           |   46 ------
 build/win32/vs12/gtk4-builder-tool.vcxproj.filters |   20 ---
 build/win32/vs12/gtk4-gen-srcs.props               |  100 -------------
 .../win32/vs12/gtk4-query-settings.vcxproj.filters |   20 ---
 configure.ac                                       |    9 +-
 demos/gtk-demo/Makefile.am                         |    6 +-
 demos/icon-browser/Makefile.am                     |    4 +-
 gdk/Makefile.am                                    |   16 +-
 gdk/win32/Makefile.am                              |    6 +-
 gsk/Makefile.am                                    |   22 ++--
 gtk/Makefile.am                                    |   12 +-
 win32/Makefile-newvs.am                            |   46 ++++++
 {build/win32 => win32}/Makefile.am                 |    2 +-
 {build => win32}/Makefile.msvc-introspection       |   64 ++++----
 win32/Makefile.msvcproj                            |  153 +++++++++++++++++++
 {build/win32 => win32}/detectenv-msvc.mak          |    0
 {build/win32 => win32}/gen-enums.batin             |    2 +-
 {build/win32 => win32}/gtk-introspection-msvc.mak  |    0
 {build/win32 => win32}/gtkpc.py                    |    0
 {build/win32 => win32}/introspection-msvc.mak      |    2 +-
 {build/win32 => win32}/pc_base.py                  |    2 +-
 {build/win32 => win32}/replace.py                  |    0
 {build/win32 => win32}/vs12/Makefile.am            |    6 +-
 {build/win32 => win32}/vs12/README.txt             |    0
 .../win32 => win32}/vs12/gdk-4.vcxproj.filtersin   |    2 +-
 {build/win32 => win32}/vs12/gdk-4.vcxprojin        |   10 +-
 .../vs12/gdk4-win32.vcxproj.filtersin              |    0
 {build/win32 => win32}/vs12/gdk4-win32.vcxprojin   |    8 +-
 win32/vs12/gsk-4.vcxproj.filtersin                 |   39 +++++
 {build/win32 => win32}/vs12/gsk-4.vcxprojin        |   66 ++++----
 {build/win32 => win32}/vs12/gtk+-4.sln             |    0
 win32/vs12/gtk-4.vcxproj.filtersin                 |   46 ++++++
 {build/win32 => win32}/vs12/gtk-4.vcxprojin        |   82 +++++-----
 .../win32 => win32}/vs12/gtk4-build-defines.props  |    2 +-
 .../win32 => win32}/vs12/gtk4-builder-tool.vcxproj |    2 +-
 .../vs12/gtk4-builder-tool.vcxproj.filters         |    2 +-
 .../vs12/gtk4-demo-application.vcxproj.filtersin   |    0
 .../vs12/gtk4-demo-application.vcxprojin           |    0
 .../vs12/gtk4-demo.vcxproj.filtersin               |    0
 {build/win32 => win32}/vs12/gtk4-demo.vcxprojin    |    8 +-
 .../vs12/gtk4-encode-symbolic-svg.vcxproj          |   10 +-
 .../vs12/gtk4-encode-symbolic-svg.vcxproj.filters  |    2 +-
 win32/vs12/gtk4-gen-srcs.props                     |  100 +++++++++++++
 .../vs12/gtk4-icon-browser.vcxproj.filtersin       |    0
 .../vs12/gtk4-icon-browser.vcxprojin               |    8 +-
 {build/win32 => win32}/vs12/gtk4-install.propsin   |   14 +-
 {build/win32 => win32}/vs12/gtk4-install.vcxproj   |    2 +-
 .../vs12/gtk4-install.vcxproj.filters              |    2 +-
 {build/win32 => win32}/vs12/gtk4-prebuild.vcxproj  |   32 ++--
 .../vs12/gtk4-prebuild.vcxproj.filters             |    8 +-
 .../vs12/gtk4-query-settings.vcxproj               |    2 +-
 .../vs12/gtk4-query-settings.vcxproj.filters       |    2 +-
 .../vs12/gtk4-update-icon-cache.vcxproj            |    2 +-
 .../vs12/gtk4-update-icon-cache.vcxproj.filters    |    2 +-
 .../vs12/gtk4-version-paths.props.in               |    4 +-
 {build/win32 => win32}/vs14/Makefile.am            |    2 +-
 61 files changed, 598 insertions(+), 646 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 7ec4919..f88eab4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,7 @@
 include $(top_srcdir)/Makefile.decl
 
 SRC_SUBDIRS = gdk gsk gtk modules demos tests testsuite examples
-SUBDIRS = po po-properties $(SRC_SUBDIRS) docs build
+SUBDIRS = po po-properties $(SRC_SUBDIRS) docs win32
 
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 
diff --git a/configure.ac b/configure.ac
index b70a89a..7bbe7ef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2021,11 +2021,10 @@ docs/reference/gtk/Makefile
 docs/reference/gtk/gtk4.types
 docs/reference/gtk/version.xml
 docs/tools/Makefile
-build/Makefile
-build/win32/Makefile
-build/win32/vs12/Makefile
-build/win32/vs12/gtk4-version-paths.props
-build/win32/vs14/Makefile
+win32/Makefile
+win32/vs12/Makefile
+win32/vs12/gtk4-version-paths.props
+win32/vs14/Makefile
 gdk/Makefile
 gdk/broadway/Makefile
 gdk/x11/Makefile
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am
index 564c6de..b3bcd7d 100644
--- a/demos/gtk-demo/Makefile.am
+++ b/demos/gtk-demo/Makefile.am
@@ -194,11 +194,11 @@ gtk4_demo_EXCLUDES = font_features.c|pagesetup.c
 gtk4_demo_application_FILES = $(gtk4_demo_application_SOURCES)
 gtk4_demo_application_EXCLUDES = dummy
 
-include $(top_srcdir)/build/Makefile.msvcproj
+include $(top_srcdir)/win32/Makefile.msvcproj
 
 dist-hook: \
-       $(top_builddir)/build/win32/vs12/gtk4-demo.vcxproj      \
-       $(top_builddir)/build/win32/vs12/gtk4-demo-application.vcxproj
+       $(top_builddir)/win32/vs12/gtk4-demo.vcxproj    \
+       $(top_builddir)/win32/vs12/gtk4-demo-application.vcxproj
 
 DISTCLEANFILES = demos.h demos.h.win32
 
diff --git a/demos/icon-browser/Makefile.am b/demos/icon-browser/Makefile.am
index 03ba276..039b952 100644
--- a/demos/icon-browser/Makefile.am
+++ b/demos/icon-browser/Makefile.am
@@ -40,8 +40,8 @@ MSVCPROJS = gtk4-icon-browser
 gtk4_icon_browser_FILES = $(gtk4_icon_browser_SOURCES)
 gtk4_icon_browser_EXCLUDES = dummy
 
-include $(top_srcdir)/build/Makefile.msvcproj
+include $(top_srcdir)/win32/Makefile.msvcproj
 
-dist-hook: $(top_builddir)/build/win32/vs12/gtk4-icon-browser.vcxproj
+dist-hook: $(top_builddir)/win32/vs12/gtk4-icon-browser.vcxproj
 
 -include $(top_srcdir)/git.mk
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
index 064fe39..162016a 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -476,7 +476,7 @@ gdk_4_HEADERS_INST = \
 
 gdk_4_HEADERS_EXCLUDES = dummy
 
-include $(top_srcdir)/build/Makefile.msvcproj
+include $(top_srcdir)/win32/Makefile.msvcproj
 
 if HAVE_INTROSPECTION
 # Introspection Items for MSVC
@@ -487,10 +487,10 @@ BASE_MSVC_GIR_CFLAGS =                    \
        -I../.. -I../../gdk -I.../../gdk/win32
 
 INTROSPECTION_INTERMEDIATE_ITEMS = \
-       $(top_builddir)/build/win32/Gdk-4.0.gir.msvc.introspect \
-       $(top_builddir)/build/win32/Gdk_4_0_gir_list                    \
-       $(top_builddir)/build/win32/GdkWin32-4.0.gir.msvc.introspect    \
-       $(top_builddir)/build/win32/GdkWin32_4_0_gir_list
+       $(top_builddir)/win32/Gdk-4.0.gir.msvc.introspect       \
+       $(top_builddir)/win32/Gdk_4_0_gir_list                  \
+       $(top_builddir)/win32/GdkWin32-4.0.gir.msvc.introspect  \
+       $(top_builddir)/win32/GdkWin32_4_0_gir_list
 
 Gdk_4_0_gir_MSVC_FILES = $(introspection_files)
 Gdk_4_0_gir_MSVC_EXPORT_PACKAGES = $(Gdk_noinst_4_0_gir_EXPORT_PACKAGES)
@@ -508,15 +508,15 @@ GdkWin32_4_0_gir_MSVC_SCANNERFLAGS =      \
        --c-include="gdk/gdkwin32.h"    \
        --include-uninstalled=./Gdk-4.0.gir
 
-include $(top_srcdir)/build/Makefile.msvc-introspection
+include $(top_srcdir)/win32/Makefile.msvc-introspection
 
 else
 INTROSPECTION_INTERMEDIATE_ITEMS =
 endif
 
 dist-hook: \
-       $(top_builddir)/build/win32/vs12/gdk-4.vcxproj  \
-       $(top_builddir)/build/win32/vs12/gdk-4.vs12.headers     \
+       $(top_builddir)/win32/vs12/gdk-4.vcxproj        \
+       $(top_builddir)/win32/vs12/gdk-4.vs12.headers   \
        $(INTROSPECTION_INTERMEDIATE_ITEMS)
 
 DISTCLEANFILES = gdkconfig.h stamp-gc-h
diff --git a/gdk/win32/Makefile.am b/gdk/win32/Makefile.am
index 991dc9e..596f183 100644
--- a/gdk/win32/Makefile.am
+++ b/gdk/win32/Makefile.am
@@ -99,10 +99,10 @@ gdk4_win32_HEADERS_INST = $(libgdkwin32include_HEADERS)
 
 gdk4_win32_HEADERS_EXCLUDES = dummy
 
-include $(top_srcdir)/build/Makefile.msvcproj
+include $(top_srcdir)/win32/Makefile.msvcproj
 
 dist-hook: \
-       $(top_builddir)/build/win32/vs12/gdk4-win32.vcxproj     \
-       $(top_builddir)/build/win32/vs12/gdk4-win32.vs12.headers
+       $(top_builddir)/win32/vs12/gdk4-win32.vcxproj   \
+       $(top_builddir)/win32/vs12/gdk4-win32.vs12.headers
 
 -include $(top_srcdir)/git.mk
diff --git a/gsk/Makefile.am b/gsk/Makefile.am
index 2a309ef..e176dd2 100644
--- a/gsk/Makefile.am
+++ b/gsk/Makefile.am
@@ -256,14 +256,14 @@ gsk_4_HEADERS_DIR = $(gskincludedir)
 gsk_4_HEADERS_INST = $(gskinclude_HEADERS)
 gsk_4_HEADERS_EXCLUDES = dummy
 
-include $(top_srcdir)/build/Makefile.msvcproj
+include $(top_srcdir)/win32/Makefile.msvcproj
 
-$(top_builddir)/build/win32/gsk.enum.headers: Makefile $(gsk_public_source_h)
-       -$(RM) $(top_builddir)/build/win32/gsk.enum.headers
+$(top_builddir)/win32/gsk.enum.headers: Makefile $(gsk_public_source_h)
+       -$(RM) $(top_builddir)/win32/gsk.enum.headers
        for F in $(gsk_public_source_h); do \
                case $$F in \
                *.h) \
-                       echo $$F' ^'>>$(top_builddir)/build/win32/gsk.enum.headers \
+                       echo $$F' ^'>>$(top_builddir)/win32/gsk.enum.headers \
                        ;; \
                esac \
        done
@@ -277,9 +277,9 @@ BASE_MSVC_GIR_CFLAGS =                      \
        -I../.. -I../../gdk -I.../../gsk
 
 INTROSPECTION_INTERMEDIATE_ITEMS = \
-       $(top_builddir)/build/win32/Gsk-4.0.gir.msvc.introspect \
-       $(top_builddir)/build/win32/Gsk_4_0_gir_list            \
-       $(top_builddir)/build/win32/gsk.enum.headers
+       $(top_builddir)/win32/Gsk-4.0.gir.msvc.introspect       \
+       $(top_builddir)/win32/Gsk_4_0_gir_list          \
+       $(top_builddir)/win32/gsk.enum.headers
 
 Gsk_4_0_gir_MSVC_FILES = $(introspection_files)
 Gsk_4_0_gir_MSVC_EXPORT_PACKAGES = $(Gsk_noinst_4_0_gir_EXPORT_PACKAGES)
@@ -290,16 +290,16 @@ Gsk_4_0_gir_MSVC_SCANNERFLAGS =                   \
        --add-include-path=.                    \
        --include-uninstalled=../gdk/Gdk-4.0.gir
 
-include $(top_srcdir)/build/Makefile.msvc-introspection
+include $(top_srcdir)/win32/Makefile.msvc-introspection
 
 else
 INTROSPECTION_INTERMEDIATE_ITEMS =
 endif
 
 dist-hook: \
-       $(top_builddir)/build/win32/vs12/gsk-4.vcxproj  \
-       $(top_builddir)/build/win32/vs12/gsk-4.vs12.headers     \
-       $(top_builddir)/build/win32/gsk.enum.headers    \
+       $(top_builddir)/win32/vs12/gsk-4.vcxproj        \
+       $(top_builddir)/win32/vs12/gsk-4.vs12.headers   \
+       $(top_builddir)/win32/gsk.enum.headers  \
        $(INTROSPECTION_INTERMEDIATE_ITEMS)
 
 -include $(top_srcdir)/git.mk
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 3a672c0..57ceb76 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1416,7 +1416,7 @@ gtk_4_HEADERS_INST = \
 
 gtk_4_HEADERS_EXCLUDES = dummy
 
-include $(top_srcdir)/build/Makefile.msvcproj
+include $(top_srcdir)/win32/Makefile.msvcproj
 
 if HAVE_INTROSPECTION
 # Introspection Items for MSVC
@@ -1445,8 +1445,8 @@ GTK_MSVC_GIR_CFLAGS =                                             \
        -I../.. -I../../gtk -I../../gdk
 
 INTROSPECTION_INTERMEDIATE_ITEMS = \
-       $(top_builddir)/build/win32/Gtk-4.0.gir.msvc.introspect         \
-       $(top_builddir)/build/win32/Gtk_4_0_gir_list
+       $(top_builddir)/win32/Gtk-4.0.gir.msvc.introspect               \
+       $(top_builddir)/win32/Gtk_4_0_gir_list
 
 Gtk_4_0_gir_MSVC_FILES =               \
        $(introspected_pub_headers)     \
@@ -1461,7 +1461,7 @@ Gtk_4_0_gir_MSVC_LIBS = gtk-4
 Gtk_4_0_gir_MSVC_CFLAGS = $(GTK_MSVC_GIR_CFLAGS)
 Gtk_4_0_gir_MSVC_SCANNERFLAGS = --warn-all --add-include-path=. --include-uninstalled=./Gdk-4.0.gir 
--include-uninstalled=./Gsk-4.0.gir
 
-include $(top_srcdir)/build/Makefile.msvc-introspection
+include $(top_srcdir)/win32/Makefile.msvc-introspection
 
 else
 INTROSPECTION_INTERMEDIATE_ITEMS =
@@ -1469,8 +1469,8 @@ INTROSPECTION_INTERMEDIATE_ITEMS =
 endif
 
 dist-hook: \
-       $(top_builddir)/build/win32/vs12/gtk-4.vcxproj  \
-       $(top_builddir)/build/win32/vs12/gtk-4.vs12.headers     \
+       $(top_builddir)/win32/vs12/gtk-4.vcxproj        \
+       $(top_builddir)/win32/vs12/gtk-4.vs12.headers   \
        $(INTROSPECTION_INTERMEDIATE_ITEMS)
 
 # Install a RC file for the default GTK+ theme, and key themes
diff --git a/win32/Makefile-newvs.am b/win32/Makefile-newvs.am
new file mode 100644
index 0000000..ecdf3b5
--- /dev/null
+++ b/win32/Makefile-newvs.am
@@ -0,0 +1,46 @@
+# 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 (10 for 2010, 11 for 2012, 12 
for 2013, 14 for 2015 and so on)
+# MSVC_BASE_VER_LONG: Long Version of baseline Visual Studio 201x version (2010, 2012, 2013, 14 and so on)
+# MSVC_VER_LONG: Long Version of Visual Studio (2012, 2013, 14 and so on)
+# MSVC_VER: Short Version of Visual Studio (11 for 2012, 12 for 2013, 14 for 2015 and so on)
+# MSVC_FORMAT_VER: Use 12 for MSVC 2012 through 2015
+
+%.sln:
+       sed 's/11\.00/$(MSVC_FORMAT_VER)\.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_VER)0/v$(MSVC_VER)0/g' < $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ > 
$(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+       else \
+               sed 's/v$(MSVC_BASE_VER)0/v$(MSVC_VER)0/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 93%
rename from build/win32/Makefile.am
rename to win32/Makefile.am
index d29abda..c1d0750 100644
--- a/build/win32/Makefile.am
+++ b/win32/Makefile.am
@@ -20,7 +20,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 67%
rename from build/Makefile.msvc-introspection
rename to win32/Makefile.msvc-introspection
index 6c90964..28e8b50 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
@@ -79,47 +79,47 @@ $(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 '  --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 100%
rename from build/win32/detectenv-msvc.mak
rename to win32/detectenv-msvc.mak
diff --git a/build/win32/gen-enums.batin b/win32/gen-enums.batin
similarity index 96%
rename from build/win32/gen-enums.batin
rename to win32/gen-enums.batin
index b4f381a..64f2cd8 100644
--- a/build/win32/gen-enums.batin
+++ b/win32/gen-enums.batin
@@ -1,6 +1,6 @@
 @ECHO OFF
 
-cd ..\..\gsk
+cd ..\gsk
 
 if exist gskenumtypes.h del gskenumtypes.h
 if exist gskenumtypes.c del gskenumtypes.c
diff --git a/build/win32/gtk-introspection-msvc.mak b/win32/gtk-introspection-msvc.mak
similarity index 100%
rename from build/win32/gtk-introspection-msvc.mak
rename to win32/gtk-introspection-msvc.mak
diff --git a/build/win32/gtkpc.py b/win32/gtkpc.py
similarity index 100%
rename from build/win32/gtkpc.py
rename to win32/gtkpc.py
diff --git a/build/win32/introspection-msvc.mak b/win32/introspection-msvc.mak
similarity index 98%
rename from build/win32/introspection-msvc.mak
rename to win32/introspection-msvc.mak
index 8739844..26501f5 100644
--- a/build/win32/introspection-msvc.mak
+++ b/win32/introspection-msvc.mak
@@ -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/pc_base.py b/win32/pc_base.py
similarity index 99%
rename from build/win32/pc_base.py
rename to win32/pc_base.py
index 587ba83..285b6cd 100644
--- a/build/win32/pc_base.py
+++ b/win32/pc_base.py
@@ -23,7 +23,7 @@ class BasePCItems:
         self.libdir = ''
         self.prefix = ''
         self.srcdir = os.path.dirname(__file__)
-        self.top_srcdir = self.srcdir + '\\..\\..'
+        self.top_srcdir = self.srcdir + '\\..'
         self.version = ''
 
     def setup(self, argv, parser=None):
diff --git a/build/win32/replace.py b/win32/replace.py
similarity index 100%
rename from build/win32/replace.py
rename to win32/replace.py
diff --git a/build/win32/vs12/Makefile.am b/win32/vs12/Makefile.am
similarity index 88%
rename from build/win32/vs12/Makefile.am
rename to win32/vs12/Makefile.am
index dee68b9..b6bf35a 100644
--- a/build/win32/vs12/Makefile.am
+++ b/win32/vs12/Makefile.am
@@ -62,9 +62,9 @@ EXTRA_DIST += \
 DISTCLEANFILES = \
        $(GENERATED_ITEMS)
 
-gtk4-install.props: $(top_srcdir)/build/win32/vs12/gtk4-install.propsin $(MSVC12_HEADERS_LISTS)
-       -$(RM) $(top_builddir)/build/win32/vs14/gtk4-install.props
-       $(CPP) -P - <$(top_srcdir)/build/win32/vs12/gtk4-install.propsin >$@
+gtk4-install.props: $(top_srcdir)/win32/vs12/gtk4-install.propsin $(MSVC12_HEADERS_LISTS)
+       -$(RM) $(top_builddir)/win32/vs14/gtk4-install.props
+       $(CPP) -P - <$(top_srcdir)/win32/vs12/gtk4-install.propsin >$@
        rm $(MSVC12_HEADERS_LISTS)
 
 -include $(top_srcdir)/git.mk
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/gdk-4.vcxproj.filtersin b/win32/vs12/gdk-4.vcxproj.filtersin
similarity index 90%
rename from build/win32/vs12/gdk-4.vcxproj.filtersin
rename to win32/vs12/gdk-4.vcxproj.filtersin
index 598c1cd..1a0cec0 100644
--- a/build/win32/vs12/gdk-4.vcxproj.filtersin
+++ b/win32/vs12/gdk-4.vcxproj.filtersin
@@ -16,6 +16,6 @@
   </ItemGroup>
   <ItemGroup>
 #include "gdk-4.vs12.sourcefiles.filters"
-    <ClCompile Include="..\..\..\gdk\gdkkeynames.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\gdk\gdkkeynames.c"><Filter>Source Files</Filter></ClCompile>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/gdk-4.vcxprojin b/win32/vs12/gdk-4.vcxprojin
similarity index 91%
rename from build/win32/vs12/gdk-4.vcxprojin
rename to win32/vs12/gdk-4.vcxprojin
index 9b63e3a..911f23b 100644
--- a/build/win32/vs12/gdk-4.vcxprojin
+++ b/win32/vs12/gdk-4.vcxprojin
@@ -69,7 +69,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -82,7 +82,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -94,7 +94,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -107,7 +107,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -118,7 +118,7 @@
   </ItemDefinitionGroup>
   <ItemGroup>
 #include "gdk-4.vs12.sourcefiles"
-    <ClCompile Include="..\..\..\gdk\gdkkeynames.c" />
+    <ClCompile Include="..\..\gdk\gdkkeynames.c" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/build/win32/vs12/gdk4-win32.vcxproj.filtersin b/win32/vs12/gdk4-win32.vcxproj.filtersin
similarity index 100%
rename from build/win32/vs12/gdk4-win32.vcxproj.filtersin
rename to win32/vs12/gdk4-win32.vcxproj.filtersin
diff --git a/build/win32/vs12/gdk4-win32.vcxprojin b/win32/vs12/gdk4-win32.vcxprojin
similarity index 92%
rename from build/win32/vs12/gdk4-win32.vcxprojin
rename to win32/vs12/gdk4-win32.vcxprojin
index 4963618..6546e4b 100644
--- a/build/win32/vs12/gdk4-win32.vcxprojin
+++ b/win32/vs12/gdk4-win32.vcxprojin
@@ -69,7 +69,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -82,7 +82,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -94,7 +94,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -107,7 +107,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
diff --git a/win32/vs12/gsk-4.vcxproj.filtersin b/win32/vs12/gsk-4.vcxproj.filtersin
new file mode 100644
index 0000000..2c9eaa3
--- /dev/null
+++ b/win32/vs12/gsk-4.vcxproj.filtersin
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+    </Filter>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\gsk\gskenumtypes.c.template"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\gsk\gsk.gresource.xml"><Filter>Resource Files</Filter></CustomBuild>
+  </ItemGroup>
+  <ItemGroup>
+#include "gsk-4.vs12.sourcefiles.filters"
+   <ClCompile Include="..\..\gsk\gskvulkanblendpipeline.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanbuffer.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanclip.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkancolorpipeline.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkancommandpool.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkaneffectpipeline.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanlineargradientpipeline.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanimage.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanmemory.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanpipeline.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanpushconstants.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanrender.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanrenderer.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanrenderpass.c"><Filter>Source Files</Filter></ClCompile>
+   <ClCompile Include="..\..\gsk\gskvulkanshader.c"><Filter>Source Files</Filter></ClCompile>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs12/gsk-4.vcxprojin b/win32/vs12/gsk-4.vcxprojin
old mode 100755
new mode 100644
similarity index 84%
rename from build/win32/vs12/gsk-4.vcxprojin
rename to win32/vs12/gsk-4.vcxprojin
index 0f1a125..596c456
--- a/build/win32/vs12/gsk-4.vcxprojin
+++ b/win32/vs12/gsk-4.vcxprojin
@@ -123,7 +123,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -137,7 +137,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Vulkan|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -150,7 +150,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -161,7 +161,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Vulkan|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -173,7 +173,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -187,7 +187,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Vulkan|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -200,7 +200,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -211,7 +211,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Vulkan|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gsk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gsk;..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GskDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -221,94 +221,94 @@
     </ClCompile>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\gsk\gskenumtypes.c.template">
+    <CustomBuild Include="..\..\gsk\gskenumtypes.c.template">
       <Message Condition="'$(Configuration)'=='Debug'">Generating GSK enumeration sources...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(GenGSKEnumSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\gsk\gskenumtypes.h;..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Generating GSK enumeration sources...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(GenGSKEnumSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\gsk\gskenumtypes.h;..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Generating GSK enumeration sources...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(GenGSKEnumSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\gsk\gskenumtypes.h;..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Generating GSK enumeration 
sources...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(GenGSKEnumSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\gsk\gskenumtypes.h;..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="..\..\..\gsk\gsk.gresource.xml">
+    <CustomBuild Include="..\..\gsk\gsk.gresource.xml">
       <Message Condition="'$(Configuration)'=='Debug'">Generating GSK resource sources...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(GenGSKRsrcSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\gsk\gskresources.h;..\..\gsk\gskresources.c;..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Generating GSK resource sources...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(GenGSKRsrcSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\gsk\gskresources.h;..\..\gsk\gskresources.c;..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Generating GSK resource sources...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(GenGSKRsrcSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\gsk\gskresources.h;..\..\gsk\gskresources.c;..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Generating GSK resource sources...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(GenGSKRsrcSrcs)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\gsk\gskresources.h;..\..\gsk\gskresources.c;..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
 #include "gsk-4.vs12.sourcefiles"
-   <ClCompile Include="..\..\..\gsk\gskvulkanblendpipeline.c">
+   <ClCompile Include="..\..\gsk\gskvulkanblendpipeline.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanbuffer.c">
+   <ClCompile Include="..\..\gsk\gskvulkanbuffer.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanclip.c">
+   <ClCompile Include="..\..\gsk\gskvulkanclip.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkancolorpipeline.c">
+   <ClCompile Include="..\..\gsk\gskvulkancolorpipeline.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkancommandpool.c">
+   <ClCompile Include="..\..\gsk\gskvulkancommandpool.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkaneffectpipeline.c">
+   <ClCompile Include="..\..\gsk\gskvulkaneffectpipeline.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanlineargradientpipeline.c">
+   <ClCompile Include="..\..\gsk\gskvulkanlineargradientpipeline.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanimage.c">
+   <ClCompile Include="..\..\gsk\gskvulkanimage.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanmemory.c">
+   <ClCompile Include="..\..\gsk\gskvulkanmemory.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanpipeline.c">
+   <ClCompile Include="..\..\gsk\gskvulkanpipeline.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanpushconstants.c">
+   <ClCompile Include="..\..\gsk\gskvulkanpushconstants.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanrender.c">
+   <ClCompile Include="..\..\gsk\gskvulkanrender.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanrenderer.c">
+   <ClCompile Include="..\..\gsk\gskvulkanrenderer.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanrenderpass.c">
+   <ClCompile Include="..\..\gsk\gskvulkanrenderpass.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
-   <ClCompile Include="..\..\..\gsk\gskvulkanshader.c">
+   <ClCompile Include="..\..\gsk\gskvulkanshader.c">
      <ExcludedFromBuild Condition="'$(Configuration)'=='Debug'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)'=='Release'">true</ExcludedFromBuild>
    </ClCompile>
diff --git a/build/win32/vs12/gtk+-4.sln b/win32/vs12/gtk+-4.sln
similarity index 100%
rename from build/win32/vs12/gtk+-4.sln
rename to win32/vs12/gtk+-4.sln
diff --git a/win32/vs12/gtk-4.vcxproj.filtersin b/win32/vs12/gtk-4.vcxproj.filtersin
new file mode 100644
index 0000000..0696b6f
--- /dev/null
+++ b/win32/vs12/gtk-4.vcxproj.filtersin
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+    </Filter>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\gtk\gtk-win32.rc"><Filter>Resource Files</Filter></ResourceCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\gtk\gtkdbusinterfaces.xml"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\gtk\gtk-win32.rc.body"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\gtk\libgtk4.manifest.in"><Filter>Resource Files</Filter></CustomBuild>
+  </ItemGroup>
+  <ItemGroup>
+#include "gtk-4.vs12.sourcefiles.filters"
+    <ClCompile Include="..\..\modules\input\gtkimcontextime.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\gtkimcontextmultipress.c"><Filter>Source 
Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\gtkimcontextthai.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imam-et.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imcedilla.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imcyrillic-translit.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imime.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\iminuktitut.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imipa.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\immultipress.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imthai.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imti-er.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imti-et.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\imviqr.c"><Filter>Source Files</Filter></ClCompile>
+    <ClCompile Include="..\..\modules\input\thai-charprop.c"><Filter>Source Files</Filter></ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <Manifest Include="..\..\gtk\libgtk4.manifest"><Filter>Resource Files</Filter></Manifest>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs12/gtk-4.vcxprojin b/win32/vs12/gtk-4.vcxprojin
similarity index 85%
rename from build/win32/vs12/gtk-4.vcxprojin
rename to win32/vs12/gtk-4.vcxprojin
index 5c17aea..1561e15 100644
--- a/build/win32/vs12/gtk-4.vcxprojin
+++ b/win32/vs12/gtk-4.vcxprojin
@@ -129,7 +129,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -153,7 +153,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Vulkan|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -176,7 +176,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -199,7 +199,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Vulkan|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -223,7 +223,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -247,7 +247,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Vulkan|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -270,7 +270,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -293,7 +293,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Vulkan|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -315,74 +315,74 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\gtk\gtkdbusinterfaces.xml">
+    <CustomBuild Include="..\..\gtk\gtkdbusinterfaces.xml">
       <Message Condition="'$(Configuration)'=='Debug'">Generating GTK+ DBus Sources...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(GenerateGtkDbusBuiltSources)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\gtk\gtkdbusgenerated.c;..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Generating GTK+ DBus Sources...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(GenerateGtkDbusBuiltSources)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\gtk\gtkdbusgenerated.c;..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Generating GTK+ DBus Sources...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(GenerateGtkDbusBuiltSources)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\gtk\gtkdbusgenerated.c;..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Generating GTK+ DBus Sources...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(GenerateGtkDbusBuiltSources)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\gtk\gtkdbusgenerated.c;..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="..\..\..\gtk\gtk-win32.rc.body">
+    <CustomBuild Include="..\..\gtk\gtk-win32.rc.body">
       <Message Condition="'$(Configuration)'=='Debug'">Copying GTK+ Win32 Version Resource...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(CopyGtkWin32RC)</Command>
-      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Copying GTK+ Win32 Version Resource...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(CopyGtkWin32RC)</Command>
-      <Outputs Condition="'$(Configuration)'=='Release'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Release'">..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Copying GTK+ Win32 Version 
Resource...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(CopyGtkWin32RC)</Command>
-      <Outputs Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Copying GTK+ Win32 Version 
Resource...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(CopyGtkWin32RC)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Release_Vulkan'">..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="..\..\..\gtk\libgtk4.manifest.in">
+    <CustomBuild Include="..\..\gtk\libgtk4.manifest.in">
       <Message Condition="'$(Configuration)'=='Debug'">Generating GTK+ Win32 Manifest...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(GenerateGtkWin32Manifest)</Command>
-      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Generating GTK+ Win32 Manifest...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(GenerateGtkWin32Manifest)</Command>
-      <Outputs Condition="'$(Configuration)'=='Release'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Release'">..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Generating GTK+ Win32 Manifest...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(GenerateGtkWin32Manifest)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Generating GTK+ Win32 Manifest...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(GenerateGtkWin32Manifest)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\..\..\gtk\gtk-win32.rc">
-      
<AdditionalIncludeDirectories>..\..\..\gdk\win32\rc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    <ResourceCompile Include="..\..\gtk\gtk-win32.rc">
+      
<AdditionalIncludeDirectories>..\..\gdk\win32\rc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemGroup>
   <ItemGroup>
 #include "gtk-4.vs12.sourcefiles"
-    <ClCompile Include="..\..\..\modules\input\gtkimcontextime.c" />
-    <ClCompile Include="..\..\..\modules\input\gtkimcontextmultipress.c" />
-    <ClCompile Include="..\..\..\modules\input\gtkimcontextthai.c" />
-    <ClCompile Include="..\..\..\modules\input\imam-et.c" />
-    <ClCompile Include="..\..\..\modules\input\imcedilla.c" />
-    <ClCompile Include="..\..\..\modules\input\imcyrillic-translit.c" />
-    <ClCompile Include="..\..\..\modules\input\imime.c" />
-    <ClCompile Include="..\..\..\modules\input\iminuktitut.c" />
-    <ClCompile Include="..\..\..\modules\input\imipa.c" />
-    <ClCompile Include="..\..\..\modules\input\immultipress.c" />
-    <ClCompile Include="..\..\..\modules\input\imthai.c" />
-    <ClCompile Include="..\..\..\modules\input\imti-er.c" />
-    <ClCompile Include="..\..\..\modules\input\imti-et.c" />
-    <ClCompile Include="..\..\..\modules\input\imviqr.c" />
-    <ClCompile Include="..\..\..\modules\input\thai-charprop.c" />
+    <ClCompile Include="..\..\modules\input\gtkimcontextime.c" />
+    <ClCompile Include="..\..\modules\input\gtkimcontextmultipress.c" />
+    <ClCompile Include="..\..\modules\input\gtkimcontextthai.c" />
+    <ClCompile Include="..\..\modules\input\imam-et.c" />
+    <ClCompile Include="..\..\modules\input\imcedilla.c" />
+    <ClCompile Include="..\..\modules\input\imcyrillic-translit.c" />
+    <ClCompile Include="..\..\modules\input\imime.c" />
+    <ClCompile Include="..\..\modules\input\iminuktitut.c" />
+    <ClCompile Include="..\..\modules\input\imipa.c" />
+    <ClCompile Include="..\..\modules\input\immultipress.c" />
+    <ClCompile Include="..\..\modules\input\imthai.c" />
+    <ClCompile Include="..\..\modules\input\imti-er.c" />
+    <ClCompile Include="..\..\modules\input\imti-et.c" />
+    <ClCompile Include="..\..\modules\input\imviqr.c" />
+    <ClCompile Include="..\..\modules\input\thai-charprop.c" />
   </ItemGroup>
   <ItemGroup>
-    <Manifest Include="..\..\..\gtk\libgtk4.manifest" />
+    <Manifest Include="..\..\gtk\libgtk4.manifest" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="gdk4-win32.vcxproj">
diff --git a/build/win32/vs12/gtk4-build-defines.props b/win32/vs12/gtk4-build-defines.props
similarity index 89%
rename from build/win32/vs12/gtk4-build-defines.props
rename to win32/vs12/gtk4-build-defines.props
index 3a8523c..e770e39 100644
--- a/build/win32/vs12/gtk4-build-defines.props
+++ b/win32/vs12/gtk4-build-defines.props
@@ -24,7 +24,7 @@
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\graphene-1.0;$(GlibEtcInstallRoot)\lib\graphene-1.0\include;$(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\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\graphene-1.0;$(GlibEtcInstallRoot)\lib\graphene-1.0\include;$(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;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
diff --git a/build/win32/vs12/gtk4-builder-tool.vcxproj b/win32/vs12/gtk4-builder-tool.vcxproj
similarity index 99%
rename from build/win32/vs12/gtk4-builder-tool.vcxproj
rename to win32/vs12/gtk4-builder-tool.vcxproj
index c7f8dbf..347c385 100644
--- a/build/win32/vs12/gtk4-builder-tool.vcxproj
+++ b/win32/vs12/gtk4-builder-tool.vcxproj
@@ -161,7 +161,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gtk\gtk-builder-tool.c" />
+    <ClCompile Include="..\..\gtk\gtk-builder-tool.c" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="gtk-4.vcxproj">
diff --git a/build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin 
b/win32/vs12/gtk4-builder-tool.vcxproj.filters
similarity index 90%
copy from build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin
copy to win32/vs12/gtk4-builder-tool.vcxproj.filters
index 3350174..e88646b 100644
--- a/build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin
+++ b/win32/vs12/gtk4-builder-tool.vcxproj.filters
@@ -15,6 +15,6 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-#include "gtk4-icon-browser.vs12.sourcefiles.filters"
+    <ClCompile Include="..\..\gtk\gtk-builder-tool.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/gtk4-demo-application.vcxproj.filtersin 
b/win32/vs12/gtk4-demo-application.vcxproj.filtersin
similarity index 100%
rename from build/win32/vs12/gtk4-demo-application.vcxproj.filtersin
rename to win32/vs12/gtk4-demo-application.vcxproj.filtersin
diff --git a/build/win32/vs12/gtk4-demo-application.vcxprojin b/win32/vs12/gtk4-demo-application.vcxprojin
similarity index 100%
rename from build/win32/vs12/gtk4-demo-application.vcxprojin
rename to win32/vs12/gtk4-demo-application.vcxprojin
diff --git a/build/win32/vs12/gtk4-demo.vcxproj.filtersin b/win32/vs12/gtk4-demo.vcxproj.filtersin
similarity index 100%
rename from build/win32/vs12/gtk4-demo.vcxproj.filtersin
rename to win32/vs12/gtk4-demo.vcxproj.filtersin
diff --git a/build/win32/vs12/gtk4-demo.vcxprojin b/win32/vs12/gtk4-demo.vcxprojin
similarity index 94%
rename from build/win32/vs12/gtk4-demo.vcxprojin
rename to win32/vs12/gtk4-demo.vcxprojin
index 8afcdc8..3a74d29 100644
--- a/build/win32/vs12/gtk4-demo.vcxprojin
+++ b/win32/vs12/gtk4-demo.vcxprojin
@@ -73,7 +73,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -96,7 +96,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -121,7 +121,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -144,7 +144,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
diff --git a/build/win32/vs12/gtk4-encode-symbolic-svg.vcxproj b/win32/vs12/gtk4-encode-symbolic-svg.vcxproj
similarity index 94%
rename from build/win32/vs12/gtk4-encode-symbolic-svg.vcxproj
rename to win32/vs12/gtk4-encode-symbolic-svg.vcxproj
index e8178bd..4e9a88b 100644
--- a/build/win32/vs12/gtk4-encode-symbolic-svg.vcxproj
+++ b/win32/vs12/gtk4-encode-symbolic-svg.vcxproj
@@ -73,7 +73,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -93,7 +93,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -118,7 +118,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -141,7 +141,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -161,7 +161,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gtk\encodesymbolic.c" />
+    <ClCompile Include="..\..\gtk\encodesymbolic.c" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="gtk-4.vcxproj">
diff --git a/build/win32/vs12/gtk4-encode-symbolic-svg.vcxproj.filters 
b/win32/vs12/gtk4-encode-symbolic-svg.vcxproj.filters
similarity index 89%
rename from build/win32/vs12/gtk4-encode-symbolic-svg.vcxproj.filters
rename to win32/vs12/gtk4-encode-symbolic-svg.vcxproj.filters
index 22a3155..3377263 100644
--- a/build/win32/vs12/gtk4-encode-symbolic-svg.vcxproj.filters
+++ b/win32/vs12/gtk4-encode-symbolic-svg.vcxproj.filters
@@ -15,6 +15,6 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gtk\encodesymbolic.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\gtk\encodesymbolic.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
 </Project>
diff --git a/win32/vs12/gtk4-gen-srcs.props b/win32/vs12/gtk4-gen-srcs.props
new file mode 100644
index 0000000..a085324
--- /dev/null
+++ b/win32/vs12/gtk4-gen-srcs.props
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="gtk4-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <GenConfigH>copy ..\..\config.h.win32 ..\..\config.h</GenConfigH>
+    <GenGdkConfigHWin32>
+if exist ..\..\MSVC_$(Configuration) goto DONE_GDKCONFIG_H
+
+if exist ..\..\gdk\gdkconfig.h del ..\..\gdk\gdkconfig.h
+if exist ..\..\GDK_VULKAN_BUILD del ..\..\GDK_VULKAN_BUILD
+if exist ..\..\MSVC_$(Configuration)_Vulkan del ..\..\MSVC_$(Configuration)_Vulkan
+if exist $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll del 
$(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll
+if exist $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib del 
$(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib
+if "$(Configuration)" == "Release" del ..\..\MSVC_Debug
+if "$(Configuration)" == "Debug" del ..\..\MSVC_Release
+copy ..\..\gdk\gdkconfig.h.win32 ..\..\gdk\gdkconfig.h
+copy ..\..\gdk\gdkconfig.h.win32 ..\..\GDK_WIN32ONLY_BUILD
+echo $(Configuration) &gt; ..\..\MSVC_$(Configuration)
+
+:DONE_GDKCONFIG_H
+    </GenGdkConfigHWin32>
+    <GenGdkConfigHVulkan>
+if exist ..\..\MSVC_$(Configuration)_Vulkan goto DONE_GDKCONFIG_H
+
+if exist ..\..\gdk\gdkconfig.h del ..\..\gdk\gdkconfig.h
+if exist ..\..\GDK_WIN32ONLY_BUILD del ..\..\GDK_WIN32ONLY_BUILD
+if exist ..\..\MSVC_Release del ..\..\MSVC_Release
+if exist ..\..\MSVC_Debug del ..\..\MSVC_Debug
+
+if "$(Configuration)" == "Release_Vulkan" del ..\..\MSVC_Debug_Vulkan
+if "$(Configuration)" == "Debug_Vulkan" del ..\..\MSVC_Release_Vulkan
+
+copy ..\..\gdk\gdkconfig.h.win32_vulkan ..\..\gdk\gdkconfig.h
+copy ..\..\gdk\gdkconfig.h.win32_vulkan ..\..\GDK_VULKAN_BUILD
+echo $(Configuration) &gt; ..\..\MSVC_$(Configuration)_Vulkan
+
+:DONE_GDKCONFIG_H
+    </GenGdkConfigHVulkan>
+    <GDbusCodeGenCmd>$(GlibEtcInstallRoot)\bin\gdbus-codegen --interface-prefix org.Gtk. --c-namespace _Gtk 
--generate-c-code gtkdbusgenerated ./gtkdbusinterfaces.xml</GDbusCodeGenCmd>
+    <GenerateGtkDbusBuiltSources>cd ..\..\gtk &amp; $(PythonPath)\python $(GDbusCodeGenCmd) &amp; cd 
$(SolutionDir)</GenerateGtkDbusBuiltSources>
+    <GenerateGtkDbusBuiltSourcesX64>cd ..\..\gtk &amp; $(PythonPathX64)\python $(GDbusCodeGenCmd) &amp; cd 
$(SolutionDir)</GenerateGtkDbusBuiltSourcesX64>
+    <CopyGtkWin32RC>copy ..\..\gtk\gtk-win32.rc.body ..\..\gtk\gtk-win32.rc</CopyGtkWin32RC>
+    <GenerateGtkWin32Manifest>$(PythonPath)\python ..\replace.py --action=replace-var 
--input=..\..\gtk\libgtk4.manifest.in --output=..\..\gtk\libgtk4.manifest --var=EXE_MANIFEST_ARCHITECTURE 
--outstring=*</GenerateGtkWin32Manifest>
+    <CopyDemosH>copy ..\..\demos\gtk-demo\demos.h.win32 ..\..\demos\gtk-demo\demos.h</CopyDemosH>
+    <GenGSKEnumSrcs>(cd ..) &amp; (call gen-enums.bat $(GlibEtcInstallRoot)) &amp; (cd 
$(SolutionDir))</GenGSKEnumSrcs>
+    <GenGSKRsrcSrcs>
+echo ^&lt;?xml version='1.0' encoding='UTF-8'?^&gt; &gt; ..\..\gsk\gsk.gresource.xml
+echo ^&lt;gresources^&gt; &gt;&gt; ..\..\gsk\gsk.gresource.xml
+echo   ^&lt;gresource prefix='/org/gtk/libgsk'^&gt; &gt;&gt; ..\..\gsk\gsk.gresource.xml
+for /f &#37;&#37;f in ('dir /b ..\..\gsk\resources\glsl\*') do echo     ^&lt;file 
alias='glsl/&#37;&#37;f'^&gt;resources/glsl/&#37;&#37;f^&lt;/file^&gt; &gt;&gt; ..\..\gsk\gsk.gresource.xml
+for /f &#37;&#37;f in ('dir /b ..\..\gsk\resources\vulkan\*.spv') do echo     ^&lt;file 
alias='vulkan/&#37;&#37;f'^&gt;resources/vulkan/&#37;&#37;f^&lt;/file^&gt; &gt;&gt; 
..\..\gsk\gsk.gresource.xml
+for /f &#37;&#37;f in ('dir /b ..\..\gsk\resources\vulkan\*.glsl') do echo     ^&lt;file 
alias='vulkan/&#37;&#37;f'^&gt;resources/vulkan/&#37;&#37;f^&lt;/file^&gt; &gt;&gt; 
..\..\gsk\gsk.gresource.xml
+echo   ^&lt;/gresource^&gt; &gt;&gt; ..\..\gsk\gsk.gresource.xml
+echo ^&lt;/gresources^&gt; &gt;&gt; ..\..\gsk\gsk.gresource.xml
+
+$(GlibEtcInstallRoot)\bin\glib-compile-resources.exe --sourcedir=..\..\gsk --c-name _gsk --generate-header 
--manual-register --target=..\..\gsk\gskresources.h ..\..\gsk\gsk.gresource.xml
+$(GlibEtcInstallRoot)\bin\glib-compile-resources.exe --sourcedir=..\..\gsk --c-name _gsk --generate-source 
--manual-register --target=..\..\gsk\gskresources.c ..\..\gsk\gsk.gresource.xml
+    </GenGSKRsrcSrcs>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>gtk4gensrcsprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="GenConfigH">
+      <Value>$(GenConfigH)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenGdkConfigHWin32">
+      <Value>$(GenGdkConfigHWin32)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenGdkConfigHVulkan">
+      <Value>$(GenGdkConfigHVulkan)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GDbusCodeGenCmd">
+      <Value>$(GDbusCodeGenCmd)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenerateGtkDbusBuiltSources">
+      <Value>$(GenerateGtkDbusBuiltSources)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenerateGtkDbusBuiltSourcesX64">
+      <Value>$(GenerateGtkDbusBuiltSourcesX64)</Value>
+    </BuildMacro>
+    <BuildMacro Include="CopyGtkWin32RC">
+      <Value>$(CopyGtkWin32RC)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenerateGtkWin32Manifest">
+      <Value>$(GenerateGtkWin32Manifest)</Value>
+    </BuildMacro>
+    <BuildMacro Include="CopyDemosH">
+      <Value>$(CopyDemosH)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenGSKEnumSrcs">
+      <Value>$(GenGSKEnumSrcs)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenGSKRsrcSrcs">
+      <Value>$(GenGSKRsrcSrcs)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin 
b/win32/vs12/gtk4-icon-browser.vcxproj.filtersin
similarity index 100%
copy from build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin
copy to win32/vs12/gtk4-icon-browser.vcxproj.filtersin
diff --git a/build/win32/vs12/gtk4-icon-browser.vcxprojin b/win32/vs12/gtk4-icon-browser.vcxprojin
similarity index 93%
rename from build/win32/vs12/gtk4-icon-browser.vcxprojin
rename to win32/vs12/gtk4-icon-browser.vcxprojin
index 5d2008d..48e9c19 100644
--- a/build/win32/vs12/gtk4-icon-browser.vcxprojin
+++ b/win32/vs12/gtk4-icon-browser.vcxprojin
@@ -73,7 +73,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -92,7 +92,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -116,7 +116,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -138,7 +138,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/build/win32/vs12/gtk4-install.propsin b/win32/vs12/gtk4-install.propsin
similarity index 92%
rename from build/win32/vs12/gtk4-install.propsin
rename to win32/vs12/gtk4-install.propsin
index 8044ab4..7a9f2b3 100644
--- a/build/win32/vs12/gtk4-install.propsin
+++ b/win32/vs12/gtk4-install.propsin
@@ -79,7 +79,7 @@ copy "..\gtk+-$(ApiVersion).pc" "$(CopyDir)\lib\pkgconfig\gtk+-win32-$(ApiVersio
 echo off
 mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32
 mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\deprecated
-copy ..\..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
+copy ..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
 #include "gdk-4.vs12.headers"
 #include "gdk4-win32.vs12.headers"
 
@@ -90,18 +90,18 @@ mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y
 mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated
 #include "gtk-4.vs12.headers"
 
-for &#37;&#37;s in (16 22 24 32 48 256) do ((mkdir 
$(CopyDir)\share\icons\hicolor\&#37;&#37;sx&#37;&#37;s\apps) &amp; (copy /b 
..\..\..\demos\gtk-demo\data\&#37;&#37;sx&#37;&#37;s\gtk$(ApiVersionShort)-demo.png 
$(CopyDir)\share\icons\hicolor\&#37;&#37;sx&#37;&#37;s\apps))
+for &#37;&#37;s in (16 22 24 32 48 256) do ((mkdir 
$(CopyDir)\share\icons\hicolor\&#37;&#37;sx&#37;&#37;s\apps) &amp; (copy /b 
..\..\demos\gtk-demo\data\&#37;&#37;sx&#37;&#37;s\gtk$(ApiVersionShort)-demo.png 
$(CopyDir)\share\icons\hicolor\&#37;&#37;sx&#37;&#37;s\apps))
 mkdir $(CopyDir)\share\glib-2.0\schemas
-copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
-copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
-copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas
-copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas
+copy ..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
+copy ..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
+copy ..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas
+copy ..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas
     </GtkDoInstall>
     <GtkPostInstall>
 echo "Compiling gsettings XML Files..."
 $(GlibEtcInstallRoot)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas
 
-echo "Generating icon cache......"
+echo "Generating icon cache..."
 $(CopyDir)\bin\gtk$(ApiVersionShort)-update-icon-cache.exe --ignore-theme-index --force 
"$(CopyDir)\share\icons\hicolor"
     </GtkPostInstall>
     <GenerateGtkPC>$(PythonPath)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) 
--host=i686-pc-vs$(VSVer)</GenerateGtkPC>
diff --git a/build/win32/vs12/gtk4-install.vcxproj b/win32/vs12/gtk4-install.vcxproj
similarity index 99%
rename from build/win32/vs12/gtk4-install.vcxproj
rename to win32/vs12/gtk4-install.vcxproj
index 7477b4b..8ab6e0d 100644
--- a/build/win32/vs12/gtk4-install.vcxproj
+++ b/win32/vs12/gtk4-install.vcxproj
@@ -147,7 +147,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Vulkan|x64'">
   </ItemDefinitionGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\config.h.win32">
+    <CustomBuild Include="..\..\config.h.win32">
       <Message Condition="'$(Configuration)'=='Debug'">Installing Build Results...</Message>
       <AdditionalInputs Condition="'$(Configuration)'=='Debug'">$(GtkPCFiles)</AdditionalInputs>
       <Command 
Condition="'$(Configuration)'=='Debug'">$(GtkDoInstallBin)$(GtkDoInstall)$(GtkPostInstall)</Command>
diff --git a/build/win32/vs12/gtk4-install.vcxproj.filters b/win32/vs12/gtk4-install.vcxproj.filters
similarity index 84%
rename from build/win32/vs12/gtk4-install.vcxproj.filters
rename to win32/vs12/gtk4-install.vcxproj.filters
index c75e9b3..6be701a 100644
--- a/build/win32/vs12/gtk4-install.vcxproj.filters
+++ b/win32/vs12/gtk4-install.vcxproj.filters
@@ -7,7 +7,7 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
     <CustomBuild Include="..\gtkpc.py"><Filter>Resource Files</Filter></CustomBuild>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/gtk4-prebuild.vcxproj b/win32/vs12/gtk4-prebuild.vcxproj
similarity index 89%
rename from build/win32/vs12/gtk4-prebuild.vcxproj
rename to win32/vs12/gtk4-prebuild.vcxproj
index 3b497bd..0919f16 100644
--- a/build/win32/vs12/gtk4-prebuild.vcxproj
+++ b/win32/vs12/gtk4-prebuild.vcxproj
@@ -147,49 +147,49 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Vulkan|x64'">
   </ItemDefinitionGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\config.h.win32">
+    <CustomBuild Include="..\..\config.h.win32">
       <Message Condition="'$(Configuration)'=='Debug'">Copying config.h from config.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(GenConfigH)</Command>
-      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\config.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Copying config.h from 
config.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(GenConfigH)</Command>
-      <Outputs Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\config.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Copying config.h from config.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(GenConfigH)</Command>
-      <Outputs Condition="'$(Configuration)'=='Release'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Release'">..\..\config.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Copying config.h from 
config.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(GenConfigH)</Command>
-      <Outputs Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Release_Vulkan'">..\..\config.h;%(Outputs)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32">
+    <CustomBuild Include="..\..\gdk\gdkconfig.h.win32">
       <Message Condition="'$(Configuration)'=='Debug'">Copying gdkconfig from gdkconfig.win32...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(GenGdkConfigHWin32)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug'">..\..\gdk\gdkconfig.h;..\..\GDK_WIN32ONLY_BUILD;..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Copying gdkconfig from gdkconfig.win32...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(GenGdkConfigHWin32)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release'">..\..\gdk\gdkconfig.h;..\..\GDK_WIN32ONLY_BUILD;..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32_vulkan">
+    <CustomBuild Include="..\..\gdk\gdkconfig.h.win32_vulkan">
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Copying gdkconfig from 
gdkconfig.win32_vulkan...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(GenGdkConfigHVulkan)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_VULKAN_BUILD;..\..\..\MSVC_$(Configuration)_Vulkan;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\gdk\gdkconfig.h;..\..\GDK_VULKAN_BUILD;..\..\MSVC_$(Configuration)_Vulkan;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Copying gdkconfig from 
gdkconfig.win32_vulkan...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(GenGdkConfigHVulkan)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_VULKAN_BUILD;..\..\..\MSVC_$(Configuration)_Vulkan;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\gdk\gdkconfig.h;..\..\GDK_VULKAN_BUILD;..\..\MSVC_$(Configuration)_Vulkan;%(Outputs)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="..\..\..\demos\gtk-demo\demos.h.win32">
+    <CustomBuild Include="..\..\demos\gtk-demo\demos.h.win32">
       <Message Condition="'$(Configuration)'=='Debug'">Copying demos.h from demos.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Debug'">$(CopyDemosH)</Command>
-      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Debug'">..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Debug_Vulkan'">Copying demos.h from demos.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Debug_Vulkan'">$(CopyDemosH)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Debug_Vulkan'">..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release'">Copying demos.h from demos.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Release'">$(CopyDemosH)</Command>
-      <Outputs Condition="'$(Configuration)'=='Release'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)'=='Release'">..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
       <Message Condition="'$(Configuration)'=='Release_Vulkan'">Copying demos.h from 
demos.h.win32...</Message>
       <Command Condition="'$(Configuration)'=='Release_Vulkan'">$(CopyDemosH)</Command>
-      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
+      <Outputs 
Condition="'$(Configuration)'=='Release_Vulkan'">..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
diff --git a/build/win32/vs12/gtk4-prebuild.vcxproj.filters b/win32/vs12/gtk4-prebuild.vcxproj.filters
similarity index 50%
rename from build/win32/vs12/gtk4-prebuild.vcxproj.filters
rename to win32/vs12/gtk4-prebuild.vcxproj.filters
index d776972..a9c86e0 100644
--- a/build/win32/vs12/gtk4-prebuild.vcxproj.filters
+++ b/win32/vs12/gtk4-prebuild.vcxproj.filters
@@ -7,9 +7,9 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
-    <CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32"><Filter>Resource Files</Filter></CustomBuild>
-    <CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32_vulkan"><Filter>Resource 
Files</Filter></CustomBuild>
-    <CustomBuild Include="..\..\..\demos\gtk-demo\demos.h.win32"><Filter>Resource 
Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\gdk\gdkconfig.h.win32"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\gdk\gdkconfig.h.win32_vulkan"><Filter>Resource Files</Filter></CustomBuild>
+    <CustomBuild Include="..\..\demos\gtk-demo\demos.h.win32"><Filter>Resource Files</Filter></CustomBuild>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/gtk4-query-settings.vcxproj b/win32/vs12/gtk4-query-settings.vcxproj
similarity index 99%
rename from build/win32/vs12/gtk4-query-settings.vcxproj
rename to win32/vs12/gtk4-query-settings.vcxproj
index 7f6de6d..ad315b1 100644
--- a/build/win32/vs12/gtk4-query-settings.vcxproj
+++ b/win32/vs12/gtk4-query-settings.vcxproj
@@ -161,7 +161,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gtk\gtk-query-settings.c" />
+    <ClCompile Include="..\..\gtk\gtk-query-settings.c" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="gtk-4.vcxproj">
diff --git a/build/win32/vs12/gtk4-update-icon-cache.vcxproj.filters 
b/win32/vs12/gtk4-query-settings.vcxproj.filters
similarity index 93%
rename from build/win32/vs12/gtk4-update-icon-cache.vcxproj.filters
rename to win32/vs12/gtk4-query-settings.vcxproj.filters
index 24d654b..6e14aac 100644
--- a/build/win32/vs12/gtk4-update-icon-cache.vcxproj.filters
+++ b/win32/vs12/gtk4-query-settings.vcxproj.filters
@@ -15,6 +15,6 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gtk\updateiconcache.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\gtk\gtk-query-settings.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/gtk4-update-icon-cache.vcxproj b/win32/vs12/gtk4-update-icon-cache.vcxproj
similarity index 99%
rename from build/win32/vs12/gtk4-update-icon-cache.vcxproj
rename to win32/vs12/gtk4-update-icon-cache.vcxproj
index c68465b..efd4cb4 100644
--- a/build/win32/vs12/gtk4-update-icon-cache.vcxproj
+++ b/win32/vs12/gtk4-update-icon-cache.vcxproj
@@ -161,7 +161,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\gtk\updateiconcache.c" />
+    <ClCompile Include="..\..\gtk\updateiconcache.c" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="gtk4-prebuild.vcxproj">
diff --git a/build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin 
b/win32/vs12/gtk4-update-icon-cache.vcxproj.filters
similarity index 90%
rename from build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin
rename to win32/vs12/gtk4-update-icon-cache.vcxproj.filters
index 3350174..f62b142 100644
--- a/build/win32/vs12/gtk4-icon-browser.vcxproj.filtersin
+++ b/win32/vs12/gtk4-update-icon-cache.vcxproj.filters
@@ -15,6 +15,6 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-#include "gtk4-icon-browser.vs12.sourcefiles.filters"
+    <ClCompile Include="..\..\gtk\updateiconcache.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs12/gtk4-version-paths.props.in b/win32/vs12/gtk4-version-paths.props.in
similarity index 94%
rename from build/win32/vs12/gtk4-version-paths.props.in
rename to win32/vs12/gtk4-version-paths.props.in
index be750d4..3b1da88 100644
--- a/build/win32/vs12/gtk4-version-paths.props.in
+++ b/win32/vs12/gtk4-version-paths.props.in
@@ -2,8 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
   <PropertyGroup Label="UserMacros">
     <VSVer>12</VSVer>
-    <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
-    <CopyDir>..\..\..\..\vs$(VSVer)\$(Platform)</CopyDir>
+    <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
+    <CopyDir>..\..\..\vs$(VSVer)\$(Platform)</CopyDir>
     <ApiVersionShort>4</ApiVersionShort>
     <ApiVersion>$(ApiVersionShort).0</ApiVersion>
     <GtkVersion>@GTK_VERSION@</GtkVersion>
diff --git a/build/win32/vs14/Makefile.am b/win32/vs14/Makefile.am
similarity index 96%
rename from build/win32/vs14/Makefile.am
rename to win32/vs14/Makefile.am
index 7ffc804..d23b147 100644
--- a/build/win32/vs14/Makefile.am
+++ b/win32/vs14/Makefile.am
@@ -42,6 +42,6 @@ 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
 
 -include $(top_srcdir)/git.mk


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