[gtk/msvc-project-improvements: 4/4] Visual Studio projects: Improve generating GDK sources




commit 7616cbe71a62026458c75675318aab713460e0c2
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Tue Dec 21 18:40:26 2021 +0800

    Visual Studio projects: Improve generating GDK sources
    
    This makes the rest of the sources that are generated being put in GDK's build
    directory for the Visual Studio projects, instead of being placed in GDK's
    source subdir, so that:
    
    *  We can avoid polluting GDK's source tree.
    *  The Visual Studio builds won't interfere with the Meson builds.
    
    Update the project files to look for the generated sources and headers in the
    right places, as well as making the introspection builds look for the generated
    sources as well.

 gdk/Makefile.am                            | 12 +++--
 gtk/Makefile.am                            |  4 +-
 win32/Makefile.msvc-introspection          |  4 +-
 win32/config-msvc.mak.in                   |  2 +
 win32/gen-gdkversionmacros-h.py            |  4 +-
 win32/generate-msvc.mak                    | 73 ++++++++++++++++++------------
 win32/gtk-introspection-msvc.mak           |  3 ++
 win32/vs10/broadwayd.vcxprojin             |  8 ++--
 win32/vs10/gailutil-3.vcxprojin            |  8 ++--
 win32/vs10/gdk-3.vcxprojin                 | 19 ++++----
 win32/vs10/gdk3-broadway.vcxprojin         |  8 ++--
 win32/vs10/gdk3-win32.vcxprojin            |  8 ++--
 win32/vs10/gtk-3.vcxprojin                 |  8 ++--
 win32/vs10/gtk-builder-tool.vcxproj        |  8 ++--
 win32/vs10/gtk-encode-symbolic-svg.vcxproj |  8 ++--
 win32/vs10/gtk-query-settings.vcxproj      |  8 ++--
 win32/vs10/gtk-update-icon-cache.vcxproj   |  8 ++--
 win32/vs10/gtk3-build-defines.props        | 16 ++++++-
 win32/vs10/gtk3-demo-application.vcxprojin |  4 ++
 win32/vs10/gtk3-demo.vcxprojin             |  8 ++--
 win32/vs10/gtk3-icon-browser.vcxprojin     |  8 ++--
 win32/vs10/gtk3-install.propsin            | 19 ++++++++
 win32/vs9/broadwayd.vcprojin               |  8 ++--
 win32/vs9/gailutil-3.vcprojin              |  8 ++--
 win32/vs9/gdk-3.vcprojin                   | 52 +++++++++++++++++----
 win32/vs9/gdk3-broadway.vcprojin           |  8 ++--
 win32/vs9/gdk3-win32.vcprojin              |  8 ++--
 win32/vs9/gtk-3.vcprojin                   |  8 ++--
 win32/vs9/gtk-builder-tool.vcproj          |  6 ++-
 win32/vs9/gtk-encode-symbolic-svg.vcproj   |  8 ++--
 win32/vs9/gtk-query-settings.vcproj        |  6 ++-
 win32/vs9/gtk-update-icon-cache.vcproj     |  6 ++-
 win32/vs9/gtk3-build-defines.vsprops       | 18 +++++++-
 win32/vs9/gtk3-demo-application.vcprojin   |  4 ++
 win32/vs9/gtk3-demo.vcprojin               |  8 ++--
 win32/vs9/gtk3-icon-browser.vcprojin       |  8 ++--
 win32/vs9/gtk3-install.vspropsin           | 19 ++++++++
 37 files changed, 284 insertions(+), 139 deletions(-)
---
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
index c6639c1a28..f425e0803e 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -457,14 +457,13 @@ gdkresources.c: gdk.gresource.xml $(resource_files)
 # ------------------- MSVC Build Items ----------------
 MSVCPROJS = gdk-3
 
-gdk_3_FILES = $(libgdk_3_la_SOURCES)
+gdk_3_FILES = $(gdk_c_sources)
 gdk_3_EXCLUDES = dummy
 gdk_3_HEADERS_DIR = $(gdkincludedir)
 
 gdk_3_HEADERS_INST = \
        $(gdkinclude_HEADERS)           \
-       $(deprecatedinclude_HEADERS)    \
-       $(nodist_gdkinclude_HEADERS)
+       $(deprecatedinclude_HEADERS)
 
 gdk_3_HEADERS_EXCLUDES = dummy
 
@@ -476,7 +475,9 @@ MSVC_INTROSPECT_GIRS = Gdk-3.0.gir GdkWin32-3.0.gir
 
 BASE_MSVC_GIR_CFLAGS =                 \
        $(GDK_CFLAGS_DEFINES)           \
-       -I.. -I../gdk -I../gdk/win32
+       -I'./vs$$$$(VSVER)/$$$$(CFG)/$$$$(PLAT)/obj/gdk-3' -I.. \
+       -I'./vs$$$$(VSVER)/$$$$(CFG)/$$$$(PLAT)/obj/gdk-3/gdk' -I../gdk \
+       -I../gdk/win32
 
 INTROSPECTION_INTERMEDIATE_ITEMS = \
        $(top_builddir)/win32/Gdk-3.0.gir.msvc.introspect       \
@@ -484,7 +485,8 @@ INTROSPECTION_INTERMEDIATE_ITEMS = \
        $(top_builddir)/win32/GdkWin32-3.0.gir.msvc.introspect  \
        $(top_builddir)/win32/GdkWin32_3_0_gir_list
 
