[gobject-introspection] Rework The Visual Studio 2010 Build Process



commit a24c80dbc8632ce7c38f32f991c9998381c5de54
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Tue Jan 21 15:26:50 2014 +0800

    Rework The Visual Studio 2010 Build Process
    
    This patch makes the build of G-I on Visual Studio 2010 into a two-step
    process, as it would make it clearer and easier to the one building G-I by:
    
    -Splitting up the property sheets into multiple parts, where pre-configured
     code (which is currently shipped with the tarball) is copied using custom
     build steps, so that they can be re-copied when they are updated.  This
     also removes the need for setting environment variables before launching
     the Visual Studio Project to build the G-I DLL, the tools written in C and
     the _giscanner Python2 module.  The Python2 paths (set to Python 2.7.x)
     are now set in a property sheet, which can be updated quite easily, if
     needed.
    
    -Directing people to use the set of NMake Makefiles to build the
     introspection files for GLib, and also the .gir's that are shipped with
     G-I, which was added in a previous commit, as it would make it clearer
     what are needed to build the introspection files.

 Makefile-msvcproj.am                            |    4 +-
 build/win32/Makefile.am                         |    2 -
 build/win32/create_nonglib_gir.py               |   72 ------
 build/win32/gengir.bat                          |  284 -----------------------
 build/win32/vs10/Makefile.am                    |   18 +-
 build/win32/vs10/README.txt                     |   39 +++-
 build/win32/vs10/_giscanner.vcxproj             |   30 ++-
 build/win32/vs10/annotation.vcxproj             |   14 +-
 build/win32/vs10/cmph-bdz-test.vcxproj          |    8 +-
 build/win32/vs10/cmph.vcxprojin                 |   14 +-
 build/win32/vs10/everything.vcxproj             |  201 ----------------
 build/win32/vs10/everything.vcxproj.filters     |   22 --
 build/win32/vs10/foo.vcxproj                    |    8 +-
 build/win32/vs10/g-ir-compiler.vcxprojin        |   16 +-
 build/win32/vs10/g-ir-generate.vcxproj          |    8 +-
 build/win32/vs10/generate_typelibs.vcxproj      |  103 --------
 build/win32/vs10/gettype.vcxproj                |   14 +-
 build/win32/vs10/gi-build-defines.props         |   34 +++
 build/win32/vs10/gi-extra-paths.props           |   23 ++
 build/win32/vs10/gi-gen-srcs.props              |   36 +++
 build/win32/vs10/gi-install.propsin             |   42 ++++
 build/win32/vs10/gi-prebuild.vcxproj            |  146 ++++++++++++
 build/win32/vs10/gi-version-paths.props         |   58 +++++
 build/win32/vs10/gimarshallingtests.vcxproj     |   14 +-
 build/win32/vs10/gir.propsin                    |  228 ------------------
 build/win32/vs10/girepository.vcxproj.filtersin |    3 +
 build/win32/vs10/girepository.vcxprojin         |   36 +++-
 build/win32/vs10/glib-print.vcxproj             |    8 +-
 build/win32/vs10/gobject-introspection.sln      |   30 +--
 build/win32/vs10/gtkfrob.vcxproj                |   14 +-
 build/win32/vs10/install.vcxproj                |   12 +-
 build/win32/vs10/regress.vcxproj                |   14 +-
 build/win32/vs10/sletter.vcxproj                |   14 +-
 build/win32/vs10/testinherit.vcxproj            |   14 +-
 build/win32/vs10/utility.vcxproj                |   14 +-
 35 files changed, 557 insertions(+), 1040 deletions(-)
---
diff --git a/Makefile-msvcproj.am b/Makefile-msvcproj.am
index f4dcd3c..6e5b796 100644
--- a/Makefile-msvcproj.am
+++ b/Makefile-msvcproj.am
@@ -182,8 +182,8 @@
        $(CPP) -P - <$(top_srcdir)/build/win32/vs9/gi-install.vspropsin >$@
        rm ./build/win32/vs9/gir.vs9.install
 
-./build/win32/vs10/gir.props: ./build/win32/vs10/gir.vs10.install $(top_srcdir)/build/win32/vs10/gir.propsin
-       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gir.propsin >$@
+./build/win32/vs10/gi-install.props: ./build/win32/vs10/gir.vs10.install 
$(top_srcdir)/build/win32/vs10/gi-install.propsin
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gi-install.propsin >$@
        rm ./build/win32/vs10/gir.vs10.install
 
 GENERATED_MSVC_FILES = \
