List:Internals« Previous MessageNext Message »
From:rburnett Date:August 23 2005 9:51pm
Subject:Connector/NET commit: r161 - branches/1.0
View as plain text  
Added:
   branches/1.0/Package.build
Log:
major improvements to the packaging script

Added: branches/1.0/Package.build
===================================================================
--- branches/1.0/Package.build	2005-08-23 21:50:13 UTC (rev 160)
+++ branches/1.0/Package.build	2005-08-23 21:51:35 UTC (rev 161)
@@ -0,0 +1,175 @@
+<?xml version="1.0" ?>
+<project name="MySqlPackage" default="all" xmlns="http://nant.sf.net/schemas/nant-0.85.win32.net-1.0.xsd">
+	<description>Package script for MySQLClient Managed Provider for MySQL</description>
+
+	<include buildfile="client.build"/>
+
+	<!-- filesets -->
+	<fileset id="BaseSource">
+		<include name="mysqlclient/**"/>
+		<include name="testsuite/**"/>
+		<include name="client.build"/>
+		<include name="CHANGES"/>
+		<include name="README"/>
+		<include name="MySql.Data.csproj"/>
+		<include name="Samples/**" />
+		<include name="ICSharpCode.SharpZipLib.dll"/>
+	</fileset>
+
+	<fileset id="SourceGPL">
+		<include name="COPYING"/>
+		<include name="EXCEPTIONS"/>
+	</fileset>
+
+	<!-- first remove all previous packages -->
+<!--	<delete dir="packages" failonerror="false"/>
+	<mkdir dir="packages"/>	-->
+
+
+
+	<!-- packaging targets -->
+	<target name="all" depends="GPL, Commercial"/>
+
+<!--	<target name="AuthNoSSL">
+		<property name="defines" value="FINAL,AUTHENTICATED" />
+		<property name="IsGPL" value="false"/>
+		<property name="postfix" value="-com-auth"/>
+		<call target="package"/>
+	</target>-->
+	
+	<target name="Commercial">
+		<property name="defines" value="FINAL" />
+		<property name="IsGPL" value="false"/>
+		<property name="postfix" value="-com"/>
+		<call target="package"/>
+	</target>
+
+	<target name="GPL">
+		<property name="defines" value="FINAL" />
+		<property name="IsGPL" value="true"/>
+		<property name="postfix" value="" />
+		<call target="package"/>
+	</target>
+
+    <!-- GPL package target -->
+    <target name="package" description="Package target for a single edition">
+		<delete dir="staging" failonerror="false"/>
+		<mkdir dir="staging"/>
+		
+		<copy todir="staging"><fileset refid="BaseSource"/></copy>
+		<if test="${IsGPL}">
+			<copy todir="staging"><fileset refid="SourceGPL"/></copy>
+		</if>
+		
+		<copy todir="staging">
+			<fileset>
+				<include name="Installer/main.wxs"/>
+				<include name="Installer/ui.wxs"/>
+				<include name="Installer/binary/*.*"/>
+			</fileset>
+		</copy>
+		
+		<!-- if we are not doing GPL, then we need to replace license text -->
+		<if test="true" unless="${IsGPL}">
+			<replacetext>
+				<section fromfile="gpl-banner.txt" tofile="commercial-banner.txt"/>
+				<files basedir="staging">
+					<include name="./**/*.cs"/>
+				</files>
+			</replacetext>
+		</if>
+		
+		<!-- build all client targets -->
+		<property name="debug" value="false"/>
+		<property name="build.dir" value="staging" />
+		
+		<nant buildfile="staging/client.build" target="allframeworks"/>
+		
+		<!-- now build the WIX installer -->
+		<exec workingdir="staging/Installer" program="candle" commandline="-dIsGPL=${IsGPL} -dbuild=release main.wxs"/>
+		<exec workingdir="staging/Installer" program="candle" commandline="ui.wxs"/>
+		<exec workingdir="staging/Installer" program="light" 
+			commandline="-out MySql.Data.msi main.wixobj ui.wixobj"/>
+
+		<zip zipfile="packages/mysql-connector-net-${ver}${postfix}.zip">
+			<fileset basedir="staging/Installer"><include name="MySql.Data.msi"/></fileset>
+		</zip>
+
+		<delete dir="staging/Installer" failonerror="false"/>
+		
+		<!-- zip the package up -->
+		<zip zipfile="packages/mysql-connector-net-${ver}${postfix}-noinstall.zip">
+			<fileset basedir="staging/">
+				<include name="./**"/>
+			</fileset>
+		</zip>
+
+		<!-- now add the MD5 sig -->
+        <checksum algorithm="MD5" fileext="MD5">
+            <fileset>
+                <include name="packages/mysql-connector-net-${ver}${postfix}.zip"/>
+                <include name="packages/mysql-connector-net-${ver}${postfix}-noinstall.zip"/>
+            </fileset>
+        </checksum>
+
+    </target>
+    
+    <!-- verification targets -->
+	<target name="VerifyAll">
+		<property name="licenseFile" value="gpl-banner.txt"/>
+		<property name="package" value="mysql-connector-net-${ver}"/>
+		<call target="VerifyPackage"/>
+		
+		<property name="licenseFile" value="commercial-banner.txt"/>
+		<property name="package" value="mysql-connector-net-${ver}-com"/>
+		<call target="VerifyPackage"/>
+	</target>
+	
+	<target name="VerifyPackage">
+		<call target="VerifyInstaller"/>
+		<call target="VerifyNonInstaller"/>
+	</target>
+
+	<target name="VerifyDirectory">
+		<!-- now build for all frameworks -->
+		<property name="debug" value="false"/>
+		<nant buildfile="${build.dir}/client.build" target="alltests"/>
+		
+		<!-- now verify that the files do not include wrong license text -->
+		<foreach item="File" property="filename">
+			<in>
+				<items>
+					<include name="packages\temp\src\**\*.cs"/>
+					<include name="packages\temp\src\**\*.vb"/>
+				</items>
+			</in>
+			<do>
+				<checklicense filetocheck="${filename}" licensefile="${licenseFile}"/>
+			</do>
+		</foreach>
+	</target>
+	
+	<target name="VerifyInstaller">
+		<!-- first unzip the package into a temp dir and install it-->
+		<unzip todir="packages/temp" zipfile="packages/${package}.zip"/>		
+		<exec program="msiexec" commandline="/i ${nant.project.basedir}\packages\temp\MySql.Data.msi /norestart /quiet InstallMode=Complete SetInstallLevel=1000 TARGETDIR=${nant.project.basedir}\packages\temp" />
+		
+		<property name="build.dir" value="packages/temp/src" />
+		<call target="VerifyDirectory"/>
+		
+		<!-- now uninstall the package and delete the directory-->
+		<exec program="msiexec" commandline="/x ${nant.project.basedir}\packages\temp\MySql.Data.msi /norestart /quiet"/>
+		<delete dir="packages/temp" failonerror="false"/>
+	</target>
+	
+	<target name="VerifyNonInstaller">
+		<!-- first unzip the package into a temp dir -->
+		<unzip todir="packages/temp" zipfile="packages/${package}-noinstall.zip"/>		
+		<property name="build.dir" value="packages/temp" />
+		<call target="VerifyDirectory"/>
+		<delete dir="packages/temp" failonerror="false"/>
+	</target>
+
+    
+    
+</project>

Thread
Connector/NET commit: r161 - branches/1.0rburnett23 Aug