[gobject-introspection] MSVC builds: Re-integrate introspection build in projects



commit 73e2a3300a92a53d3c8c49c148655093ae642afb
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Thu Mar 17 15:23:50 2016 +0800

    MSVC builds: Re-integrate introspection build in projects
    
    GLib has been recently updated to optionally generate the .pc files
    within the MSVC builds, which is needed to build the introspection
    files, if Python is available.  As we are looking for the .pc files from a
    common location as a result, we can build the introspection files within
    the project files, so that the build process does not have to be split
    into 2 stages.
    
    This is done by using wrapper projects that calls the NMake Makefiles that
    is used to build the introspection files.
    
    Note that although the IDE claims that the introspection
    files failed to build, but they are really generated-so some investigation
    is needed to see whether we can silence those false-positive errors.
    
    Also clean up the property sheets a bit.

 build/win32/vs10/Makefile.am               |    2 +-
 build/win32/vs10/_giscanner.vcxproj        |    8 +-
 build/win32/vs10/gi-build-defines.props    |   10 ++
 build/win32/vs10/gi-gen-srcs.props         |    2 +-
 build/win32/vs10/gi-install.props          |  173 ++++++++++++++++++++++++++++
 build/win32/vs10/gi-install.vcxproj        |    4 +
 build/win32/vs10/gi-introspect.vcxproj     |  115 ++++++++++++++++++
 build/win32/vs10/gi-version-paths.props    |   29 ++++-
 build/win32/vs10/gobject-introspection.sln |   10 ++
 build/win32/vs11/Makefile.am               |    2 +-
 build/win32/vs12/Makefile.am               |    2 +-
 build/win32/vs14/Makefile.am               |    2 +-
 build/win32/vs9/Makefile.am                |    2 +-
 build/win32/vs9/_giscanner.vcproj          |    8 +-
 build/win32/vs9/gi-build-defines.vsprops   |    8 ++
 build/win32/vs9/gi-extra-paths.vsprops     |   18 ---
 build/win32/vs9/gi-gen-srcs.vsprops        |    2 +-
 build/win32/vs9/gi-install.vspropsin       |   29 ++++-
 build/win32/vs9/gi-introspect.vcproj       |   76 ++++++++++++
 build/win32/vs9/gi-version-paths.vsprops   |   30 ++++--
 build/win32/vs9/gobject-introspection.sln  |   17 +++
 21 files changed, 497 insertions(+), 52 deletions(-)
---
diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am
index c22e86c..30ba26b 100644
--- a/build/win32/vs10/Makefile.am
+++ b/build/win32/vs10/Makefile.am
@@ -10,7 +10,6 @@ GENERATED_ITEMS = \
 EXTRA_DIST = \
        gobject-introspection.sln       \
        gi-build-defines.props  \
-       gi-extra-paths.props    \
        gi-gen-srcs.props       \
        gi-install.propsin      \
        gi-version-paths.props  \
@@ -30,6 +29,7 @@ EXTRA_DIST = \
        _giscanner.vcxproj      \
        _giscanner.vcxproj.filters      \
        gi-install.vcxproj      \
+       gi-introspect.vcxproj   \
        README.txt      \
        $(GENERATED_ITEMS)
 
diff --git a/build/win32/vs10/_giscanner.vcxproj b/build/win32/vs10/_giscanner.vcxproj
index 9543bc7..d6894e7 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="gi-extra-paths.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="gi-extra-paths.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="gi-extra-paths.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="gi-extra-paths.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
diff --git a/build/win32/vs10/gi-build-defines.props b/build/win32/vs10/gi-build-defines.props
index 2d60f33..686cd4d 100644
--- a/build/win32/vs10/gi-build-defines.props
+++ b/build/win32/vs10/gi-build-defines.props
@@ -6,6 +6,10 @@
   <PropertyGroup Label="UserMacros">
     <FFIDefines>FFI_BUILDING</FFIDefines>
     <GIRepositoryBuildDefines>G_IREPOSITORY_COMPILATION;$(FFIDefines);DLL_EXPORT</GIRepositoryBuildDefines>