-Gdk_3_0_gir_MSVC_FILES = $(introspection_files)
+Gdk_3_0_gir_MSVC_FILES = $(filter-out gdkkeysyms-compat.h, $(gdk_h_sources))   \
+       $(gdk_c_sources)        \
 Gdk_3_0_gir_MSVC_EXPORT_PACKAGES = $(Gdk_3_0_gir_EXPORT_PACKAGES)
 Gdk_3_0_gir_MSVC_INCLUDE_GIRS = $(Gdk_3_0_gir_INCLUDES)
 Gdk_3_0_gir_MSVC_LIBS = gdk-3.0
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 057c21d6c8..ecb88fd07e 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1554,7 +1554,9 @@ GTK_MSVC_GIR_CFLAGS =                                             \
        -DINCLUDE_IM_ti_et                      \
        -DINCLUDE_IM_viqr                       \
        -DGTK_TEXT_USE_INTERNAL_UNSUPPORTED_API \
-       -I.. -I../gtk -I../gdk
+       -I'./vs$$$$(VSVER)/$$$$(CFG)/$$$$(PLAT)/obj/gdk-3' -I.. \
+       -I'./vs$$$$(VSVER)/$$$$(CFG)/$$$$(PLAT)/obj/gtk-3/gtk' -I../gtk \
+       -I'./vs$$$$(VSVER)/$$$$(CFG)/$$$$(PLAT)/obj/gdk-3/gdk' -I../gdk
 
 INTROSPECTION_INTERMEDIATE_ITEMS = \
        $(top_builddir)/win32/Gtk-3.0.gir.msvc.introspect               \
diff --git a/win32/Makefile.msvc-introspection b/win32/Makefile.msvc-introspection
index e393cecd51..e472ac795e 100644
--- a/win32/Makefile.msvc-introspection
+++ b/win32/Makefile.msvc-introspection
@@ -93,7 +93,7 @@ $(top_builddir)/win32/$(1).msvc.introspect: Makefile
        -$(RM) $(top_builddir)/win32/$(1).msvc.introspect
 
 # Assemble the Command to Run g-ir-scanner
-       echo 'vs$$$$(VSVER)\$$$$(CFG)\$$$$(PLAT)\bin\'$(1)': '$(_gir_name)'_list 
'$($(_gir_name)_MSVC_GIR_DEPS)>>$(top_builddir)/win32/$(1).msvc.introspect
+       echo 'vs$$$$(VSVER)\$$$$(CFG)\$$$$(PLAT)\bin\'$(1)': '$(_gir_name)'_list_final 
'$($(_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
@@ -110,7 +110,7 @@ $(top_builddir)/win32/$(1).msvc.introspect: Makefile
        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 '  --filelist='$(_gir_name)'_list_final    \'>>$(top_builddir)/win32/$(1).msvc.introspect
        echo '  -L.\vs$$$$(VSVER)\$$$$(CFG)\$$$$(PLAT)\bin      \'>>$(top_builddir)/win32/$(1).msvc.introspect
        echo '  -o $$$$@'>>$(top_builddir)/win32/$(1).msvc.introspect
        echo '' >>$(top_builddir)/win32/$(1).msvc.introspect
diff --git a/win32/config-msvc.mak.in b/win32/config-msvc.mak.in
index b623a99491..9c99963f47 100644
--- a/win32/config-msvc.mak.in
+++ b/win32/config-msvc.mak.in
@@ -63,8 +63,10 @@ GDK_PREPROCESSOR_FLAGS =     \
 
 GTK_PREPROCESSOR_FLAGS =       \
         /I..\gtk       \
+        /I.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk    \
         /I..\gdk       \
         /I..\gdk\win32 \
+        /I.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3        \
         /I..   \
         /I$(PREFIX)\include\gdk-pixbuf-2.0     \
         /I$(PREFIX)\include\pango-1.0  \
diff --git a/win32/gen-gdkversionmacros-h.py b/win32/gen-gdkversionmacros-h.py
index 89d2a359d5..6b4e0b7cc0 100644
--- a/win32/gen-gdkversionmacros-h.py
+++ b/win32/gen-gdkversionmacros-h.py
@@ -17,6 +17,8 @@ def main(argv):
     parser = argparse.ArgumentParser(description='Generate gdkversionmacros.h')
     parser.add_argument('--version', help='Version of the package',
                         required=True)
+    parser.add_argument('--outdir', help='Output location of generated file',
+                        required=True)
     args = parser.parse_args()
     gdk_sourcedir = os.path.join(top_srcdir, 'gdk')
     version_parts = args.version.split('.')
@@ -26,7 +28,7 @@ def main(argv):
                                      '@GTK_MICRO_VERSION@': version_parts[2]}
 
     replace_multi(os.path.join(gdk_sourcedir, 'gdkversionmacros.h.in'),
-                  os.path.join(gdk_sourcedir, 'gdkversionmacros.h'),
+                  os.path.join(args.outdir, 'gdkversionmacros.h'),
                   gdkversionmacro_replace_items)
 
 if __name__ == '__main__':
diff --git a/win32/generate-msvc.mak b/win32/generate-msvc.mak
index 4290b10dd1..f8adade3b0 100644
--- a/win32/generate-msvc.mak
+++ b/win32/generate-msvc.mak
@@ -25,22 +25,22 @@ GDK_CONFIG_TEMPLATE = ..\gdk\gdkconfig.h.win32
 !endif
 
 GDK_MARSHALERS_FLAGS = --prefix=_gdk_marshal --valist-marshallers
-GDK_RESOURCES_ARGS = ..\gdk\gdk.gresource.xml --target=$@ --sourcedir=..\gdk --c-name _gdk --manual-register
+GDK_RESOURCES_ARGS = --target=$@ --sourcedir=..\gdk --c-name _gdk --manual-register
 GTK_MARSHALERS_FLAGS = --prefix=_gtk_marshal --valist-marshallers
 GTK_RESOURCES_ARGS = ..\gtk\gtk.gresource.xml --target=$@ --sourcedir=..\gtk --c-name _gtk --manual-register
 
 GDK_GENERATED_SOURCES =        \