diff --git a/build/win32/Makefile.am b/build/win32/Makefile.am
index f404aa1..0056ece 100644
--- a/build/win32/Makefile.am
+++ b/build/win32/Makefile.am
@@ -4,8 +4,6 @@ EXTRA_DIST = \
        annotation.def  \
        everything.def  \
        foo.def \
-       gengir.bat      \
-       create_nonglib_gir.py   \
        gettype.def     \
        gimarshallingtests.def  \
        gtkfrob.def     \
diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am
index 0046bc4..dd43a31 100644
--- a/build/win32/vs10/Makefile.am
+++ b/build/win32/vs10/Makefile.am
@@ -1,17 +1,20 @@
 EXTRA_DIST = \
        gobject-introspection.sln       \
+       gi-build-defines.props  \
+       gi-extra-paths.props    \
+       gi-gen-srcs.props       \
+       gi-install.propsin      \
+       gi-install.props        \
+       gi-version-paths.props  \
+       gi-prebuild.vcxproj     \
        girepository.vcxprojin  \
        girepository.vcxproj.filtersin  \
-       gir.propsin     \
-       gir.props       \
        annotation.vcxproj      \
        annotation.vcxproj.filters      \
        cmph-bdz-test.vcxproj   \
        cmph-bdz-test.vcxproj.filters   \
        cmph.vcxprojin  \
        cmph.vcxproj.filtersin  \
-       everything.vcxproj      \
-       everything.vcxproj.filters      \
        foo.vcxproj     \
        foo.vcxproj.filters     \
        g-ir-compiler.vcxprojin \
@@ -36,12 +39,11 @@ EXTRA_DIST = \
        utility.vcxproj.filters \
        _giscanner.vcxproj      \
        _giscanner.vcxproj.filters      \
-       generate_typelibs.vcxproj       \
        install.vcxproj \
        README.txt
 
-gir.props: $(top_srcdir)/build/win32/vs10/gir.propsin gir.vs10.install
-       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gir.propsin >$@
+gi-install.props: $(top_srcdir)/build/win32/vs10/gi-install.propsin gir.vs10.install
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gi-install.propsin >$@
        rm gir.vs10.install
 
-CLEANFILES = gir.props
+CLEANFILES = gi-install.props
diff --git a/build/win32/vs10/README.txt b/build/win32/vs10/README.txt
index 06f216e..db905a1 100644
--- a/build/win32/vs10/README.txt
+++ b/build/win32/vs10/README.txt
@@ -59,16 +59,38 @@ http://www.gtk.org/download/win32.php [32-bit]
 http://www.gtk.org/download/win64.php [64-bit]
 
 *** Note! ***
-Please note that due to numerous possible configurations on Python, some environmental
-variables need to be set before launching the gobject-introsection.sln solution file.
-
-These variables are namely:
-PYTHONDIR: Root installation folder of your Python interpretor, where python.exe is
-           located.  Currently only Python 2.6.x and 2.7.x is supported.
-           It must match your build configuration (Win32 or x64/amd64)
+Please note that due to numerous possible configurations on Python, PKG_CONFIG_PATH and
+MinGW, the build of G-I is now a 2-step process: one with the Visual Studio Projects that
+will build the libraries, tools, Python Module and test DLLs (except for the everything
+test), and the other one with NMake Makefiles for building the introspection files.
+Please note that if one needs to change the installation location
+of Python, one needs to change the values of PythonDir (for x86/Win32 builds) and/or
+PythonDirX64 (for x64 builds) in gi-extra-paths.props
+
+The use of Visual Studio Projects will no longer require the setting of environmental
+variables, but the following environmental variables are needed (either by using "set xxx=yyy"
+or by nmake -f gi-introspection-msvc.mak xxx=yyy) for building the introspection files (which
+should be done after successfully building the Project Files):
+
+PYTHON2: Full path to your Python 2.6.x/2.7.x interpretor (python.exe) if it is
+         not in your PATH.  Please note that only 2.6.x and 2.7.x works at this time.
+         You need to use an x64/amd64 version of Python for x64 builds, and a Win32/x86
+         version of Python for Win32/x86 builds
 PKG_CONFIG_PATH: Location of the .pc (pkg-config) files, especially for the GLib .pc files.
 MINGWDIR: Root installation folder for your Windows GCC (such as MinGW).  For example,
           if your gcc executable (gcc.exe) is in c:\mingw\bin, use "set MINGWDIR=c:\mingw"