+    <GIIntrospectNMakeCmd>cd ..
+set VCInstallDir=$(VCInstallDir)
+nmake -f gi-introspection-msvc.mak CFG=$(Configuration) PREFIX=$(GlibEtcInstallRoot)</GIIntrospectNMakeCmd>
+    
<GIIntrospectBuiltFiles>$(SolutionDir)\..\GLib-2.0.gir;$(SolutionDir)\..\GObject-2.0.gir;$(SolutionDir)\..\GModule-2.0.gir;$(SolutionDir)\..\Gio-2.0.gir;$(SolutionDir)\..\GIRepository-2.0.gir;$(SolutionDir)\..\cairo-1.0.gir;$(SolutionDir)\..\win32-1.0.gir;$(SolutionDir)\..\fontconfig-2.0.gir;$(SolutionDir)\..\freetype-2.0.gir;$(SolutionDir)\..\libxml2-2.0.gir;$(SolutionDir)\..\GL-1.0.gir;$(SolutionDir)\..\GLib-2.0.typelib;$(SolutionDir)\..\GObject-2.0.typelib;$(SolutionDir)\..\GModule-2.0.typelib;$(SolutionDir)\..\Gio-2.0.typelib;$(SolutionDir)\..\GIRepository-2.0.typelib;$(SolutionDir)\..\cairo-1.0.typelib;$(SolutionDir)\..\win32-1.0.typelib;$(SolutionDir)\..\fontconfig-2.0.typelib;$(SolutionDir)\..\freetype-2.0.typelib;$(SolutionDir)\..\libxml2-2.0.typelib;$(SolutionDir)\..\GL-1.0.typelib</GIIntrospectBuiltFiles>
   </PropertyGroup>
   <PropertyGroup>
     <_PropertySheetDisplayName>gibuilddefinesprops</_PropertySheetDisplayName>
@@ -32,5 +36,11 @@
     <BuildMacro Include="GIRepositoryBuildDefines">
       <Value>$(GIRepositoryBuildDefines)</Value>
     </BuildMacro>
+    <BuildMacro Include="GIIntrospectNMakeCmd">
+      <Value>$(GIIntrospectNMakeCmd)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GIIntrospectBuiltFiles">
+      <Value>$(GIIntrospectBuiltFiles)</Value>
+    </BuildMacro>
   </ItemGroup>
 </Project>
diff --git a/build/win32/vs10/gi-gen-srcs.props b/build/win32/vs10/gi-gen-srcs.props
index 37a06c1..8f7ab6e 100644
--- a/build/win32/vs10/gi-gen-srcs.props
+++ b/build/win32/vs10/gi-gen-srcs.props
@@ -1,7 +1,7 @@
 <?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-extra-paths.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros">
     <CopyConfigH>copy ..\..\..\config.h.win32 ..\..\..\config.h</CopyConfigH>