-       ..\gdk\gdkconfig.h      \
-       ..\gdk\gdkversionmacros.h       \
-       ..\gdk\gdkmarshalers.h  \
-       ..\gdk\gdkmarshalers.c  \
-       ..\gdk\gdkresources.h   \
-       ..\gdk\gdkresources.c   \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkconfig.h   \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkenumtypes.h        \
        .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkenumtypes.c        \
-       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkenumtypes.h
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkmarshalers.h       \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkmarshalers.c       \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkresources.h        \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkresources.c        \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkversionmacros.h    \
 
 generate-base-sources: \
-       ..\config.h     \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\config.h  \
        $(GDK_GENERATED_SOURCES)        \
        ..\gtk\gtk-win32.rc     \
        ..\gtk\libgtk3.manifest \
@@ -57,7 +57,7 @@ generate-base-sources:        \
        ..\demos\icon-browser\resources.c
 
 # Copy the pre-defined config.h.win32 and demos.h.win32
-..\config.h: ..\config.h.win32
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\config.h: ..\config.h.win32
 ..\demos\gtk-demo\demos.h: ..\demos\gtk-demo\demos.h.win32
 ..\gtk\gtk-win32.rc: ..\gtk\gtk-win32.rc.body
 
@@ -67,13 +67,14 @@ generate-base-sources:      \
        @if exist ..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build del ..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build
        @copy $** $@
        
-..\gdk\gdkconfig.h: ..\gdk-$(CFG)-$(GDK_CONFIG)-build
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkconfig.h: ..\gdk-$(CFG)-$(GDK_CONFIG)-build
 
-..\config.h    \
-..\gdk\gdkconfig.h     \
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\config.h \
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkconfig.h  \
 ..\gtk\gtk-win32.rc    \
 ..\demos\gtk-demo\demos.h:
        @echo Copying $@...
+       @if not exist $(@D)\ md $(@D)
        @copy $** $@
 
 .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkenumtypes.c: ..\gdk\gdkenumtypes.c.template 
$(GDK_PUBLIC_HEADERS)
@@ -87,21 +88,21 @@ generate-base-sources:      \
        @$(PYTHON) $(GLIB_MKENUMS) --template $(@F).template $(gdk_public_h_sources) $(deprecated_h_sources) 
..\win32\$@
        @cd ..\win32
 
-..\gdk\gdkversionmacros.h: ..\gdk\gdkversionmacros.h.in
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkversionmacros.h: ..\gdk\gdkversionmacros.h.in
        @echo Generating $@...
-       @$(PYTHON) gen-gdkversionmacros-h.py --version=$(GTK_VERSION)
+       @$(PYTHON) gen-gdkversionmacros-h.py --version=$(GTK_VERSION) 
--outdir=.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk
 
-..\gdk\gdkmarshalers.h: ..\gdk\gdkmarshalers.list
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkmarshalers.h: ..\gdk\gdkmarshalers.list
        @echo Generating $@...
        @$(PYTHON) $(GLIB_GENMARSHAL) $(GDK_MARSHALERS_FLAGS) --header $** > $@.tmp
        @move $@.tmp $@
 
-..\gdk\gdkmarshalers.c: ..\gdk\gdkmarshalers.list
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkmarshalers.c: ..\gdk\gdkmarshalers.list
        @echo Generating $@...
        @$(PYTHON) $(GLIB_GENMARSHAL) $(GDK_MARSHALERS_FLAGS) --body $** > $@.tmp
        @move $@.tmp $@
 
-..\gdk\gdk.gresource.xml: $(GDK_RESOURCES)
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdk.gresource.xml: $(GDK_RESOURCES)
        @echo Generating $@...
        @echo ^<?xml version='1.0' encoding='UTF-8'?^> >$@
        @echo ^<gresources^> >> $@
@@ -110,19 +111,19 @@ generate-base-sources:    \
        @echo   ^</gresource^> >> $@
        @echo ^</gresources^> >> $@
 
-..\gdk\gdkresources.h: ..\gdk\gdk.gresource.xml
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkresources.h: 
.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdk.gresource.xml
        @echo Generating $@...
        @if not "$(XMLLINT)" == "" set XMLLINT=$(XMLLINT)
        @if not "$(JSON_GLIB_FORMAT)" == "" set JSON_GLIB_FORMAT=$(JSON_GLIB_FORMAT)
        @if not "$(GDK_PIXBUF_PIXDATA)" == "" set GDK_PIXBUF_PIXDATA=$(GDK_PIXBUF_PIXDATA)
-       @start /min $(GLIB_COMPILE_RESOURCES) $(GDK_RESOURCES_ARGS) --generate-header
+       @start /min $(GLIB_COMPILE_RESOURCES) $** $(GDK_RESOURCES_ARGS) --generate-header
 
-..\gdk\gdkresources.c: ..\gdk\gdk.gresource.xml $(GDK_RESOURCES)
+.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkresources.c: 
.\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdk.gresource.xml
        @echo Generating $@...
        @if not "$(XMLLINT)" == "" set XMLLINT=$(XMLLINT)
        @if not "$(JSON_GLIB_FORMAT)" == "" set JSON_GLIB_FORMAT=$(JSON_GLIB_FORMAT)
        @if not "$(GDK_PIXBUF_PIXDATA)" == "" set GDK_PIXBUF_PIXDATA=$(GDK_PIXBUF_PIXDATA)
-       @start /min $(GLIB_COMPILE_RESOURCES) $(GDK_RESOURCES_ARGS) --generate-source
+       @start /min $(GLIB_COMPILE_RESOURCES) $** $(GDK_RESOURCES_ARGS) --generate-source
 
 ..\gtk\libgtk3.manifest: ..\gtk\libgtk3.manifest.in
        @echo Generating $@...
