[json-glib] Visual C++ Builds: Use Custom Build Rules



commit 17dbdd5cce26f257a522ba0c218a05753e1fa3b1
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Fri Aug 30 16:41:41 2013 +0800

    Visual C++ Builds: Use Custom Build Rules
    
    ...so that the json-glib.def file can be regenerated as automatically
    when the json-glib.symbols file is updated, and the json-glib.def can be
    automatically deleted on a "clean" request.
    
    Also drop some unneeded items from the property sheets.

 build/win32/vs10/json-glib.props             |    8 +---
 build/win32/vs10/json-glib.vcxproj.filtersin |    3 ++
 build/win32/vs10/json-glib.vcxprojin         |   28 ++++++++------
 build/win32/vs9/json-glib.vcprojin           |   50 +++++++++++++++++--------
 build/win32/vs9/json-glib.vsprops            |   10 ++----
 5 files changed, 58 insertions(+), 41 deletions(-)
---
diff --git a/build/win32/vs10/json-glib.props b/build/win32/vs10/json-glib.props
index 1efcc9f..ccc0836 100644
--- a/build/win32/vs10/json-glib.props
+++ b/build/win32/vs10/json-glib.props
@@ -2,8 +2,7 @@
 <Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
   <PropertyGroup Label="UserMacros">
     <VSVer>10</VSVer>
-    <GlibEtcInstallRoot>..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
-    <GlibEtcInstallRootFromBuildWin32>..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRootFromBuildWin32>
+    <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
     <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
     <DefDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</DefDir>
     <ApiVersion>1.0</ApiVersion>
@@ -64,7 +63,7 @@ copy ..\..\..\json-glib\json-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\
 set VSVER=$(VSVer)
 set CONF=$(Configuration)
 set PLAT=$(Platform)
-set BASEDIR=$(GlibEtcInstallRootFromBuildWin32)
+set BASEDIR=$(GlibEtcInstallRoot)
 cd ..
 call gengir_jsonglib.bat
 
@@ -105,9 +104,6 @@ cl /EP ..\..\..\json-glib\json-glib.symbols &gt;&gt;$(DefDir)\json-glib.def
     <BuildMacro Include="GlibEtcInstallRoot">
       <Value>$(GlibEtcInstallRoot)</Value>
     </BuildMacro>
-    <BuildMacro Include="GlibEtcInstallRootFromBuildWin32">
-      <Value>$(GlibEtcInstallRootFromBuildWin32)</Value>
-    </BuildMacro>
     <BuildMacro Include="CopyDir">
       <Value>$(CopyDir)</Value>
     </BuildMacro>
diff --git a/build/win32/vs10/json-glib.vcxproj.filtersin b/build/win32/vs10/json-glib.vcxproj.filtersin
index 84f08cf..7f73a38 100644
--- a/build/win32/vs10/json-glib.vcxproj.filtersin
+++ b/build/win32/vs10/json-glib.vcxproj.filtersin
@@ -17,4 +17,7 @@
   <ItemGroup>
 #include "jsonglib.vs10.sourcefiles.filters"
   </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\..\json-glib\json-glib.symbols"><Filter>Resource Files</Filter></CustomBuild>
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/build/win32/vs10/json-glib.vcxprojin b/build/win32/vs10/json-glib.vcxprojin
index c5e7c71..1039462 100644
--- a/build/win32/vs10/json-glib.vcxprojin
+++ b/build/win32/vs10/json-glib.vcxprojin
@@ -84,9 +84,6 @@
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
       <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
@@ -111,9 +108,6 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
@@ -141,9 +135,6 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
       <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
@@ -167,9 +158,6 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
@@ -185,6 +173,22 @@
   <ItemGroup>
 #include "jsonglib.vs10.sourcefiles"
   </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\..\json-glib\json-glib.symbols">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating 