diff --git a/build/win32/vs10/gi-install.props b/build/win32/vs10/gi-install.props
new file mode 100644
index 0000000..5a7047c
--- /dev/null
+++ b/build/win32/vs10/gi-install.props
@@ -0,0 +1,173 @@
+<?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">
+    <BinDir>$(SolutionDir)$(Configuration)\$(Platform)\bin</BinDir>
+    <GIDoInstall>
+mkdir $(CopyDir)
+mkdir $(CopyDir)\bin
+copy $(BinDir)\$(LibGIDllPrefix)girepository$(LibGIDllSuffix).dll $(CopyDir)\bin
+copy $(BinDir)\$(LibGIDllPrefix)girepository$(LibGIDllSuffix).pdb $(CopyDir)\bin
+copy $(BinDir)\g-ir-compiler.exe $(CopyDir)\bin
+copy $(BinDir)\g-ir-compiler.pdb $(CopyDir)\bin
+copy $(BinDir)\g-ir-generate.exe $(CopyDir)\bin
+copy $(BinDir)\g-ir-generate.pdb $(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
+copy $(BinDir)\glib-print.exe $(CopyDir)\bin
+copy $(BinDir)\glib-print.pdb $(CopyDir)\bin
+mkdir $(CopyDir)\include\gobject-introspection-1.0\girepository
+copy ..\..\..\girepository\giarginfo.h $(CopyDir)\include\gobject-introspection-1.0\girepository\giarginfo.h
+copy ..\..\..\girepository\gibaseinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gibaseinfo.h
+copy ..\..\..\girepository\gicallableinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gicallableinfo.h
+copy ..\..\..\girepository\giconstantinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\giconstantinfo.h
+copy ..\..\..\girepository\gienuminfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gienuminfo.h
+copy ..\..\..\girepository\gifieldinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gifieldinfo.h
+copy ..\..\..\girepository\gifunctioninfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gifunctioninfo.h
+copy ..\..\..\girepository\giinterfaceinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\giinterfaceinfo.h
+copy ..\..\..\girepository\giobjectinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\giobjectinfo.h
+copy ..\..\..\girepository\gipropertyinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gipropertyinfo.h
+copy ..\..\..\girepository\giregisteredtypeinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\giregisteredtypeinfo.h
+copy ..\..\..\girepository\girepository.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\girepository.h
+copy ..\..\..\girepository\girffi.h $(CopyDir)\include\gobject-introspection-1.0\girepository\girffi.h
+copy ..\..\..\girepository\gisignalinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gisignalinfo.h
+copy ..\..\..\girepository\gistructinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gistructinfo.h
+copy ..\..\..\girepository\gitypeinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\gitypeinfo.h
+copy ..\..\..\girepository\gitypelib.h $(CopyDir)\include\gobject-introspection-1.0\girepository\gitypelib.h
+copy ..\..\..\girepository\gitypes.h $(CopyDir)\include\gobject-introspection-1.0\girepository\gitypes.h
+copy ..\..\..\girepository\giunioninfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\giunioninfo.h
+copy ..\..\..\girepository\giversionmacros.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\giversionmacros.h
+copy ..\..\..\girepository\givfuncinfo.h 
$(CopyDir)\include\gobject-introspection-1.0\girepository\givfuncinfo.h
+mkdir $(CopyDir)\lib\gobject-introspection\giscanner
+mkdir $(CopyDir)\lib\gobject-introspection\giscanner\collections
+mkdir $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates
+mkdir $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+mkdir $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+mkdir $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\__init__.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\annotationmain.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\annotationparser.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\ast.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\cachestore.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\ccompiler.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\codegen.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\docmain.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\docwriter.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\dumper.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\introspectablepass.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\girparser.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\girwriter.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\gdumpparser.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\libtoolimporter.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\maintransformer.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\message.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\msvccompiler.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\shlibs.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\scannermain.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\sectionparser.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\sourcescanner.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\testcodegen.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\transformer.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\utils.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\xmlwriter.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\collections\__init__.py $(CopyDir)\lib\gobject-introspection\giscanner\collections
+copy ..\..\..\giscanner\collections\counter.py $(CopyDir)\lib\gobject-introspection\giscanner\collections
+copy ..\..\..\giscanner\collections\ordereddict.py $(CopyDir)\lib\gobject-introspection\giscanner\collections
+copy ..\..\..\giscanner\doctemplates\base.tmpl $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates
+copy ..\..\..\giscanner\doctemplates\class.tmpl $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates
+copy ..\..\..\giscanner\doctemplates\namespace.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates
+copy ..\..\..\giscanner\doctemplates\C\callback.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\class.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\constructor.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\default.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\enum.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\function.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\field.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\interface.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\method.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\namespace.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\property.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\record.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\signal.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\C\vfunc.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\C
+copy ..\..\..\giscanner\doctemplates\Python\callback.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\class.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\constructor.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\default.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\enum.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\function.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\field.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\interface.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\method.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\namespace.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\property.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\record.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\signal.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Python\vfunc.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Python
+copy ..\..\..\giscanner\doctemplates\Gjs\callback.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\class.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\constructor.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\default.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\enum.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\function.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\field.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\interface.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\method.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\namespace.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\property.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\record.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\signal.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+copy ..\..\..\giscanner\doctemplates\Gjs\vfunc.tmpl 
$(CopyDir)\lib\gobject-introspection\giscanner\doctemplates\Gjs
+mkdir $(CopyDir)\share\gobject-introspection-1.0\tests
+copy ..\..\..\tests\gitestmacros.h $(CopyDir)\share\gobject-introspection-1.0\tests
+copy ..\..\..\tests\gimarshallingtests.c $(CopyDir)\share\gobject-introspection-1.0\tests
+copy ..\..\..\tests\gimarshallingtests.h $(CopyDir)\share\gobject-introspection-1.0\tests
+copy ..\..\..\tests\scanner\regress.c $(CopyDir)\share\gobject-introspection-1.0\tests
+copy ..\..\..\tests\scanner\regress.h $(CopyDir)\share\gobject-introspection-1.0\tests
+copy $(BinDir)\_giscanner.pyd $(CopyDir)\lib\gobject-introspection\giscanner
+copy $(BinDir)\_giscanner.pdb $(CopyDir)\lib\gobject-introspection\giscanner
+mkdir $(CopyDir)\share\gobject-introspection-$(ApiVersion)
+copy ..\..\..\girepository\gdump.c $(CopyDir)\share\gobject-introspection-$(ApiVersion)
+mkdir $(CopyDir)\lib
+copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\girepository-$(ApiVersion).lib $(CopyDir)\lib
+mkdir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\cairo-1.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\fontconfig-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\freetype2-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\Gio-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\GIRepository-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\GL-1.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\GLib-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\GModule-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\GObject-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\libxml2-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+copy ..\win32-1.0.gir $(CopyDir)\share\gir-$(ApiVersion)
+mkdir $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\cairo-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\fontconfig-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\freetype2-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\Gio-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\GIRepository-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\GL-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\GLib-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\GModule-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\GObject-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\libxml2-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
+</GIDoInstall>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>giinstallprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="BinDir">
+      <Value>$(BinDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GIDoInstall">
+      <Value>$(GIDoInstall)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/gi-install.vcxproj b/build/win32/vs10/gi-install.vcxproj
index fbb757f..04f214f 100644
--- a/build/win32/vs10/gi-install.vcxproj
+++ b/build/win32/vs10/gi-install.vcxproj
@@ -117,6 +117,10 @@
       <Project>{8311394f-9114-4c97-80f2-51bcaba054c9}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="gi-introspect.vcxproj">
+      <Project>{7a36674c-379d-4989-a978-07124e5f852c}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/build/win32/vs10/gi-introspect.vcxproj b/build/win32/vs10/gi-introspect.vcxproj
new file mode 100644
index 0000000..b634495
--- /dev/null
+++ b/build/win32/vs10/gi-introspect.vcxproj
@@ -0,0 +1,115 @@
+<?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="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{7A36674C-379D-4989-A978-07124E5F852C}</ProjectGuid>
+    <RootNamespace>giintrospect</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Makefile</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Makefile</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Makefile</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Makefile</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="gi-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <NMakeBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParam)</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean 
all</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
+    <NMakeOutput>$(GIIntrospectBuiltFiles)</NMakeOutput>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <NMakeBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParam)</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean 
all</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
+    <NMakeOutput>$(GIIntrospectBuiltFiles)</NMakeOutput>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <NMakeBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64)</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean 
all</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean</NMakeCleanCommandLine>
+    <NMakeOutput>$(GIIntrospectBuiltFiles)</NMakeOutput>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <NMakeBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64)</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean 
all</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine>$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean</NMakeCleanCommandLine>
+    <NMakeOutput>$(GIIntrospectBuiltFiles)</NMakeOutput>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="g-ir-compiler.vcxproj">
+      <Project>{5dcb55ce-f32c-4c77-8bf4-b4dad3ec7774}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+    <ProjectReference Include="g-ir-generate.vcxproj">
+      <Project>{f4e6621f-a7dd-4863-8ccf-ba04dfc601e3}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+    <ProjectReference Include="girepository.vcxproj">
+      <Project>{23e28245-8fc7-4b41-b1c5-8785bd4366a7}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+    <ProjectReference Include="_giscanner.vcxproj">
+      <Project>{8311394f-9114-4c97-80f2-51bcaba054c9}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </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
index bcf31f1..ae370f4 100644
--- a/build/win32/vs10/gi-version-paths.props
+++ b/build/win32/vs10/gi-version-paths.props
@@ -3,8 +3,14 @@
   <PropertyGroup Label="UserMacros">
     <VSVer>10</VSVer>
     <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
