2009-05-21 10:00:48 +00:00
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2010-11-07 15:04:10 +00:00
<project name= "FileBot" default= "fatjar" >
2009-06-02 11:32:30 +00:00
2007-12-23 19:28:04 +00:00
<property name= "title" value= "${ant.project.name}" />
2010-10-25 13:23:45 +00:00
<property name= "version" value= "r440" />
2007-12-23 19:28:04 +00:00
2008-12-31 20:11:27 +00:00
<tstamp >
<format property= "today" pattern= "yyyy-MM-dd" />
</tstamp>
2007-12-23 19:28:04 +00:00
2008-12-31 20:11:27 +00:00
<property name= "dir.source" location= "${basedir}/source" />
<property name= "dir.test" location= "${basedir}/test" />
<property name= "dir.build" location= "${basedir}/build" />
<property name= "dir.dist" location= "${basedir}/dist" />
<property name= "dir.lib" location= "${basedir}/lib" />
2010-10-28 12:25:47 +00:00
<property name= "dir.installer" location= "${basedir}/installer" />
<property name= "path.fatjar" location= "${dir.dist}/${title}_${version}.jar" />
<property name= "path.appbundle.zip" location= "${dir.dist}/${title}_${version}.app.zip" />
<property name= "path.source.zip" location= "${dir.dist}/filebot-${version}-src.zip" />
2008-02-13 20:08:06 +00:00
2007-12-23 19:28:04 +00:00
2008-12-31 20:11:27 +00:00
<target name= "jar" depends= "build" >
2008-07-30 22:37:01 +00:00
<!-- create dist dir -->
<mkdir dir= "${dir.dist}" />
2008-12-31 20:11:27 +00:00
<!-- main jar -->
<jar destfile= "${dir.dist}/filebot.jar" >
<fileset dir= "${dir.build}" excludes= "**/*Test*" />
</jar>
<!-- extra jar containing all the unit tests -->
<jar destfile= "${dir.dist}/filebot-test.jar" >
<fileset dir= "${dir.build}" includes= "**/*Test*" />
</jar>
2009-08-02 11:51:28 +00:00
2010-10-28 12:25:47 +00:00
<!-- source as zip -->
<zip destfile= "${path.source.zip}" >
2009-08-02 11:51:28 +00:00
<fileset dir= "source" />
<fileset dir= "test" />
</zip>
2008-12-31 20:11:27 +00:00
</target>
2010-10-28 12:25:47 +00:00
<target name= "fatjar" depends= "jar" description= "Merge all class files into a single executable jar file" >
<jar destfile= "${path.fatjar}" filesetmanifest= "merge" duplicate= "fail" >
2009-07-31 00:27:07 +00:00
<manifest >
<attribute name= "Built-By" value= "${user.name}" />
<attribute name= "Built-Date" value= "${today}" />
<attribute name= "Application-Name" value= "${title}" />
<attribute name= "Application-Version" value= "${version}" />
<attribute name= "Main-Class" value= "net.sourceforge.filebot.Main" />
</manifest>
2009-07-29 22:09:10 +00:00
<!-- include main jar -->
<zipfileset src= "${dir.dist}/filebot.jar" />
2009-07-31 00:27:07 +00:00
2008-06-09 18:41:06 +00:00
<!-- include libs -->
2008-12-31 20:11:27 +00:00
<zipfileset src= "${dir.lib}/xercesImpl.jar" >
2009-04-11 23:27:10 +00:00
<include name= "org/apache/**" />
<include name= "org/w3c/dom/html/**" />
2007-12-23 19:28:04 +00:00
</zipfileset>
2009-06-02 11:32:30 +00:00
2008-12-31 20:11:27 +00:00
<zipfileset src= "${dir.lib}/nekohtml.jar" >
2009-04-11 23:27:10 +00:00
<include name= "org/cyberneko/html/**" />
2008-02-13 20:08:06 +00:00
</zipfileset>
2009-06-02 11:32:30 +00:00
2008-12-31 20:11:27 +00:00
<zipfileset src= "${dir.lib}/simmetrics.jar" >
2009-04-11 23:27:10 +00:00
<include name= "uk/ac/shef/wit/simmetrics/**" />
2008-06-09 18:41:06 +00:00
</zipfileset>
2009-06-02 11:32:30 +00:00
2008-12-31 20:11:27 +00:00
<zipfileset src= "${dir.lib}/glazedlists.jar" >
2009-04-11 23:27:10 +00:00
<include name= "ca/odell/glazedlists/**" />
2008-10-12 20:25:23 +00:00
</zipfileset>
2008-12-31 20:11:27 +00:00
<zipfileset src= "${dir.lib}/miglayout.jar" >
2009-04-11 23:27:10 +00:00
<include name= "net/miginfocom/**" />
2008-02-13 20:08:06 +00:00
</zipfileset>
2009-06-02 11:32:30 +00:00
2009-08-17 17:23:29 +00:00
<zipfileset src= "${dir.lib}/xmlrpc.jar" >
2009-04-11 23:27:10 +00:00
<include name= "redstone/xmlrpc/**" />
2008-02-13 20:08:06 +00:00
</zipfileset>
2008-10-12 20:25:23 +00:00
2008-12-31 20:11:27 +00:00
<zipfileset src= "${dir.lib}/args4j.jar" >
2009-04-11 23:27:10 +00:00
<include name= "org/kohsuke/args4j/**" />
2008-07-30 22:37:01 +00:00
</zipfileset>
2009-06-02 11:32:30 +00:00
2009-02-02 20:50:04 +00:00
<zipfileset src= "${dir.lib}/ehcache.jar" >
2009-04-11 23:27:10 +00:00
<include name= "net/sf/ehcache/**" />
2009-11-21 19:46:01 +00:00
<include name= "ehcache-failsafe.xml" />
<include name= "ehcache-version.properties" />
2009-04-05 10:08:00 +00:00
</zipfileset>
2009-06-02 11:32:30 +00:00
2010-10-24 13:43:11 +00:00
<zipfileset src= "${dir.lib}/slf4j.jar" >
<include name= "org/slf4j/**" />
</zipfileset>
<zipfileset src= "${dir.lib}/slf4j-jdk.jar" >
<include name= "org/slf4j/**" />
</zipfileset>
2009-04-05 10:08:00 +00:00
<zipfileset src= "${dir.lib}/jna.jar" >
<!-- include classes and native libraries -->
<include name= "com/sun/jna/**" />
2009-04-11 23:27:10 +00:00
</zipfileset>
2009-06-02 11:32:30 +00:00
2009-09-22 21:23:39 +00:00
<zipfileset src= "${dir.lib}/groovy.jar" >
<include name= "groovy*/**" />
<include name= "org/codehaus/groovy/**" />
2010-10-24 17:12:51 +00:00
<include name= "META-INF/dgminfo" />
2009-04-11 23:27:10 +00:00
</zipfileset>
2009-07-27 22:34:42 +00:00
2009-06-02 11:32:30 +00:00
<zipfileset src= "${dir.lib}/sublight-ws.jar" >
<include name= "net/sublight/webservice/**" />
</zipfileset>
2009-07-27 22:34:42 +00:00
2009-06-30 20:49:09 +00:00
<zipfileset src= "${dir.lib}/junrar-custom.jar" >
<include name= "de/innosystec/unrar/**" />
</zipfileset>
2007-12-23 19:28:04 +00:00
</jar>
</target>
2010-10-28 12:25:47 +00:00
<target name= "appbundle" depends= "fatjar" description= "Build an OSX application bundle" >
2010-11-07 15:04:10 +00:00
<taskdef name= "jarbundler" classname= "net.sourceforge.jarbundler.JarBundler" classpath= "${dir.installer}/appbundle/jarbundler.jar" />
2010-10-28 12:25:47 +00:00
<!-- build app bundle folder and add native libs -->
<jarbundler dir= "${dir.dist}" name= "${title}" version= "${version}" icon= "${dir.installer}/appbundle/icon.icns" bundleid= "net.sourceforge.filebot" jar= "${path.fatjar}" stubfile= "${dir.installer}/appbundle/JavaApplicationStub" workingdirectory= "$APP_PACKAGE/Contents/Resources/Java" mainclass= "net.sourceforge.filebot.Main" jvmversion= "1.6+" vmoptions= "-Xmx256m" />
<copy todir= "${dir.dist}/${title}.app/Contents/Resources/Java" >
<fileset dir= "${dir.lib}/native/mac-x86_64" includes= "*.dylib" />
</copy>
<!-- application bundle folder as zip -->
<zip destfile= "${path.appbundle.zip}" >
2010-10-28 16:32:59 +00:00
<zipfileset dir= "${dir.dist}" includes= "${title}.app/**" excludes= "**/JavaApplicationStub" />
2010-11-07 15:04:10 +00:00
<zipfileset dir= "${dir.dist}" includes= "${title}.app/**/JavaApplicationStub" filemode= "755" /> <!-- application stub must be executable!! -->
2010-10-28 12:25:47 +00:00
</zip>
</target>
2010-11-07 15:04:10 +00:00
<target name= "deb" depends= "fatjar" description= "Build debian package for i386 and amd64" >
<taskdef resource= "ant_deb_task.properties" classpath= "${dir.installer}/deb/ant-deb.jar" />
<antcall target= "deb-arch" >
<param name= "arch" value= "i386" />
</antcall>
<antcall target= "deb-arch" >
<param name= "arch" value= "amd64" />
</antcall>
</target>
<target name= "deb-arch" >
<deb todir= "${dir.dist}" package= "filebot" version= "r440" architecture= "${arch}" section= "misc" depends= "openjdk-6-jre" homepage= "http://filebot.sourceforge.net" priority= "optional" >
<maintainer email= "rednoah" name= "rednoah@users.sourceforge.net" />
<description synopsis= "The ultimate tv renamer / subtitle downloader / sfv validator" > FileBot is the ultimate tool for renaming your tv shows and anime, downloading subtitles from various sources or just simple file verification.</description>
<tarfileset prefix= "usr/share/filebot/bin" file= "${dir.installer}/deb/filebot.sh" filemode= "755" />
<tarfileset fullpath= "usr/share/filebot/FileBot.jar" file= "${path.fatjar}" />
<tarfileset prefix= "usr/share/filebot" dir= "${dir.lib}/native/linux-${arch}" includes= "*.so" />
<tarfileset prefix= "usr/share/filebot" file= "${dir.installer}/icons/icon48.png" />
<tarfileset prefix= "usr/share/applications" file= "${dir.installer}/deb/FileBot.desktop" />
</deb>
</target>
2010-11-06 11:01:19 +00:00
<target name= "msi" depends= "fatjar" description= "Build Windows Installer for x86 and x64" >
2010-11-07 15:04:10 +00:00
<antcall target= "msi-arch" >
2010-11-06 11:01:19 +00:00
<param name= "arch" value= "x86" />
</antcall>
2010-11-07 15:04:10 +00:00
<antcall target= "msi-arch" >
2010-11-06 11:01:19 +00:00
<param name= "arch" value= "x64" />
</antcall>
</target>
2010-11-07 15:04:10 +00:00
<target name= "msi-arch" >
2010-11-06 11:01:19 +00:00
<property name= "mediainfo" location= "${dir.lib}/native/win32-${arch}/MediaInfo.dll" />
2010-11-07 15:04:10 +00:00
<property name= "installer" location= "${dir.dist}/FileBot_${version}_${arch}.msi" />
2010-11-06 11:01:19 +00:00
<exec executable= "candle.exe" dir= "${dir.installer}/msi" failonerror= "true" >
<arg line= "filebot-wix.xml -out ${dir.dist}/msi.wixobj -arch ${arch} -dfatjar=${path.fatjar} -dmediainfo=${mediainfo}" />
</exec>
<exec executable= "light.exe" dir= "${dir.installer}/msi" failonerror= "true" >
<arg line= "${dir.dist}/msi.wixobj -sval -ext WixUIExtension -out ${installer}" />
</exec>
</target>
2010-10-28 12:25:47 +00:00
<target name= "webstart" depends= "jar" description= "Build and compress jars used for webstart deployment" >
2009-07-27 22:34:42 +00:00
<!-- create dirs -->
<mkdir dir= "${dir.dist}/webstart" />
2010-10-28 12:25:47 +00:00
<!-- copy jnlp descriptors and icons -->
<copy todir= "${dir.dist}/webstart" >
<fileset dir= "${dir.installer}/webstart" />
<fileset dir= "${dir.installer}/icons" />
</copy>
2009-07-27 22:34:42 +00:00
<!-- copy jars -->
<copy todir= "${dir.dist}/webstart" >
<fileset dir= "${dir.dist}" includes= "filebot.jar" />
<fileset dir= "${dir.lib}" includes= "*.jar" excludes= "junit.jar, jna.jar" />
</copy>
2009-08-02 11:51:28 +00:00
2009-07-27 22:34:42 +00:00
<!-- copy jna.jar without native libs -->
<jar destfile= "${dir.dist}/webstart/jna.jar" >
<zipfileset src= "${dir.lib}/jna.jar" includes= "**/*.class" />
</jar>
<!-- create native lib jars -->
<antcall target= "webstart-nativelib" >
2009-07-29 22:09:10 +00:00
<param name= "arch" value= "win32-x86" />
2009-07-27 22:34:42 +00:00
</antcall>
<antcall target= "webstart-nativelib" >
2010-11-06 11:01:19 +00:00
<param name= "arch" value= "win32-x64" />
2009-07-27 22:34:42 +00:00
</antcall>
<antcall target= "webstart-nativelib" >
<param name= "arch" value= "linux-i386" />
</antcall>
<antcall target= "webstart-nativelib" >
<param name= "arch" value= "linux-amd64" />
</antcall>
<antcall target= "webstart-nativelib" >
2010-02-07 02:15:38 +00:00
<param name= "arch" value= "mac-x86_64" />
2009-07-27 22:34:42 +00:00
</antcall>
<!-- sign main jar and native lib jars -->
<apply executable= "pack200" >
2009-08-15 11:47:24 +00:00
<!-- workaround for bug 6575373, see http://bugs.sun.com/view_bug.do?bug_id=6575373 -->
<arg line= "--segment-limit=-1" />
2009-07-27 22:34:42 +00:00
<arg line= "--repack" />
<srcfile />
2009-08-15 11:47:24 +00:00
<fileset dir= "${dir.dist}/webstart" includes= "filebot.jar" />
2009-07-27 22:34:42 +00:00
</apply>
2009-08-15 11:47:24 +00:00
2009-07-27 22:34:42 +00:00
<signjar alias= "filebot" keystore= "filebot.keystore" storepass= "secret" >
2009-08-15 11:47:24 +00:00
<fileset id= "signjar" dir= "${dir.dist}/webstart" includes= "filebot.jar, native/*.jar" />
2009-07-27 22:34:42 +00:00
</signjar>
<!-- pack200 all jars -->
<apply executable= "pack200" dest= "${dir.dist}/webstart" >
2009-08-15 11:47:24 +00:00
<!-- workaround for bug 6575373, see http://bugs.sun.com/view_bug.do?bug_id=6575373 -->
<arg line= "--segment-limit=-1" />
2009-07-27 22:34:42 +00:00
<targetfile />
<srcfile />
<fileset dir= "${dir.dist}/webstart" includes= "*.jar" />
<mapper type= "glob" from= "*.jar" to= "*.jar.pack.gz" />
</apply>
</target>
<target name= "webstart-nativelib" >
<!-- create temp dir -->
<mkdir dir= "${dir.dist}/webstart/native/${arch}" />
<!-- copy native libs to temp dir -->
<copy todir= "${dir.dist}/webstart/native/${arch}" flatten= "true" >
<zipfileset src= "${dir.lib}/jna.jar" includes= "com/sun/jna/${arch}/*" />
<fileset dir= "${dir.lib}/native" includes= "${arch}/*" />
</copy>
<!-- create native lib jar -->
<jar destfile= "${dir.dist}/webstart/native/${arch}.jar" basedir= "${dir.dist}/webstart/native/${arch}" />
<!-- delete temp dir -->
<delete dir= "${dir.dist}/webstart/native/${arch}" />
</target>
<target name= "genkey" >
<genkey alias= "filebot" keystore= "filebot.keystore" storepass= "secret" validity= "3650" dname= "CN=${user.name}" />
</target>
2008-06-09 18:41:06 +00:00
<target name= "build" >
2007-12-23 19:28:04 +00:00
<!-- create build dir -->
2008-06-09 18:41:06 +00:00
<mkdir dir= "${dir.build}" />
2007-12-23 19:28:04 +00:00
<!-- compile -->
2010-01-26 19:08:09 +00:00
<javac srcdir= "${dir.source}:${dir.test}" destdir= "${dir.build}" source= "1.6" encoding= "utf-8" includeAntRuntime= "false" >
2007-12-23 19:28:04 +00:00
<classpath >
2008-06-09 18:41:06 +00:00
<fileset dir= "${dir.lib}" includes= "*.jar" />
2007-12-23 19:28:04 +00:00
</classpath>
</javac>
2009-06-02 11:32:30 +00:00
2007-12-23 19:28:04 +00:00
<!-- copy resources -->
2008-06-09 18:41:06 +00:00
<copy todir= "${dir.build}" >
<fileset dir= "${dir.source}" >
2009-07-27 22:34:42 +00:00
<exclude name= "**/*.java" />
2007-12-23 19:28:04 +00:00
</fileset>
</copy>
</target>
<target name= "clean" >
2008-07-30 22:37:01 +00:00
<delete dir= "${dir.dist}" />
2008-06-09 18:41:06 +00:00
<delete dir= "${dir.build}" />
2007-12-23 19:28:04 +00:00
</target>
2008-12-31 20:11:27 +00:00
<target name= "test" depends= "jar" >
<junit printsummary= "yes" fork= "true" >
2008-06-09 18:41:06 +00:00
<classpath >
2008-12-31 20:11:27 +00:00
<fileset dir= "${dir.dist}" includes= "*.jar" />
<fileset dir= "${dir.lib}" includes= "*.jar" />
2008-06-09 18:41:06 +00:00
</classpath>
2008-12-31 20:11:27 +00:00
2008-06-09 18:41:06 +00:00
<formatter type= "plain" />
2008-12-31 20:11:27 +00:00
<test name= "net.sourceforge.filebot.AllTests" outfile= "test-report" />
2008-06-09 18:41:06 +00:00
</junit>
</target>
2008-12-31 20:11:27 +00:00
2009-06-02 11:32:30 +00:00
2008-12-31 20:11:27 +00:00
<target name= "test-fatjar" depends= "fatjar" >
<junit printsummary= "yes" fork= "true" >
<classpath >
2010-10-28 12:25:47 +00:00
<pathelement location= "${path.fatjar}" />
2008-12-31 20:11:27 +00:00
<pathelement location= "${dir.dist}/filebot-test.jar" />
<pathelement location= "${dir.lib}/junit.jar" />
</classpath>
2009-06-02 11:32:30 +00:00
2008-12-31 20:11:27 +00:00
<formatter type= "plain" />
2008-03-02 17:02:37 +00:00
2008-12-31 20:11:27 +00:00
<test name= "net.sourceforge.filebot.AllTests" outfile= "test-report" />
</junit>
</target>
2009-06-02 11:32:30 +00:00
2009-02-15 21:11:03 +00:00
<target name= "run-fatjar" depends= "fatjar" >
2010-10-28 12:25:47 +00:00
<java jar= "${path.fatjar}" fork= "true" />
2009-02-15 21:11:03 +00:00
</target>
2010-10-24 13:43:11 +00:00
2010-11-07 15:04:10 +00:00
<target name= "deploy" depends= "fatjar, appbundle, deb, msi" >
<property name= "deploy.release" value= "web.sourceforge.net:/home/frs/project/f/fi/filebot/filebot" />
<property name= "deploy.webstart" value= "web.sourceforge.net:htdocs/webstart" />
2010-02-04 16:22:45 +00:00
<!-- ask for sourceforge password -->
2010-11-07 15:04:10 +00:00
<property name= "sf.user" value= "rednoah,filebot" />
2010-02-04 16:22:45 +00:00
<input message= "Please enter password:" addproperty= "sf.password" />
2010-10-24 13:43:11 +00:00
2010-02-04 16:22:45 +00:00
<!-- create fatjar release folder -->
<mkdir dir= "${dir.dist}/release" />
2010-10-24 13:43:11 +00:00
2010-02-04 16:22:45 +00:00
<!-- copy fatjar and source -->
2010-10-28 12:25:47 +00:00
<copy todir= "${dir.dist}/release/${title}_${version}" file= "${path.fatjar}" />
<copy todir= "${dir.dist}/release/${title}_${version}" file= "${path.appbundle.zip}" />
<copy todir= "${dir.dist}/release/${title}_${version}" file= "${path.source.zip}" />
2010-11-07 15:04:10 +00:00
<copy todir= "${dir.dist}/release/${title}_${version}" file= "${dir.dist}/filebot_${version}_i386.deb" />
<copy todir= "${dir.dist}/release/${title}_${version}" file= "${dir.dist}/filebot_${version}_amd64.deb" />
<copy todir= "${dir.dist}/release/${title}_${version}" file= "${dir.dist}/FileBot_${version}_x86.msi" />
<copy todir= "${dir.dist}/release/${title}_${version}" file= "${dir.dist}/FileBot_${version}_x64.msi" />
2010-10-24 13:43:11 +00:00
2010-10-28 12:25:47 +00:00
<!-- deploy source zip first so it will be the oldest file in the release folder -->
2010-11-07 15:04:10 +00:00
<scp todir= "${sf.user}:${sf.password}@${deploy.release}" trust= "yes" >
2010-02-04 16:22:45 +00:00
<fileset dir= "${dir.dist}/release" includes= "**/*-src.zip" />
</scp>
2010-10-24 13:43:11 +00:00
2010-10-28 12:25:47 +00:00
<!-- deploy fatjar -->
2010-11-07 15:04:10 +00:00
<sleep seconds= "5" />
<scp todir= "${sf.user}:${sf.password}@${deploy.release}" trust= "yes" >
2010-10-24 13:43:11 +00:00
<fileset dir= "${dir.dist}/release" includes= "**/*.jar" />
2010-02-04 16:22:45 +00:00
</scp>
2010-10-24 13:43:11 +00:00
2010-11-06 11:01:19 +00:00
<!-- deploy windows installers -->
2010-11-07 15:04:10 +00:00
<sleep seconds= "5" />
<scp todir= "${sf.user}:${sf.password}@${deploy.release}" trust= "yes" >
2010-11-06 11:01:19 +00:00
<fileset dir= "${dir.dist}/release" includes= "**/*.msi" />
</scp>
2010-11-07 15:04:10 +00:00
<!-- deploy debian packages -->
<sleep seconds= "5" />
<scp todir= "${sf.user}:${sf.password}@${deploy.release}" trust= "yes" >
<fileset dir= "${dir.dist}/release" includes= "**/*.deb" />
</scp>
2010-10-28 12:25:47 +00:00
<!-- deploy osx app bundle -->
2010-11-07 15:04:10 +00:00
<sleep seconds= "5" />
<scp todir= "${sf.user}:${sf.password}@${deploy.release}" trust= "yes" >
2010-10-28 12:25:47 +00:00
<fileset dir= "${dir.dist}/release" includes= "**/*.app.zip" />
</scp>
<!-- deploy webstart jars and jnlp descriptors -->
2010-11-07 15:04:10 +00:00
<scp todir= "${sf.user}:${sf.password}@${deploy.webstart}" trust= "yes" >
2010-02-04 16:22:45 +00:00
<fileset dir= "${dir.dist}/webstart" />
</scp>
</target>
2009-06-02 11:32:30 +00:00
2008-03-02 17:02:37 +00:00
</project>