@@ -216,6 +217,18 @@ regenerate-demos-h-win32: ..\demos\gtk-demo\geninclude.py $(demo_actual_sources)
        @cd ..\demos\gtk-demo
        @$(PYTHON) geninclude.py demos.h.win32 $(demo_sources)
 
+Gdk_3_0_gir_list_final: Gdk_3_0_gir_list $(GDK_GENERATED_SOURCES)
+       @echo Generating $@...
+       @type Gdk_3_0_gir_list>$@
+       @for %%s in ($(GDK_GENERATED_SOURCES)) do echo %%s>>$@
+
+GdkWin32_3_0_gir_list_final: GdkWin32_3_0_gir_list
+Gtk_3_0_gir_list_final: Gtk_3_0_gir_list
+
+GdkWin32_3_0_gir_list_final Gtk_3_0_gir_list_final:
+       @echo Copying $@...
+       @copy $** $@
+
 # Remove the generated files
 clean:
        @-del /f /q ..\demos\icon-browser\resources.c
@@ -233,16 +246,16 @@ clean:
        @-del /f /q ..\gtk\gtk-win32.rc
        @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkenumtypes.c
        @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkenumtypes.h
-       @-del /f /q ..\gdk\gdkresources.c
-       @-del /f /q ..\gdk\gdkresources.h
-       @-del /f /q ..\gdk\gdk.gresource.xml
-       @-del /f /q ..\gdk\gdkmarshalers.c
-       @-del /f /q ..\gdk\gdkmarshalers.h
-       @-del /f /q ..\gdk\gdkversionmacros.h
-       @-del /f /q ..\gdk\gdkconfig.h
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkresources.c
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkresources.h
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdk.gresource.xml
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkmarshalers.c
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkmarshalers.h
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkversionmacros.h
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk\gdkconfig.h
        @if exist ..\gdk-$(CFG)-$(GDK_CONFIG)-build del ..\gdk-$(CFG)-$(GDK_CONFIG)-build
        @if exist ..\gdk-$(GDK_OLD_CFG)-$(GDK_DEL_CONFIG)-build del 
..\gdk-$(GDK_OLD_CFG)-$(GDK_DEL_CONFIG)-build
        @if exist ..\gdk-$(GDK_OLD_CFG)-$(GDK_CONFIG)-build del ..\gdk-$(GDK_OLD_CFG)-$(GDK_CONFIG)-build
        @if exist ..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build del ..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\config.h
        @-rd .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\gdk
-       @-del /f /q ..\config.h
diff --git a/win32/gtk-introspection-msvc.mak b/win32/gtk-introspection-msvc.mak
index 156c744b17..07d0e2c762 100644
--- a/win32/gtk-introspection-msvc.mak
+++ b/win32/gtk-introspection-msvc.mak
@@ -49,5 +49,8 @@ introspect:
 !endif
 
 introspect-clean:
+       @-del /f/q Gtk_3_0_gir_list_final
+       @-del /f/q GdkWin32_3_0_gir_list_final
+       @-del /f/q Gdk_3_0_gir_list_final
        @-del /f/q vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.typelib
        @-del /f/q vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.gir
diff --git a/win32/vs10/broadwayd.vcxprojin b/win32/vs10/broadwayd.vcxprojin
index ea2cc36e53..5e4f3e5415 100644
--- a/win32/vs10/broadwayd.vcxprojin
+++ b/win32/vs10/broadwayd.vcxprojin
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -95,7 +95,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -120,7 +120,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -143,7 +143,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/win32/vs10/gailutil-3.vcxprojin b/win32/vs10/gailutil-3.vcxprojin
index ff09df22d2..dd967b48c4 100644
--- a/win32/vs10/gailutil-3.vcxprojin
+++ b/win32/vs10/gailutil-3.vcxprojin
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -100,7 +100,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -125,7 +125,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -148,7 +148,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
diff --git a/win32/vs10/gdk-3.vcxprojin b/win32/vs10/gdk-3.vcxprojin
index ef8ba4db17..cd40fa6181 100644
--- a/win32/vs10/gdk-3.vcxprojin
+++ b/win32/vs10/gdk-3.vcxprojin
@@ -133,7 +133,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -156,7 +156,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -178,7 +178,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -200,7 +200,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -223,7 +223,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -246,7 +246,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -268,7 +268,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -290,7 +290,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\win32;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -315,6 +315,9 @@
   </ItemGroup>
   <ItemGroup>
 #include "gdk-3.vs10.sourcefiles"
+    <ClCompile Include="$(GdkGenSrcDir)\gdk\gdkenumtypes.c" />
+    <ClCompile Include="$(GdkGenSrcDir)\gdk\gdkmarshalers.c" />
+    <ClCompile Include="$(GdkGenSrcDir)\gdk\gdkresources.c" />
     <ClCompile Include="..\..\gdk\gdkkeynames.c" />
   </ItemGroup>
   <ItemGroup>