-    <BASE_GI_DIR>$(SolutionDir)\..\..\..</BASE_GI_DIR>
     <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
+    <!-- PythonDir needs to point to a 32-bit/x86 Python 2.7/3.3+ installation -->
+    <PythonDir>c:\\python34</PythonDir>
+    <!-- PythonDirX64 needs to point to an x86-64/x64 Python 2.7/3.3+ installation -->
+    <PythonDirX64>$(PythonDir).x64</PythonDirX64>
+    <IntrospectPythonParam>PYTHON=$(PythonDir)\python.exe</IntrospectPythonParam>
+    <IntrospectPythonParamX64>PYTHON=$(PythonDirX64)\python.exe</IntrospectPythonParamX64>
+    <BASE_GI_DIR>$(SolutionDir)\..\..\..</BASE_GI_DIR>
     <ApiVersion>1.0</ApiVersion>
     <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)</DefDir>
     <LibGILibtoolCompatibleDllPrefix>lib</LibGILibtoolCompatibleDllPrefix>
@@ -24,18 +30,27 @@
     <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="PythonDir">
+      <Value>$(PythonDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PythonDirX64">
+      <Value>$(PythonDirX64)</Value>
+    </BuildMacro>
+    <BuildMacro Include="IntrospectPythonParam">
+      <Value>$(IntrospectPythonParam)</Value>
+    </BuildMacro>
+    <BuildMacro Include="IntrospectPythonParamX64">
+      <Value>$(IntrospectPythonParamX64)</Value>
+    </BuildMacro>
+    <BuildMacro Include="BASE_GI_DIR">
+      <Value>$(BASE_GI_DIR)</Value>
+    </BuildMacro>
     <BuildMacro Include="ApiVersion">
       <Value>$(ApiVersion)</Value>
     </BuildMacro>
-    <BuildMacro Include="DefDir">
-      <Value>$(DefDir)</Value>
-    </BuildMacro>
     <BuildMacro Include="LibGILibtoolCompatibleDllPrefix">
       <Value>$(LibGILibtoolCompatibleDllPrefix)</Value>
     </BuildMacro>
diff --git a/build/win32/vs10/gobject-introspection.sln b/build/win32/vs10/gobject-introspection.sln
index 25bb921..57673e0 100644
--- a/build/win32/vs10/gobject-introspection.sln
+++ b/build/win32/vs10/gobject-introspection.sln
@@ -17,6 +17,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g-ir-generate", "g-ir-gener
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g-ir-compiler", "g-ir-compiler.vcxproj", 
"{5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gi-introspect", "gi-introspect.vcxproj", 
"{7A36674C-379D-4989-A978-07124E5F852C}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gi-install", "gi-install.vcxproj", 
"{2093D218-190E-4194-9421-3BA7CBF33B10}"
 EndProject
 Global
@@ -91,6 +93,14 @@ Global
                {5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774}.Release|Win32.Build.0 = Release|Win32
                {5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774}.Release|x64.ActiveCfg = Release|x64
                {5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774}.Release|x64.Build.0 = Release|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|Win32.ActiveCfg = Debug|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|Win32.Build.0 = Debug|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|x64.ActiveCfg = Debug|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|x64.Build.0 = Debug|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.Release|Win32.ActiveCfg = Release|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Release|Win32.Build.0 = Release|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Release|x64.ActiveCfg = Release|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.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/vs11/Makefile.am b/build/win32/vs11/Makefile.am
index 9c19974..db1ca94 100644
--- a/build/win32/vs11/Makefile.am
+++ b/build/win32/vs11/Makefile.am
@@ -1,7 +1,6 @@
 EXTRA_DIST = \
        gobject-introspection.sln       \
        gi-build-defines.props  \
-       gi-extra-paths.props    \
        gi-gen-srcs.props       \
        gi-install.props        \
        gi-version-paths.props  \
@@ -21,6 +20,7 @@ EXTRA_DIST = \
        _giscanner.vcxproj      \
        _giscanner.vcxproj.filters      \
        gi-install.vcxproj      \
+       gi-introspect.vcxproj   \
        README.txt
 
 DISTCLEANFILES = $(EXTRA_DIST)
diff --git a/build/win32/vs12/Makefile.am b/build/win32/vs12/Makefile.am
index 2ec8bd1..54f036d 100644
--- a/build/win32/vs12/Makefile.am
+++ b/build/win32/vs12/Makefile.am
@@ -1,7 +1,6 @@
 EXTRA_DIST = \
        gobject-introspection.sln       \
        gi-build-defines.props  \
-       gi-extra-paths.props    \
        gi-gen-srcs.props       \
        gi-install.props        \
        gi-version-paths.props  \
@@ -21,6 +20,7 @@ EXTRA_DIST = \
        _giscanner.vcxproj      \
        _giscanner.vcxproj.filters      \
        gi-install.vcxproj      \
+       gi-introspect.vcxproj   \
        README.txt
 
 DISTCLEANFILES = $(EXTRA_DIST)
diff --git a/build/win32/vs14/Makefile.am b/build/win32/vs14/Makefile.am
index cc95831..2541de1 100644
--- a/build/win32/vs14/Makefile.am
+++ b/build/win32/vs14/Makefile.am
@@ -1,7 +1,6 @@
 EXTRA_DIST = \
        gobject-introspection.sln       \
        gi-build-defines.props  \
-       gi-extra-paths.props    \
        gi-gen-srcs.props       \
        gi-install.props        \
        gi-version-paths.props  \
@@ -21,6 +20,7 @@ EXTRA_DIST = \
        _giscanner.vcxproj      \
        _giscanner.vcxproj.filters      \
        gi-install.vcxproj      \
+       gi-introspect.vcxproj   \
        README.txt
 
 DISTCLEANFILES = $(EXTRA_DIST)
diff --git a/build/win32/vs9/Makefile.am b/build/win32/vs9/Makefile.am
index 725a18a..3ddf180 100644
--- a/build/win32/vs9/Makefile.am
+++ b/build/win32/vs9/Makefile.am
@@ -7,7 +7,6 @@ GENERATED_ITEMS = \
 EXTRA_DIST = \
        gobject-introspection.sln       \
        gi-build-defines.vsprops        \
-       gi-extra-paths.vsprops  \
        gi-gen-srcs.vsprops     \
        gi-install.vspropsin    \
        gi-version-paths.vsprops        \
@@ -19,6 +18,7 @@ EXTRA_DIST = \
        g-ir-generate.vcproj    \
        glib-print.vcproj       \
        gi-install.vcproj       \
+       gi-introspect.vcproj    \
        _giscanner.vcproj       \
        README.txt      \
        $(GENERATED_ITEMS)
diff --git a/build/win32/vs9/_giscanner.vcproj b/build/win32/vs9/_giscanner.vcproj
index 8f1e2a6..c19faf7 100644
--- a/build/win32/vs9/_giscanner.vcproj
+++ b/build/win32/vs9/_giscanner.vcproj
@@ -22,7 +22,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-extra-paths.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
@@ -51,7 +51,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-extra-paths.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
@@ -83,7 +83,7 @@
                <Configuration
                        Name="Debug|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-extra-paths.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
@@ -116,7 +116,7 @@
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-extra-paths.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
diff --git a/build/win32/vs9/gi-build-defines.vsprops b/build/win32/vs9/gi-build-defines.vsprops
index efc2852..7fbf93e 100644
--- a/build/win32/vs9/gi-build-defines.vsprops
+++ b/build/win32/vs9/gi-build-defines.vsprops
@@ -27,4 +27,12 @@
                Name="GIRepositoryBuildDefines"
                Value="G_IREPOSITORY_COMPILATION;$(FFIDefines);DLL_EXPORT"
        />
+       <UserMacro
+               Name="GIIntrospectNMakeCmd"
+               Value="cd ..&#x0D;&#x0A;set VCInstallDir=$(VCInstallDir)&#x0D;&#x0A;nmake -f 
gi-introspection-msvc.mak CFG=$(ConfigurationName) PREFIX=$(GlibEtcInstallRoot)"
+       />
+       <UserMacro
+               Name="GIIntrospectBuiltFiles"
+               
Value="$(SolutionDir)\..\GLib-2.0.gir;$(SolutionDir)\..\GObject-2.0.gir;$(SolutionDir)\..\GModule-2.0.gir;$(SolutionDir)\..\Gio-2.0.gir;$(SolutionDir)\..\GIRepository-2.0.gir;$(SolutionDir)\..\cairo-1.0.gir;$(SolutionDir)\..\win32-1.0.gir;$(SolutionDir)\..\fontconfig-2.0.gir;$(SolutionDir)\..\freetype-2.0.gir;$(SolutionDir)\..\libxml2-2.0.gir;$(SolutionDir)\..\GL-1.0.gir;$(SolutionDir)\..\GLib-2.0.typelib;$(SolutionDir)\..\GObject-2.0.typelib;$(SolutionDir)\..\GModule-2.0.typelib;$(SolutionDir)\..\Gio-2.0.typelib;$(SolutionDir)\..\GIRepository-2.0.typelib;$(SolutionDir)\..\cairo-1.0.typelib;$(SolutionDir)\..\win32-1.0.typelib;$(SolutionDir)\..\fontconfig-2.0.typelib;$(SolutionDir)\..\freetype-2.0.typelib;$(SolutionDir)\..\libxml2-2.0.typelib;$(SolutionDir)\..\GL-1.0.typelib"
+       />
 </VisualStudioPropertySheet>
diff --git a/build/win32/vs9/gi-gen-srcs.vsprops b/build/win32/vs9/gi-gen-srcs.vsprops
index cd83b45..8a24978 100644
--- a/build/win32/vs9/gi-gen-srcs.vsprops
+++ b/build/win32/vs9/gi-gen-srcs.vsprops
@@ -3,7 +3,7 @@
        ProjectType="Visual C++"
        Version="8.00"
        Name="gigensrcsprops"
-       InheritedPropertySheets=".\gi-extra-paths.vsprops"
+       InheritedPropertySheets=".\gi-build-defines.vsprops"
        >
        <UserMacro
                Name="CopyConfigH"
diff --git a/build/win32/vs9/gi-install.vspropsin b/build/win32/vs9/gi-install.vspropsin
index a30f3e3..0f6f28d 100644
--- a/build/win32/vs9/gi-install.vspropsin
+++ b/build/win32/vs9/gi-install.vspropsin
@@ -37,7 +37,6 @@ copy ..\..\..\tests\scanner\regress.h $(CopyDir)\share\gobject-introspection-1.0
 copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\_giscanner.pyd 
$(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\_giscanner.pdb 
$(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 
-mkdir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
 
 mkdir $(CopyDir)\share\gobject-introspection-$(ApiVersion)&#x0D;&#x0A;
 
@@ -47,9 +46,31 @@ mkdir $(CopyDir)\lib&#x0D;&#x0A;
 
 copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\girepository-$(ApiVersion).lib 
$(CopyDir)\lib&#x0D;&#x0A;
 
-echo Please note that building GObject-Introspection with Visual Studio is now a 2-step process&#x0D;&#x0A;
-echo Please open the appropriate Visual Studio (or Windows SDK) command prompt and use the NMake 
Makefile&#x0D;&#x0A;
-echo in SRC_ROOT\build\win32\gi-introspection-msvc.mak to build the introspection files&#x0D;&#x0A;
+mkdir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\cairo-1.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\fontconfig-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\freetype2-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\Gio-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GIRepository-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GL-1.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GLib-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GModule-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GObject-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\libxml2-2.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+copy ..\win32-1.0.gir $(CopyDir)\share\gir-$(ApiVersion)&#x0D;&#x0A;
+
+mkdir $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\cairo-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\fontconfig-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\freetype2-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\Gio-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GIRepository-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GL-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GLib-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GModule-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\GObject-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\libxml2-2.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
+copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)&#x0D;&#x0A;
                "
        />
 </VisualStudioPropertySheet>
diff --git a/build/win32/vs9/gi-introspect.vcproj b/build/win32/vs9/gi-introspect.vcproj
new file mode 100644
index 0000000..661c2d5
--- /dev/null
+++ b/build/win32/vs9/gi-introspect.vcproj
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="gi-introspect"
+       ProjectGUID="{7A36674C-379D-4989-A978-07124E5F852C}"
+       Keyword="MakeFileProj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="0"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
+                       >
+                       <Tool
+                               Name="VCNMakeTool"
+                               BuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParam)"
+                               ReBuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean 
all"
+                               CleanCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean"
+                               Output="$(GIIntrospectBuiltFiles)"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       ConfigurationType="0"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
+                       >
+                       <Tool
+                               Name="VCNMakeTool"
+                               BuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64)"
+                               ReBuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean 
all"
+                               CleanCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean"
+                               Output="$(GIIntrospectBuiltFiles)"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="0"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
+                       CharacterSet="2"
+                       DeleteExtensionsOnClean=""
+                       >
+                       <Tool
+                               Name="VCNMakeTool"
+                               BuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParam)"
+                               ReBuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean 
all"
+                               CleanCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParam) clean"
+                               Output="$(GIIntrospectBuiltFiles)"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       ConfigurationType="0"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
+                       >
+                       <Tool
+                               Name="VCNMakeTool"
+                               BuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64)"
+                               ReBuildCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean 
all"
+                               CleanCommandLine="$(GIIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean"
+                               Output="$(GIIntrospectBuiltFiles)"
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioProject>
diff --git a/build/win32/vs9/gi-version-paths.vsprops b/build/win32/vs9/gi-version-paths.vsprops
index ae0ef09..5cde330 100644
--- a/build/win32/vs9/gi-version-paths.vsprops
+++ b/build/win32/vs9/gi-version-paths.vsprops
@@ -13,20 +13,34 @@
                Value="$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(PlatformName)"
        />
        <UserMacro