+          You need to use an x64/amd64 version of gcc for x64 builds, and a Win32/x86
+          version of gcc for Win32/x86 builds
+
+GCC is currently needed to as the GCC preprocessor is used to create the introspection dump source
+file, which is then compiled with the Visual C++ compiler to produce the .gir files.
+
+Please see $(srcroot)\build\gi-introspection-msvc.mak for more details.  Doing
+"nmake -f gi-introspection-msvc.mak (options omitted)" will build the various introspection files,
+and "nmake -f gi-introspection-msvc.mak (options omitted) install-introspection" will copy the introspection
+files to <root>\vs10\<PlatformName>\share\gir-1.0 (.gir files) and
+<root>\vs10\<PlatformName>\lib\girepository-1.0 (.typelib files)
+
 *** End of Note! ***
 
 The "install" project will copy build results and headers into their
@@ -77,9 +99,6 @@ built DLLs go into <root>\vs10\<PlatformName>\bin, built LIBs into
 <root>\vs10\<PlatformName>\lib and gobject-introspection headers into
 <root>\vs10\<PlatformName>\include\gobject-introsection-1.0.
 
-The generated .gir files will end up in <root>\vs10\<PlatformName>\share\gir-1.0
-and .typelib files will end up in <root>\vs10\<PlatformName>\lib\girepository-1.0
-
 This is then from where
 project files higher in the stack are supposed to look for them, not
 from a specific gobject-introspection source tree.
diff --git a/build/win32/vs10/_giscanner.vcxproj b/build/win32/vs10/_giscanner.vcxproj
index 07f2611..6b4b611 100644
--- a/build/win32/vs10/_giscanner.vcxproj
+++ b/build/win32/vs10/_giscanner.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-extra-paths.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-extra-paths.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-extra-paths.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-extra-paths.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PYTHONDIR)\include;$(PYTHONDIR)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PythonDir)\include;$(PythonDir)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <ForcedIncludeFiles>%(ForcedIncludeFiles);io.h</ForcedIncludeFiles>
       <PreprocessorDefinitions>_DEBUG;YY_NO_UNISTD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
@@ -88,7 +88,7 @@
     </ClCompile>
     <Link>
       <OutputFile>$(OutDir)$(ProjectName).pyd</OutputFile>
-      
<AdditionalLibraryDirectories>$(PYTHONDIR)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      
<AdditionalLibraryDirectories>$(PythonDir)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <TargetMachine>MachineX86</TargetMachine>
@@ -98,7 +98,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PYTHONDIR)\include;$(PYTHONDIR)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PythonDir)\include;$(PythonDir)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <ForcedIncludeFiles>%(ForcedIncludeFiles);io.h</ForcedIncludeFiles>
       <PreprocessorDefinitions>YY_NO_UNISTD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -110,7 +110,7 @@
     </ClCompile>
     <Link>
       <OutputFile>$(OutDir)$(ProjectName).pyd</OutputFile>
-      
<AdditionalLibraryDirectories>$(PYTHONDIR)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      
<AdditionalLibraryDirectories>$(PythonDir)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
@@ -124,7 +124,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PYTHONDIR)\include;$(PYTHONDIR)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PythonDirX64)\include;$(PythonDirX64)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <ForcedIncludeFiles>%(ForcedIncludeFiles);io.h</ForcedIncludeFiles>
       <PreprocessorDefinitions>_DEBUG;YY_NO_UNISTD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
@@ -137,7 +137,7 @@
     </ClCompile>
     <Link>
       <OutputFile>$(OutDir)$(ProjectName).pyd</OutputFile>
-      
<AdditionalLibraryDirectories>$(PYTHONDIR)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      
<AdditionalLibraryDirectories>$(PythonDirX64)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <TargetMachine>MachineX64</TargetMachine>
@@ -150,7 +150,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PYTHONDIR)\include;$(PYTHONDIR)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<AdditionalIncludeDirectories>..\..\..\giscanner;$(PythonDirX64)\include;$(PythonDirX64)\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <ForcedIncludeFiles>%(ForcedIncludeFiles);io.h</ForcedIncludeFiles>
       <PreprocessorDefinitions>YY_NO_UNISTD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -162,7 +162,7 @@
     </ClCompile>
     <Link>
       <OutputFile>$(OutDir)$(ProjectName).pyd</OutputFile>
-      
<AdditionalLibraryDirectories>$(PYTHONDIR)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      
<AdditionalLibraryDirectories>$(PythonDirX64)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
@@ -176,6 +176,12 @@
     <ClCompile Include="..\..\..\scannerparser.c" />
     <ClCompile Include="..\..\..\giscanner\sourcescanner.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/annotation.vcxproj b/build/win32/vs10/annotation.vcxproj