diff --git a/win32/vs10/gdk3-broadway.vcxprojin b/win32/vs10/gdk3-broadway.vcxprojin
index d1b4817b82..9827954fac 100644
--- a/win32/vs10/gdk3-broadway.vcxprojin
+++ b/win32/vs10/gdk3-broadway.vcxprojin
@@ -69,7 +69,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(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_Broadway|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -94,7 +94,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(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_Broadway|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gdk\broadway;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GdkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
diff --git a/win32/vs10/gdk3-win32.vcxprojin b/win32/vs10/gdk3-win32.vcxprojin
index 8ad851d1c4..37e5586c01 100644
--- a/win32/vs10/gdk3-win32.vcxprojin
+++ b/win32/vs10/gdk3-win32.vcxprojin
@@ -69,7 +69,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\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>$(GdkBaseIncludes);..\..\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>$(GdkBaseIncludes);..\..\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>$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>$(GdkDefines);INSIDE_GDK_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
diff --git a/win32/vs10/gtk-3.vcxprojin b/win32/vs10/gtk-3.vcxprojin
index d617cb2296..fdbc41cd25 100644
--- a/win32/vs10/gtk-3.vcxprojin
+++ b/win32/vs10/gtk-3.vcxprojin
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -97,7 +97,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -120,7 +120,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -142,7 +142,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gtk;..\..\gdk;..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\gtk;$(GdkBaseIncludes);..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
diff --git a/win32/vs10/gtk-builder-tool.vcxproj b/win32/vs10/gtk-builder-tool.vcxproj
index a60b5e37eb..d88a9e65d7 100644
--- a/win32/vs10/gtk-builder-tool.vcxproj
+++ b/win32/vs10/gtk-builder-tool.vcxproj
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -95,7 +95,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -120,7 +120,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -143,7 +143,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/win32/vs10/gtk-encode-symbolic-svg.vcxproj b/win32/vs10/gtk-encode-symbolic-svg.vcxproj
index 64d572035e..da630f7f51 100644
--- a/win32/vs10/gtk-encode-symbolic-svg.vcxproj
+++ b/win32/vs10/gtk-encode-symbolic-svg.vcxproj
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -95,7 +95,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -120,7 +120,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -143,7 +143,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/win32/vs10/gtk-query-settings.vcxproj b/win32/vs10/gtk-query-settings.vcxproj
index 5bd517bccb..24717aa73f 100644
--- a/win32/vs10/gtk-query-settings.vcxproj
+++ b/win32/vs10/gtk-query-settings.vcxproj
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -95,7 +95,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -120,7 +120,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -143,7 +143,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/win32/vs10/gtk-update-icon-cache.vcxproj b/win32/vs10/gtk-update-icon-cache.vcxproj
index 103671e99f..b94c809e0c 100644
--- a/win32/vs10/gtk-update-icon-cache.vcxproj
+++ b/win32/vs10/gtk-update-icon-cache.vcxproj
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -95,7 +95,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -120,7 +120,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -143,7 +143,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/win32/vs10/gtk3-build-defines.props b/win32/vs10/gtk3-build-defines.props
index 4fddda3189..e6bcc2b8b0 100644
--- a/win32/vs10/gtk3-build-defines.props
+++ b/win32/vs10/gtk3-build-defines.props
@@ -8,6 +8,11 @@
     <GtkDummyPrefix>/dummy</GtkDummyPrefix>
     <GtkPrefixDefine>GTK_PREFIX=\"$(GtkDummyPrefix)\"</GtkPrefixDefine>
     <GdkDefines>GDK_COMPILATION;G_LOG_DOMAIN="Gdk"</GdkDefines>
+    <GdkGenSrcDir>.\$(Configuration)\$(Platform)\obj\gdk-3</GdkGenSrcDir>
+    <GdkGenSrcDir Condition="'$(Configuration)' == 
'Release_Broadway'">.\Release\$(Platform)\obj\gdk-3</GdkGenSrcDir>
+    <GdkGenSrcDir Condition="'$(Configuration)' == 
'Debug_Broadway'">.\Debug\$(Platform)\obj\gdk-3</GdkGenSrcDir>
+    <BaseConfigIncludes>$(GdkGenSrcDir);..\..</BaseConfigIncludes>
+    <GdkBaseIncludes>$(GdkGenSrcDir)\gdk;..\..\gdk;$(BaseConfigIncludes)</GdkBaseIncludes>
     
<GtkIncludedImmodulesDefines>INCLUDE_IM_am_et;INCLUDE_IM_cedilla;INCLUDE_IM_cyrillic_translit;INCLUDE_IM_ime;INCLUDE_IM_inuktitut;INCLUDE_IM_ipa;INCLUDE_IM_multipress;INCLUDE_IM_thai;INCLUDE_IM_ti_er;INCLUDE_IM_ti_et;INCLUDE_IM_viqr</GtkIncludedImmodulesDefines>
     <GtkHostMachine Condition="'$(Platform)' == 'Win32'">i686</GtkHostMachine>
     <GtkHostMachine Condition="'$(Platform)' == 'x64'">x86_64</GtkHostMachine>
@@ -30,7 +35,7 @@ nmake -f gtk-introspection-msvc.mak CFG=$(Configuration) PREFIX=$(GlibEtcInstall
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\harfbuzz;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\fribidi;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\harfbuzz;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\fribidi;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       
<PreprocessorDefinitions>HAVE_CONFIG_H;G_ENABLE_DEBUG;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>
@@ -62,6 +67,15 @@ nmake -f gtk-introspection-msvc.mak CFG=$(Configuration) PREFIX=$(GlibEtcInstall
     <BuildMacro Include="GdkDefines">
       <Value>$(GdkDefines)</Value>
     </BuildMacro>
+    <BuildMacro Include="GdkGenSrcDir">
+      <Value>$(GdkGdkGenSrcDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="BaseConfigIncludes">
+      <Value>$(BaseConfigIncludes)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GdkBaseIncludes">
+      <Value>$(GdkBaseIncludes)</Value>
+    </BuildMacro>
     <BuildMacro Include="GtkIncludedImmodulesDefines">
       <Value>$(GtkIncludedImmodulesDefines)</Value>
     </BuildMacro>
diff --git a/win32/vs10/gtk3-demo-application.vcxprojin b/win32/vs10/gtk3-demo-application.vcxprojin
index 6ff02c81bc..9167c4c2c4 100644
--- a/win32/vs10/gtk3-demo-application.vcxprojin
+++ b/win32/vs10/gtk3-demo-application.vcxprojin
@@ -75,6 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -93,6 +94,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -116,6 +118,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -137,6 +140,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
+      
<AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/win32/vs10/gtk3-demo.vcxprojin b/win32/vs10/gtk3-demo.vcxprojin
index 7088d43f9e..b3a6a71de1 100644
--- a/win32/vs10/gtk3-demo.vcxprojin
+++ b/win32/vs10/gtk3-demo.vcxprojin
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -97,7 +97,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\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>$(GdkBaseIncludes);..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -143,7 +143,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      
<AdditionalIncludeDirectories>..\..\gdk;..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>$(GdkBaseIncludes);..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
diff --git a/win32/vs10/gtk3-icon-browser.vcxprojin b/win32/vs10/gtk3-icon-browser.vcxprojin
index df11ee027c..70f76d8ccf 100644
--- a/win32/vs10/gtk3-icon-browser.vcxprojin
+++ b/win32/vs10/gtk3-icon-browser.vcxprojin
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -94,7 +94,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -118,7 +118,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -140,7 +140,7 @@
     </Midl>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\demos\icon-browser;$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
diff --git a/win32/vs10/gtk3-install.propsin b/win32/vs10/gtk3-install.propsin
index 4badaff1c0..b37ccd820e 100644
--- a/win32/vs10/gtk3-install.propsin
+++ b/win32/vs10/gtk3-install.propsin
@@ -122,6 +122,25 @@ 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
+
+if "$(Configuration)" == "Release" goto COPY_RELEASE_BUILT_HEADERS
+if "$(Configuration)" == "Release_Broadway" goto COPY_RELEASE_BUILT_HEADERS
+if "$(Configuration)" == "Debug" goto COPY_DEBUG_BUILT_HEADERS
+if "$(Configuration)" == "Debug_Broadway" goto COPY_DEBUG_BUILT_HEADERS
+
+:COPY_DEBUG_BUILT_HEADERS
+copy .\Debug\$(Platform)\obj\gdk-3\gdk\gdkconfig.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
+copy .\Debug\$(Platform)\obj\gdk-3\gdk\gdkenumtypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
+copy .\Debug\$(Platform)\obj\gdk-3\gdk\gdkversionmacros.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
+goto CONTINUE_HEADERS
+
+:COPY_RELEASE_BUILT_HEADERS
+copy .\Release\$(Platform)\obj\gdk-3\gdk\gdkconfig.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
+copy .\Release\$(Platform)\obj\gdk-3\gdk\gdkenumtypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
+copy .\Release\$(Platform)\obj\gdk-3\gdk\gdkversionmacros.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
+goto CONTINUE_HEADERS
+
+:CONTINUE_HEADERS
 #include "gdk-3.vs10.headers"
 #include "gdk3-win32.vs10.headers"
 
diff --git a/win32/vs9/broadwayd.vcprojin b/win32/vs9/broadwayd.vcprojin
index ebe2658c26..3d795b98f1 100644
--- a/win32/vs9/broadwayd.vcprojin
+++ b/win32/vs9/broadwayd.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\broadway"
                                PreprocessorDefinitions="_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -62,7 +62,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\broadway"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
@@ -95,7 +95,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\broadway"
                                PreprocessorDefinitions="_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -127,7 +127,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\broadway"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
diff --git a/win32/vs9/gailutil-3.vcprojin b/win32/vs9/gailutil-3.vcprojin
index e4b2214016..d5a2b1cee6 100644
--- a/win32/vs9/gailutil-3.vcprojin
+++ b/win32/vs9/gailutil-3.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -64,7 +64,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -99,7 +99,7 @@
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                EnableIntrinsicFunctions="true"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
@@ -133,7 +133,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
diff --git a/win32/vs9/gdk-3.vcprojin b/win32/vs9/gdk-3.vcprojin
index 1c5df88a78..0e7ef550f1 100644
--- a/win32/vs9/gdk-3.vcprojin
+++ b/win32/vs9/gdk-3.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -63,7 +63,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway"
+                               
AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\win32;..\..\gdk\broadway"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -95,7 +95,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -127,7 +127,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway"
+                               
AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\win32;..\..\gdk\broadway"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -159,7 +159,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -191,7 +191,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway"
+                               
AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\win32;..\..\gdk\broadway"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -223,7 +223,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -255,7 +255,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32;..\..\gdk\broadway"
+                               
AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\win32;..\..\gdk\broadway"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -299,6 +299,42 @@
                        >
 #include "gdk-3.sourcefiles"
                        <File RelativePath="..\..\gdk\gdkkeynames.c" />
+                       <File RelativePath=".\Debug\$(PlatformName)\obj\gdk-3\gdk\gdkenumtypes.c" >
+                               <FileConfiguration Name="Release|Win32" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release_Broadway|Win32" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release_Broadway|x64" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                       </File>
+                       <File RelativePath=".\Debug\$(PlatformName)\obj\gdk-3\gdk\gdkmarshalers.c" >
+                               <FileConfiguration Name="Release|Win32" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release_Broadway|Win32" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release_Broadway|x64" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                       </File>
+                       <File RelativePath=".\Debug\$(PlatformName)\obj\gdk-3\gdk\gdkresources.c" >
+                               <FileConfiguration Name="Release|Win32" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release_Broadway|Win32" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Release_Broadway|x64" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                       </File>
+                       <File RelativePath=".\Release\$(PlatformName)\obj\gdk-3\gdk\gdkenumtypes.c" >
+                               <FileConfiguration Name="Debug|Win32" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug_Broadway|Win32" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug_Broadway|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                       </File>
+                       <File RelativePath=".\Release\$(PlatformName)\obj\gdk-3\gdk\gdkmarshalers.c" >
+                               <FileConfiguration Name="Debug|Win32" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug_Broadway|Win32" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug_Broadway|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                       </File>
+                       <File RelativePath=".\Release\$(PlatformName)\obj\gdk-3\gdk\gdkresources.c" >
+                               <FileConfiguration Name="Debug|Win32" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug_Broadway|Win32" ExcludedFromBuild="true" 
<Tool Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                               <FileConfiguration Name="Debug_Broadway|x64" ExcludedFromBuild="true" ><Tool 
Name="VCCLCompilerTool" /></FileConfiguration>
+                       </File>
                </Filter>
        </Files>
 </VisualStudioProject>
diff --git a/win32/vs9/gdk3-broadway.vcprojin b/win32/vs9/gdk3-broadway.vcprojin
index d66af2f26c..c251350c1d 100644
--- a/win32/vs9/gdk3-broadway.vcprojin
+++ b/win32/vs9/gdk3-broadway.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\broadway"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -53,7 +53,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\broadway"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -73,7 +73,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\broadway"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -95,7 +95,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\broadway"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\broadway"
                                PreprocessorDefinitions="$(GdkDefines)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
diff --git a/win32/vs9/gdk3-win32.vcprojin b/win32/vs9/gdk3-win32.vcprojin
index 8a618aa510..23b6ed59c9 100644
--- a/win32/vs9/gdk3-win32.vcprojin
+++ b/win32/vs9/gdk3-win32.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -53,7 +53,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="$(GdkDefines);INSIDE_GDK_WIN32"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -73,7 +73,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GdkDefines);INSIDE_GDK_WIN32"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -95,7 +95,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gdk\win32"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="$(GdkDefines);INSIDE_GDK_WIN32"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
diff --git a/win32/vs9/gtk-3.vcprojin b/win32/vs9/gtk-3.vcprojin
index 547e4216fa..520008f577 100644
--- a/win32/vs9/gtk-3.vcprojin
+++ b/win32/vs9/gtk-3.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -63,7 +63,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="$(GtkDefines)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -95,7 +95,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesDebug);..\..\gdk\win32"
                                PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefinesX64)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -127,7 +127,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gtk;..\..\gdk;..\..\gdk\win32"
+                               
AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesRelease);..\..\gdk\win32"
                                PreprocessorDefinitions="$(GtkDefinesX64)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
diff --git a/win32/vs9/gtk-builder-tool.vcproj b/win32/vs9/gtk-builder-tool.vcproj
index 4de2b7dc69..77d7ee0a97 100644
--- a/win32/vs9/gtk-builder-tool.vcproj
+++ b/win32/vs9/gtk-builder-tool.vcproj
@@ -31,6 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -60,6 +61,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
@@ -91,7 +93,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories=""
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -123,7 +125,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories=""
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
diff --git a/win32/vs9/gtk-encode-symbolic-svg.vcproj b/win32/vs9/gtk-encode-symbolic-svg.vcproj
index 5e62ae3b75..9d261fb7f8 100644
--- a/win32/vs9/gtk-encode-symbolic-svg.vcproj
+++ b/win32/vs9/gtk-encode-symbolic-svg.vcproj
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -62,7 +62,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories="..\..\gdk"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
@@ -95,7 +95,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -127,7 +127,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories="..\..\gdk"
+                               AdditionalIncludeDirectories="$(GdkBaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
diff --git a/win32/vs9/gtk-query-settings.vcproj b/win32/vs9/gtk-query-settings.vcproj
index a3a05dfa5e..8e92f071e1 100644
--- a/win32/vs9/gtk-query-settings.vcproj
+++ b/win32/vs9/gtk-query-settings.vcproj
@@ -31,6 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -60,6 +61,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
@@ -91,7 +93,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories=""
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -123,7 +125,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories=""
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
diff --git a/win32/vs9/gtk-update-icon-cache.vcproj b/win32/vs9/gtk-update-icon-cache.vcproj
index 8964c062d3..f0bcf6d664 100644
--- a/win32/vs9/gtk-update-icon-cache.vcproj
+++ b/win32/vs9/gtk-update-icon-cache.vcproj
@@ -31,6 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -60,6 +61,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
@@ -91,7 +93,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories=""
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -123,7 +125,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories=""
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
diff --git a/win32/vs9/gtk3-build-defines.vsprops b/win32/vs9/gtk3-build-defines.vsprops
index 876e2406cc..d7771cc34b 100644
--- a/win32/vs9/gtk3-build-defines.vsprops
+++ b/win32/vs9/gtk3-build-defines.vsprops
@@ -9,7 +9,7 @@
        >
        <Tool
                Name="VCCLCompilerTool"
-               
AdditionalIncludeDirectories="..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\harfbuzz;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\fribidi;$(GlibEtcInstallRoot)\include"
+               
AdditionalIncludeDirectories="$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\harfbuzz;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\fribidi;$(GlibEtcInstallRoot)\include"
                
PreprocessorDefinitions="HAVE_CONFIG_H;G_ENABLE_DEBUG;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;_USE_MATH_DEFINES"
                ForcedIncludeFiles="msvc_recommended_pragmas.h"
                AdditionalOptions="/MP"
@@ -31,6 +31,22 @@
                Name="GtkPrefixDefine"
                Value="GTK_PREFIX=\&quot;$(GtkDummyPrefix)\&quot;"
        />
+       <UserMacro
+               Name="BaseIncludesDebug"
+               Value=".\Debug\$(PlatformName)\obj\gdk-3;..\.."
+       />
+       <UserMacro
+               Name="BaseIncludesRelease"
+               Value=".\Release\$(PlatformName)\obj\gdk-3;..\.."
+       />
+       <UserMacro
+               Name="GdkBaseIncludesDebug"
+               Value=".\Debug\$(PlatformName)\obj\gdk-3\gdk;..\..\gdk;$(BaseIncludesDebug)"
+       />
+       <UserMacro
+               Name="GdkBaseIncludesRelease"
+               Value=".\Release\$(PlatformName)\obj\gdk-3\gdk;..\..\gdk;$(BaseIncludesRelease)"
+       />
        <UserMacro
                Name="GdkDefines"
                Value="GDK_COMPILATION;G_LOG_DOMAIN=\&quot;Gdk\&quot;"
diff --git a/win32/vs9/gtk3-demo-application.vcprojin b/win32/vs9/gtk3-demo-application.vcprojin
index 2d8a85db36..41a2d3367b 100644
--- a/win32/vs9/gtk3-demo-application.vcprojin
+++ b/win32/vs9/gtk3-demo-application.vcprojin
@@ -31,6 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -60,6 +61,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
@@ -91,6 +93,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
+                               AdditionalIncludeDirectories="$(BaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -121,6 +124,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
+                               AdditionalIncludeDirectories="$(BaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
diff --git a/win32/vs9/gtk3-demo.vcprojin b/win32/vs9/gtk3-demo.vcprojin
index 0c4795b3e6..80a434eb20 100644
--- a/win32/vs9/gtk3-demo.vcprojin
+++ b/win32/vs9/gtk3-demo.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gtk"
+                               AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG;$(GtkPrefixDefine)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -63,7 +63,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gtk"
+                               AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG;$(GtkPrefixDefine)"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -95,7 +95,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gtk"
+                               AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesRelease)"
                                PreprocessorDefinitions="$(GtkPrefixDefine)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
@@ -127,7 +127,7 @@
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\gtk"
+                               AdditionalIncludeDirectories="..\..\gtk;$(GdkBaseIncludesRelease)"
                                PreprocessorDefinitions="$(GtkPrefixDefine)"
                                RuntimeLibrary="2"
                                UsePrecompiledHeader="0"
diff --git a/win32/vs9/gtk3-icon-browser.vcprojin b/win32/vs9/gtk3-icon-browser.vcprojin
index 42bbd67fae..971235aff8 100644
--- a/win32/vs9/gtk3-icon-browser.vcprojin
+++ b/win32/vs9/gtk3-icon-browser.vcprojin
@@ -31,7 +31,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\demos\icon-browser"
+                               
AdditionalIncludeDirectories="..\..\demos\icon-browser;$(GdkBaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -62,7 +62,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\demos\icon-browser"
+                               
AdditionalIncludeDirectories="..\..\demos\icon-browser;$(GdkBaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
@@ -95,7 +95,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\demos\icon-browser"
+                               
AdditionalIncludeDirectories="..\..\demos\icon-browser;$(GdkBaseIncludesDebug)"
                                PreprocessorDefinitions="_DEBUG"
                                MinimalRebuild="true"
                                BasicRuntimeChecks="3"
@@ -127,7 +127,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
-                               AdditionalIncludeDirectories="..\..\gdk;..\..\demos\icon-browser"
+                               
AdditionalIncludeDirectories="..\..\demos\icon-browser;$(GdkBaseIncludesRelease)"
                                EnableIntrinsicFunctions="true"
                                PreprocessorDefinitions=""
                                RuntimeLibrary="2"
diff --git a/win32/vs9/gtk3-install.vspropsin b/win32/vs9/gtk3-install.vspropsin
index 387a2a014d..9df7d88431 100644
--- a/win32/vs9/gtk3-install.vspropsin
+++ b/win32/vs9/gtk3-install.vspropsin
@@ -126,6 +126,25 @@ mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32&#x0D;&#x0A;
 mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\deprecated&#x0D;&#x0A;
 
 copy ..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
+
+if "$(ConfigurationName)" == "Release" goto COPY_RELEASE_BUILT_HEADERS&#x0D;&#x0A;
+if "$(ConfigurationName)" == "Release_Broadway" goto COPY_RELEASE_BUILT_HEADERS&#x0D;&#x0A;
+if "$(ConfigurationName)" == "Debug" goto COPY_DEBUG_BUILT_HEADERS&#x0D;&#x0A;
+if "$(ConfigurationName)" == "Debug_Broadway" goto COPY_DEBUG_BUILT_HEADERS&#x0D;&#x0A;
+
+:COPY_DEBUG_BUILT_HEADERS&#x0D;&#x0A;
+copy .\Debug\$(PlatformName)\obj\gdk-3\gdk\gdkconfig.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
+copy .\Debug\$(PlatformName)\obj\gdk-3\gdk\gdkenumtypes.h 
$(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
+copy .\Debug\$(PlatformName)\obj\gdk-3\gdk\gdkversionmacros.h 
$(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
+goto CONTINUE_HEADERS&#x0D;&#x0A;
+
+:COPY_RELEASE_BUILT_HEADERS&#x0D;&#x0A;
+copy .\Release\$(PlatformName)\obj\gdk-3\gdk\gdkconfig.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
+copy .\Release\$(PlatformName)\obj\gdk-3\gdk\gdkenumtypes.h 
$(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
+copy .\Release\$(PlatformName)\obj\gdk-3\gdk\gdkversionmacros.h 
$(CopyDir)\include\gtk-$(ApiVersion)\gdk&#x0D;&#x0A;
+goto CONTINUE_HEADERS&#x0D;&#x0A;
+
+:CONTINUE_HEADERS&#x0D;&#x0A;
 #include "gdk-3.headers"
 #include "gdk3-win32.headers"
 


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