-               Name="BASE_GI_DIR"
-               Value="$(SolutionDir)\..\..\.."
-       />
-       <UserMacro
                Name="CopyDir"
                Value="$(GlibEtcInstallRoot)"
        />
+       <!-- PythonDir needs to point to a 32-bit/x86 Python 2.7/3.3+ installation -->
        <UserMacro
-               Name="ApiVersion"
-               Value="1.0"
+               Name="PythonDir"
+               Value="c:\\python27"
+       />
+       <!-- PythonDirX64 needs to point to an x86-64/x64 Python 2.7/3.3+ installation -->
+       <UserMacro
+               Name="PythonDirX64"
+               Value="$(PythonDir).x64"
+       />
+       <UserMacro
+               Name="IntrospectPythonParam"
+               Value="PYTHON=$(PythonDir)\python.exe"
+       />
+       <UserMacro
+               Name="IntrospectPythonParamX64"
+               Value="PYTHON=$(PythonDirX64)\python.exe"
        />
        <UserMacro
-               Name="DefDir"
-               Value="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj\$(ProjectName)"
+               Name="BASE_GI_DIR"
+               Value="$(SolutionDir)\..\..\.."
+       />
+       <UserMacro
+               Name="ApiVersion"
+               Value="1.0"
        />
        <UserMacro
                Name="LibGILibtoolCompatibleDllPrefix"