index eb194f4..8ee2f1d 100644
--- a/build/win32/vs10/annotation.vcxproj
+++ b/build/win32/vs10/annotation.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -169,6 +169,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\scanner\annotation.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/cmph-bdz-test.vcxproj b/build/win32/vs10/cmph-bdz-test.vcxproj
index e5308e8..cdd3b17 100644
--- a/build/win32/vs10/cmph-bdz-test.vcxproj
+++ b/build/win32/vs10/cmph-bdz-test.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
diff --git a/build/win32/vs10/cmph.vcxprojin b/build/win32/vs10/cmph.vcxprojin
index 1bdbe64..9bab7e0 100644
--- a/build/win32/vs10/cmph.vcxprojin
+++ b/build/win32/vs10/cmph.vcxprojin
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -129,6 +129,12 @@
   <ItemGroup>
 #include "cmph.vs10.sourcefiles"
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/foo.vcxproj b/build/win32/vs10/foo.vcxproj
index 237784f..2e03f83 100644
--- a/build/win32/vs10/foo.vcxproj
+++ b/build/win32/vs10/foo.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
diff --git a/build/win32/vs10/g-ir-compiler.vcxprojin b/build/win32/vs10/g-ir-compiler.vcxprojin
index b1f507a..4961ece 100644
--- a/build/win32/vs10/g-ir-compiler.vcxprojin
+++ b/build/win32/vs10/g-ir-compiler.vcxprojin
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -75,7 +75,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_DEBUG;FFI_BUILDING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_DEBUG;$(FFIDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -97,7 +97,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_DEBUG;FFI_BUILDING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_DEBUG;$(FFIDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -119,7 +119,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>FFI_BUILDING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>$(FFIDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
@@ -144,7 +144,7 @@
       <Optimization>MinSpace</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <PreprocessorDefinitions>FFI_BUILDING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>$(FFIDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
diff --git a/build/win32/vs10/g-ir-generate.vcxproj b/build/win32/vs10/g-ir-generate.vcxproj
index 60d468f..52dfda8 100644
--- a/build/win32/vs10/g-ir-generate.vcxproj
+++ b/build/win32/vs10/g-ir-generate.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
diff --git a/build/win32/vs10/gettype.vcxproj b/build/win32/vs10/gettype.vcxproj
index 44c8d04..2e6973f 100644
--- a/build/win32/vs10/gettype.vcxproj
+++ b/build/win32/vs10/gettype.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -169,6 +169,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\scanner\gettype.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/gi-build-defines.props b/build/win32/vs10/gi-build-defines.props
new file mode 100644
index 0000000..160b17f
--- /dev/null
+++ b/build/win32/vs10/gi-build-defines.props
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="gi-version-paths.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <FFIDefines>FFI_BUILDING</FFIDefines>
+    <GIRepositoryBuildDefines>G_IREPOSITORY_COMPILATION;$(FFIDefines);DLL_EXPORT</GIRepositoryBuildDefines>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>gibuilddefinesprops</_PropertySheetDisplayName>
+    <OutDir>$(SolutionDir)$(Configuration)\$(PlatformName)\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      
<AdditionalIncludeDirectories>..\..\..;..\..\..\girepository;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+    </ClCompile>
+    <Link>
+      
<AdditionalDependencies>gio-2.0.lib;gobject-2.0.lib;gmodule-2.0.lib;gthread-2.0.lib;glib-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <BuildMacro Include="FFIDefines">
+      <Value>$(FFIDefines)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GIRepositoryBuildDefines">
+      <Value>$(GIRepositoryBuildDefines)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/gi-extra-paths.props b/build/win32/vs10/gi-extra-paths.props
new file mode 100644
index 0000000..93b847d
--- /dev/null
+++ b/build/win32/vs10/gi-extra-paths.props
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="gi-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <!-- PythonDir currently needs to point to a 32-bit/x86 Python 2.6/2.7 installation -->
+    <PythonDir>c:\\python27</PythonDir>
+    <!-- PythonDirX64 currently needs to point to an x86-64/x64 Python 2.6/2.7 installation -->
+    <PythonDirX64>c:\\python27.x64</PythonDirX64>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>giextrapathsprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="PythonDir">
+      <Value>$(PythonDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PythonDirX64">
+      <Value>$(PythonDirX64)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/gi-gen-srcs.props b/build/win32/vs10/gi-gen-srcs.props
new file mode 100644
index 0000000..0cda3d5
--- /dev/null
+++ b/build/win32/vs10/gi-gen-srcs.props
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="gi-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <CopyConfigH>copy ..\..\..\config.h.win32 ..\..\..\config.h</CopyConfigH>
+    <CopyGIRScanner>copy ..\..\..\tools\g-ir-scanner.in ..\..\..\tools\g-ir-scanner</CopyGIRScanner>
+    <CopyGIRDocTool>copy ..\..\..\tools\g-ir-doc-tool.in ..\..\..\tools\g-ir-doc-tool</CopyGIRDocTool>
+    <CopyGIRAnnotationTool>copy ..\..\..\tools\g-ir-annotation-tool.in 
..\..\..\tools\g-ir-annotation-tool</CopyGIRAnnotationTool>
+    <GenerateGIRDef>
+echo EXPORTS &gt; $(DefDir)\girepository.def
+cl -EP ..\..\..\girepository\girepository.symbols &gt;&gt; $(DefDir)\girepository.def
+    </GenerateGIRDef>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>gigensrcsprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="CopyConfigH">
+      <Value>$(CopyConfigH)</Value>
+    </BuildMacro>
+    <BuildMacro Include="CopyGIRScanner">
+      <Value>$(CopyGIRScanner)</Value>
+    </BuildMacro>
+    <BuildMacro Include="CopyGIRDocTool">
+      <Value>$(CopyGIRDocTool)</Value>
+    </BuildMacro>
+    <BuildMacro Include="CopyGIRAnnotationTool">
+      <Value>$(CopyGIRAnnotationTool)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GenerateGIRDef">
+      <Value>$(GenerateGIRDef)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/gi-install.propsin b/build/win32/vs10/gi-install.propsin
new file mode 100644
index 0000000..b576c3b
--- /dev/null
+++ b/build/win32/vs10/gi-install.propsin
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="gi-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <GIDoInstall>
+mkdir $(CopyDir)
+mkdir $(CopyDir)\bin
+
+copy $(SolutionDir)$(Configuration)\$(Platform)\bin\$(LibGIDllPrefix)girepository$(LibGIDllSuffix).dll 
$(CopyDir)\bin
+copy $(SolutionDir)$(Configuration)\$(Platform)\bin\g-ir-compiler.exe $(CopyDir)\bin
+copy $(SolutionDir)$(Configuration)\$(Platform)\bin\g-ir-generate.exe $(CopyDir)\bin
+copy ..\..\..\tools\g-ir-annotation-tool $(CopyDir)\bin
+copy ..\..\..\tools\g-ir-doc-tool $(CopyDir)\bin
+copy ..\..\..\tools\g-ir-scanner $(CopyDir)\bin
+
+#include "gir.vs10.install"
+
+copy $(SolutionDir)$(Configuration)\$(Platform)\bin\_giscanner.pyd 
$(CopyDir)\lib\gobject-introspection\giscanner
+
+mkdir $(CopyDir)\share\gir-$(ApiVersion)
+mkdir $(CopyDir)\share\gobject-introspection-$(ApiVersion)
+copy ..\..\..\girepository\gdump.c $(CopyDir)\share\gobject-introspection-$(ApiVersion)
+
+mkdir $(CopyDir)\lib\girepository-$(ApiVersion)
+copy $(SolutionDir)$(Configuration)\$(Platform)\bin\girepository-$(ApiVersion).lib $(CopyDir)\lib
+
+echo Please note that building GObject-Introspection with Visual Studio is now a 2-step process
+echo Please open the appropriate Visual Studio (or Windows SDK) command prompt and use the NMake Makefile
+echo in SRC_ROOT\build\gi-introspection-msvc.mak to build the introspection files
+</GIDoInstall>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>giinstallprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="GIDoInstall">
+      <Value>$(GIDoInstall)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/gi-prebuild.vcxproj b/build/win32/vs10/gi-prebuild.vcxproj
new file mode 100644
index 0000000..feab029
--- /dev/null
+++ b/build/win32/vs10/gi-prebuild.vcxproj
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B11}</ProjectGuid>
+    <RootNamespace>giprebuild</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-gen-srcs.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-gen-srcs.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-gen-srcs.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-gen-srcs.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\..\config.h.win32">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying config.h from 
config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyConfigH)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying config.h from 
config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying config.h from 
config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyConfigH)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying config.h from 
config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyConfigH)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\config.h;%(Outputs)</Outputs>
+    </CustomBuild>
+    <CustomBuild Include="..\..\..\tools\g-ir-scanner.in">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying g-ir-scanner from 
g-ir-scanner.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyGIRScanner)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\tools\g-ir-scanner;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying g-ir-scanner from 
g-ir-scanner.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyGIRScanner)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\tools\g-ir-scanner;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying g-ir-scanner from 
g-ir-scanner.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyGIRScanner)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\tools\g-ir-scanner;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying g-ir-scanner from 
g-ir-scanner.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyGIRScanner)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\tools\g-ir-scanner;%(Outputs)</Outputs>
+    </CustomBuild>
+    <CustomBuild Include="..\..\..\tools\g-ir-doc-tool.in">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying g-ir-doc-tool from 
g-ir-doc-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyGIRDocTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\tools\g-ir-doc-tool;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying g-ir-doc-tool from 
g-ir-doc-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyGIRDocTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\tools\g-ir-doc-tool;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying g-ir-doc-tool from 
g-ir-doc-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyGIRDocTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\tools\g-ir-doc-tool;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying g-ir-doc-tool from 
g-ir-doc-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyGIRDocTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\tools\g-ir-doc-tool;%(Outputs)</Outputs>
+    </CustomBuild>
+    <CustomBuild Include="..\..\..\tools\g-ir-annotation-tool.in">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying g-ir-annotation-tool from 
g-ir-annotation-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyGIRAnnotationTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\tools\g-ir-annotation-tool;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying g-ir-annotation-tool from 
g-ir-annotation-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyGIRAnnotationTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\tools\g-ir-annotation-tool;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying g-ir-annotation-tool from 
g-ir-annotation-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyGIRAnnotationTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\tools\g-ir-annotation-tool;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying g-ir-annotation-tool from 
g-ir-annotation-tool.in...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyGIRAnnotationTool)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\tools\g-ir-annotation-tool;%(Outputs)</Outputs>
+    </CustomBuild>
+  </ItemGroup>
+  <ItemGroup>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/build/win32/vs10/gi-version-paths.props b/build/win32/vs10/gi-version-paths.props
new file mode 100644
index 0000000..88e4348
--- /dev/null
+++ b/build/win32/vs10/gi-version-paths.props
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup Label="UserMacros">
+    <VSVER>10</VSVER>
+    <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVER)\$(Platform)</GlibEtcInstallRoot>
+    <BASE_GI_DIR>$(SolutionDir)\..\..\..</BASE_GI_DIR>
+    <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
+    <ApiVersion>1.0</ApiVersion>
+    <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)</DefDir>
+    <LibGILibtoolCompatibleDllPrefix>lib</LibGILibtoolCompatibleDllPrefix>
+    <LibGILibtoolCompatibleDllSuffix>-$(ApiVersion)-0</LibGILibtoolCompatibleDllSuffix>
+    <LibGISeparateVSDllPrefix />
+    <LibGISeparateVSDllSuffix>-1-vs$(VSVER)</LibGISeparateVSDllSuffix>
+    <LibGIDllPrefix>$(LibGISeparateVSDllPrefix)</LibGIDllPrefix>
+    <LibGIDllSuffix>$(LibGISeparateVSDllSuffix)</LibGIDllSuffix>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>giversionpathsprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="VSVER">
+      <Value>$(VSVER)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GlibEtcInstallRoot">
+      <Value>$(GlibEtcInstallRoot)</Value>
+    </BuildMacro>
+    <BuildMacro Include="BASE_GI_DIR">
+      <Value>$(BASE_GI_DIR)</Value>
+    </BuildMacro>
+    <BuildMacro Include="CopyDir">
+      <Value>$(CopyDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="ApiVersion">
+      <Value>$(ApiVersion)</Value>
+    </BuildMacro>
+    <BuildMacro Include="DefDir">
+      <Value>$(DefDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="LibGILibtoolCompatibleDllPrefix">
+      <Value>$(LibGILibtoolCompatibleDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="LibGILibtoolCompatibleDllSuffix">
+      <Value>$(LibGILibtoolCompatibleDllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="LibGISeparateVSDllPrefix">
+      <Value>$(LibGISeparateVSDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="LibGISeparateVSDllSuffix">
+      <Value>$(LibGISeparateVSDllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="LibGIDllPrefix">
+      <Value>$(LibGIDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="LibGIDllSuffix">
+      <Value>$(LibGIDllSuffix)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/gimarshallingtests.vcxproj b/build/win32/vs10/gimarshallingtests.vcxproj
index 9100eae..fbbb162 100644
--- a/build/win32/vs10/gimarshallingtests.vcxproj
+++ b/build/win32/vs10/gimarshallingtests.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -169,6 +169,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\gimarshallingtests.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/girepository.vcxproj.filtersin b/build/win32/vs10/girepository.vcxproj.filtersin
index ccc6895..c0245dc 100644
--- a/build/win32/vs10/girepository.vcxproj.filtersin
+++ b/build/win32/vs10/girepository.vcxproj.filtersin
@@ -17,4 +17,7 @@
   <ItemGroup>
 #include "girepository.vs10.sourcefiles.filters"
   </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\..\girepository\girepository.symbols"><Filter>Resource 
Files</Filter></CustomBuild>
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/build/win32/vs10/girepository.vcxprojin b/build/win32/vs10/girepository.vcxprojin
index fe70a0d..76702e9 100644
--- a/build/win32/vs10/girepository.vcxprojin
+++ b/build/win32/vs10/girepository.vcxprojin
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-gen-srcs.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -76,7 +76,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       
<AdditionalIncludeDirectories>..\..\..\girepository;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      
<PreprocessorDefinitions>_DEBUG;G_IREPOSITORY_COMPILATION;FFI_BUILDING;DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>_DEBUG;$(GIRepositoryBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -103,7 +103,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       
<AdditionalIncludeDirectories>..\..\..\girepository;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      
<PreprocessorDefinitions>G_IREPOSITORY_COMPILATION;FFI_BUILDING;DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>$(GIRepositoryBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
@@ -133,7 +133,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       
<AdditionalIncludeDirectories>..\..\..\girepository;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      
<PreprocessorDefinitions>_DEBUG;G_IREPOSITORY_COMPILATION;FFI_BUILDING;DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>_DEBUG;$(GIRepositoryBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -163,7 +163,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       
<AdditionalIncludeDirectories>..\..\..\girepository;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      
<PreprocessorDefinitions>G_IREPOSITORY_COMPILATION;FFI_BUILDING;DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>$(GIRepositoryBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
@@ -190,6 +190,26 @@
 #include "girepository.vs10.sourcefiles"
   </ItemGroup>
   <ItemGroup>
+    <CustomBuild Include="..\..\..\girepository\girepository.symbols">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating 
$(DefDir)\girepository.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGIRDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating 
$(DefDir)\girepository.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGIRDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating 
$(DefDir)\girepository.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGIRDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating 
$(DefDir)\girepository.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGIRDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
+    </CustomBuild>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
     <ProjectReference Include="cmph.vcxproj">
       <Project>{442c007e-d901-41da-9706-5db4afb4c06b}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
diff --git a/build/win32/vs10/glib-print.vcxproj b/build/win32/vs10/glib-print.vcxproj
index 57dc430..179d607 100644
--- a/build/win32/vs10/glib-print.vcxproj
+++ b/build/win32/vs10/glib-print.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
diff --git a/build/win32/vs10/gobject-introspection.sln b/build/win32/vs10/gobject-introspection.sln
index 916cbb8..0794f3c 100644
--- a/build/win32/vs10/gobject-introspection.sln
+++ b/build/win32/vs10/gobject-introspection.sln
@@ -1,6 +1,8 @@
 
 Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gi-prebuild", "gi-prebuild.vcxproj", 
"{2093D218-190E-4194-9421-3BA7CBF33B11}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cmph", "cmph.vcxproj", 
"{442C007E-D901-41DA-9706-5DB4AFB4C06B}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cmph-bdz-test", "cmph-bdz-test.vcxproj", 
"{E41F378B-CCDD-4B1C-89C3-6D2C950FAF1A}"
@@ -33,10 +35,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtkfrob", "gtkfrob.vcxproj"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sletter", "sletter.vcxproj", 
"{86A35E44-E4C8-4628-87E9-942D136D72BC}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "everything", "everything.vcxproj", 
"{2986281A-BD41-4BD1-8B43-25B7D7E7F234}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generate_typelibs", "generate_typelibs.vcxproj", 
"{BE771349-F11E-42AE-A23F-DA083FDC6FB8}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", 
"{2093D218-190E-4194-9421-3BA7CBF33B10}"
 EndProject
 Global
@@ -47,6 +45,14 @@ Global
                Release|x64 = Release|x64
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Debug|Win32.ActiveCfg = Debug|Win32
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Debug|Win32.Build.0 = Debug|Win32
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Debug|x64.ActiveCfg = Debug|x64
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Debug|x64.Build.0 = Debug|x64
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Release|Win32.ActiveCfg = Release|Win32
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Release|Win32.Build.0 = Release|Win32
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Release|x64.ActiveCfg = Release|x64
+               {2093D218-190E-4194-9421-3BA7CBF33B11}.Release|x64.Build.0 = Release|x64
                {442C007E-D901-41DA-9706-5DB4AFB4C06B}.Debug|Win32.ActiveCfg = Debug|Win32
                {442C007E-D901-41DA-9706-5DB4AFB4C06B}.Debug|Win32.Build.0 = Debug|Win32
                {442C007E-D901-41DA-9706-5DB4AFB4C06B}.Debug|x64.ActiveCfg = Debug|x64
@@ -175,22 +181,6 @@ Global
                {86A35E44-E4C8-4628-87E9-942D136D72BC}.Release|Win32.Build.0 = Release|Win32
                {86A35E44-E4C8-4628-87E9-942D136D72BC}.Release|x64.ActiveCfg = Release|x64
                {86A35E44-E4C8-4628-87E9-942D136D72BC}.Release|x64.Build.0 = Release|x64
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Debug|Win32.ActiveCfg = Debug|Win32
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Debug|Win32.Build.0 = Debug|Win32
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Debug|x64.ActiveCfg = Debug|x64
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Debug|x64.Build.0 = Debug|x64
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Release|Win32.ActiveCfg = Release|Win32
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Release|Win32.Build.0 = Release|Win32
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Release|x64.ActiveCfg = Release|x64
-               {2986281A-BD41-4BD1-8B43-25B7D7E7F234}.Release|x64.Build.0 = Release|x64
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Debug|Win32.ActiveCfg = Debug|Win32
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Debug|Win32.Build.0 = Debug|Win32
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Debug|x64.ActiveCfg = Debug|x64
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Debug|x64.Build.0 = Debug|x64
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Release|Win32.ActiveCfg = Release|Win32
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Release|Win32.Build.0 = Release|Win32
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Release|x64.ActiveCfg = Release|x64
-               {BE771349-F11E-42AE-A23F-DA083FDC6FB8}.Release|x64.Build.0 = Release|x64
                {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug|Win32.ActiveCfg = Debug|Win32
                {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug|Win32.Build.0 = Debug|Win32
                {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug|x64.ActiveCfg = Debug|x64
diff --git a/build/win32/vs10/gtkfrob.vcxproj b/build/win32/vs10/gtkfrob.vcxproj
index 10297ca..f3f55ce 100644
--- a/build/win32/vs10/gtkfrob.vcxproj
+++ b/build/win32/vs10/gtkfrob.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -169,6 +169,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\scanner\gtkfrob.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/install.vcxproj b/build/win32/vs10/install.vcxproj
index 976590e..73e34f2 100644
--- a/build/win32/vs10/install.vcxproj
+++ b/build/win32/vs10/install.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-install.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-install.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-install.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-install.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -105,10 +105,6 @@
       <Project>{f4e6621f-a7dd-4863-8ccf-ba04dfc601e3}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="generate_typelibs.vcxproj">
-      <Project>{be771349-f11e-42ae-a23f-da083fdc6fb8}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
     <ProjectReference Include="girepository.vcxproj">
       <Project>{23e28245-8fc7-4b41-b1c5-8785bd4366a7}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
diff --git a/build/win32/vs10/regress.vcxproj b/build/win32/vs10/regress.vcxproj
index 052bf0f..a3b4b48 100644
--- a/build/win32/vs10/regress.vcxproj
+++ b/build/win32/vs10/regress.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -173,6 +173,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\scanner\regress.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/sletter.vcxproj b/build/win32/vs10/sletter.vcxproj
index b4b341f..7f6d62a 100644
--- a/build/win32/vs10/sletter.vcxproj
+++ b/build/win32/vs10/sletter.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -169,6 +169,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\scanner\sletter.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/testinherit.vcxproj b/build/win32/vs10/testinherit.vcxproj
index 5eab228..1464d7b 100644
--- a/build/win32/vs10/testinherit.vcxproj
+++ b/build/win32/vs10/testinherit.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -169,6 +169,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\scanner\drawable.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs10/utility.vcxproj b/build/win32/vs10/utility.vcxproj
index 044ed9a..21beb6f 100644
--- a/build/win32/vs10/utility.vcxproj
+++ b/build/win32/vs10/utility.vcxproj
@@ -51,19 +51,19 @@
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gir.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -169,6 +169,12 @@
   <ItemGroup>
     <ClCompile Include="..\..\..\tests\scanner\utility.c" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gi-prebuild.vcxproj">
+      <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>


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