Эх сурвалжийг харах

Better support for Compact Framework builds

Jon Skeet 15 жил өмнө
parent
commit
55a212d384

+ 50 - 7
ProtocolBuffers.build

@@ -232,18 +232,61 @@
     </nunit2>
   </target>
   
+  <target name="build-all-configs"
+          description="Builds all versions of the main library">
+    <msbuild project="${src}/ProtocolBuffers.sln">
+      <property name="Configuration" value="Debug" />
+    </msbuild>
+    <msbuild project="${src}/ProtocolBuffers.sln">
+      <property name="Configuration" value="Release" />
+    </msbuild>
+    <msbuild project="${src}/ProtocolBuffers.sln">
+      <property name="Configuration" value="Silverlight2" />
+    </msbuild>
+    <msbuild project="${src}/ProtocolBuffers/ProtocolBuffersCF.csproj">
+      <property name="Configuration" value="Release" />
+    </msbuild>
+  </target>
+    
+  
   <target name="dist" 
-          description="Copies compiled binaries into the output directory">
+          description="Copies all binaries into the output directory">
     <delete dir="${output-dir}" />
     <mkdir dir="${output-dir}" />
-    <copy todir="${output-dir}"
+    <mkdir dir="${output-dir}/Debug" />
+    <mkdir dir="${output-dir}/Release" />
+    <mkdir dir="${output-dir}/Silverlight2" />
+    <mkdir dir="${output-dir}/CompactFramework35" />
+    <copy todir="${output-dir}/Debug"
+          flatten="true">
+      <fileset basedir="${src}">
+        <include name="ProtocolBuffers/bin/Debug/Google.ProtocolBuffers.*" />
+        <include name="ProtoGen/bin/Debug/ProtoGen.*" />
+        <include name="ProtoMunge/bin/Debug/ProtoMunge.*" />
+        <include name="ProtoDump/bin/Debug/ProtoDump.*" />
+        <include name="ProtoBench/bin/Debug/ProtoBench.*" />
+      </fileset>
+    </copy>    
+    <copy todir="${output-dir}/Release"
+          flatten="true">
+      <fileset basedir="${src}">
+        <include name="ProtocolBuffers/bin/Release/Google.ProtocolBuffers.*" />
+        <include name="ProtoGen/bin/Release/ProtoGen.*" />
+        <include name="ProtoMunge/bin/Release/ProtoMunge.*" />
+        <include name="ProtoDump/bin/Release/ProtoDump.*" />
+        <include name="ProtoBench/bin/Release/ProtoBench.*" />
+      </fileset>
+    </copy>    
+    <copy todir="${output-dir}/Silverlight2"
+          flatten="true">
+      <fileset basedir="${src}">
+        <include name="ProtocolBuffers/bin/Silverlight2/Google.ProtocolBuffers.dll" />
+      </fileset>
+    </copy>    
+    <copy todir="${output-dir}/CompactFramework35"
           flatten="true">
       <fileset basedir="${src}">
-        <include name="ProtocolBuffers/bin/${build-configuration}/Google.ProtocolBuffers.dll" />
-        <include name="ProtoGen/bin/${build-configuration}/ProtoGen.exe" />
-        <include name="ProtoMunge/bin/${build-configuration}/ProtoMunge.exe" />
-        <include name="ProtoDump/bin/${build-configuration}/ProtoDump.exe" />
-        <include name="ProtoBench/bin/${build-configuration}/ProtoBench.exe" />
+        <include name="ProtocolBuffers/bin/ReleaseCF/Google.ProtocolBuffers.dll" />
       </fileset>
     </copy>    
   </target>

+ 2 - 2
src/ProtocolBuffers/ProtocolBuffersCF.csproj

@@ -23,7 +23,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>bin\DebugCF\</OutputPath>
     <DefineConstants>COMPACT_FRAMEWORK_35;DEBUG;TRACE;$(PlatformFamilyName)</DefineConstants>
     <NoStdLib>true</NoStdLib>
     <NoConfig>true</NoConfig>
@@ -35,7 +35,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>bin\ReleaseCF\</OutputPath>
     <DefineConstants>COMPACT_FRAMEWORK_35;TRACE;$(PlatformFamilyName)</DefineConstants>
     <NoStdLib>true</NoStdLib>
     <NoConfig>true</NoConfig>

+ 3 - 1
todo.txt

@@ -8,7 +8,7 @@ Current task list (not in order)
 - Avoid using reflection for messages which don't need it (is this
   possible?)
 - Bring service generation into line with Java
-- Build protoc as a dll and use directly from protoge
+- Build protoc as a dll and use directly from protogen
 - Check copyright is everywhere
 - Work out how to unit test Silverlight code
 - Reformat code
@@ -16,3 +16,5 @@ Current task list (not in order)
 - Add regions to copyright
 - Investigate command line parsing library
 - Investigate calling protoc directly
+- Build and publish binaries
+- Work out why the Compact Framework 3.5 build fails under VS2010