diff --git a/build/win32/vs9/gobject-introspection.sln b/build/win32/vs9/gobject-introspection.sln
index d6d4e54..a7dc0b5 100644
--- a/build/win32/vs9/gobject-introspection.sln
+++ b/build/win32/vs9/gobject-introspection.sln
@@ -40,12 +40,21 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g-ir-compiler", "g-ir-compi
                {442C007E-D901-41DA-9706-5DB4AFB4C06B} = {442C007E-D901-41DA-9706-5DB4AFB4C06B}
        EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gi-introspect", "gi-introspect.vcproj", 
"{7A36674C-379D-4989-A978-07124E5F852C}"
+       ProjectSection(ProjectDependencies) = postProject
+               {F4E6621F-A7DD-4863-8CCF-BA04DFC601E3} = {F4E6621F-A7DD-4863-8CCF-BA04DFC601E3}
+               {23E28245-8FC7-4B41-B1C5-8785BD4366A7} = {23E28245-8FC7-4B41-B1C5-8785BD4366A7}
+               {8311394F-9114-4C97-80F2-51BCABA054C9} = {8311394F-9114-4C97-80F2-51BCABA054C9}
+               {5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774} = {5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774}
+       EndProjectSection
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gi-install", "gi-install.vcproj", 
"{2093D218-190E-4194-9421-3BA7CBF33B10}"
        ProjectSection(ProjectDependencies) = postProject
                {F4E6621F-A7DD-4863-8CCF-BA04DFC601E3} = {F4E6621F-A7DD-4863-8CCF-BA04DFC601E3}
                {23E28245-8FC7-4B41-B1C5-8785BD4366A7} = {23E28245-8FC7-4B41-B1C5-8785BD4366A7}
                {8311394F-9114-4C97-80F2-51BCABA054C9} = {8311394F-9114-4C97-80F2-51BCABA054C9}
                {5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774} = {5DCB55CE-F32C-4C77-8BF4-B4DAD3EC7774}
+               {7A36674C-379D-4989-A978-07124E5F852C} = {7A36674C-379D-4989-A978-07124E5F852C}
        EndProjectSection
 EndProject
 Global
@@ -128,6 +137,14 @@ Global
                {2093D218-190E-4194-9421-3BA7CBF33B10}.Release|Win32.Build.0 = Release|Win32
                {2093D218-190E-4194-9421-3BA7CBF33B10}.Release|x64.ActiveCfg = Release|x64
                {2093D218-190E-4194-9421-3BA7CBF33B10}.Release|x64.Build.0 = Release|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|Win32.ActiveCfg = Debug|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|Win32.Build.0 = Debug|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|x64.ActiveCfg = Debug|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.Debug|x64.Build.0 = Debug|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.Release|Win32.ActiveCfg = Release|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Release|Win32.Build.0 = Release|Win32
+               {7A36674C-379D-4989-A978-07124E5F852C}.Release|x64.ActiveCfg = Release|x64
+               {7A36674C-379D-4989-A978-07124E5F852C}.Release|x64.Build.0 = Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE



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