json-glib.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(JsonGlibGenerateDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)json-glib.def;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating json-glib.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(JsonGlibGenerateDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)json-glib.def;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating 
json-glib.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(JsonGlibGenerateDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)json-glib.def;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating 
json-glib.def...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(JsonGlibGenerateDef)</Command>
+      <Outputs 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)json-glib.def;%(Outputs)</Outputs>
+    </CustomBuild>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/build/win32/vs9/json-glib.vcprojin b/build/win32/vs9/json-glib.vcprojin
index 2ab1537..597b681 100644
--- a/build/win32/vs9/json-glib.vcprojin
+++ b/build/win32/vs9/json-glib.vcprojin
@@ -43,10 +43,6 @@
                                ForcedIncludeFiles=""
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                
OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
                                LinkIncremental="2"
@@ -79,10 +75,6 @@
                                DebugInformationFormat="3"
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                AdditionalDependencies=""
                                
OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
@@ -119,10 +111,6 @@
                                ForcedIncludeFiles=""
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                
OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
                                LinkIncremental="1"
@@ -154,10 +142,6 @@
                                DebugInformationFormat="3"
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                AdditionalDependencies=""
                                
OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
@@ -193,6 +177,40 @@
                        Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
                        UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
                        >
+                       <File RelativePath="..\..\..\json-glib\json-glib.symbols">
+                               <FileConfiguration Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Generating json-glib.def..."
+                                               CommandLine="$(JsonGlibGenerateDef)"
+                                               Outputs="$(IntDir)\json-glib.def"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Generating json-glib.def..."
+                                               CommandLine="$(JsonGlibGenerateDef)"
+                                               Outputs="$(IntDir)\json-glib.def"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration Name="Debug|x64">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Generating json-glib.def..."
+                                               CommandLine="$(JsonGlibGenerateDef)"
+                                               Outputs="$(IntDir)\json-glib.def"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration Name="Release|x64">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Generating json-glib.def..."
+                                               CommandLine="$(JsonGlibGenerateDef)"
+                                               Outputs="$(IntDir)\json-glib.def"
+                                       />
+                               </FileConfiguration>
+                       </File>
                </Filter>
        </Files>
        <Globals>
diff --git a/build/win32/vs9/json-glib.vsprops b/build/win32/vs9/json-glib.vsprops
index 355c682..52dc104 100644
--- a/build/win32/vs9/json-glib.vsprops
+++ b/build/win32/vs9/json-glib.vsprops
@@ -23,11 +23,7 @@
        />
        <UserMacro
                Name="GlibEtcInstallRoot"
-               Value="..\..\..\..\vs$(VSVer)\$(PlatformName)"
-       />
-       <UserMacro
-               Name="GlibEtcInstallRootFromBuildWin32"
-               Value="..\..\..\vs$(VSVer)\$(PlatformName)"
+               Value="$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(PlatformName)"
        />
        <UserMacro
                Name="CopyDir"
@@ -43,7 +39,7 @@
 if exist ..\..\..\config.h goto DONE_CONFIG_H&#x0D;&#x0A;
 copy ..\config.h.win32 ..\..\..\config.h&#x0D;&#x0A;
 :DONE_CONFIG_H&#x0D;&#x0A;
-"
+              "
        />
        <UserMacro
                Name="ApiVersion"
@@ -84,7 +80,7 @@ copy ..\..\..\json-glib\json-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\
 set VSVER=$(VSVer)&#x0D;&#x0A;
 set CONF=$(ConfigurationName)&#x0D;&#x0A;
 set PLAT=$(PlatformName)&#x0D;&#x0A;
-set BASEDIR=$(GlibEtcInstallRootFromBuildWin32)&#x0D;&#x0A;
+set BASEDIR=$(GlibEtcInstallRoot)&#x0D;&#x0A;
 
 cd ..&#x0D;&#x0A;
 call gengir_jsonglib.bat&#x0D;&#x0A;


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