OSDN Git Service

dmgおよびzipの生成用バッチの作成
[charactermanaj/CharacterManaJ.git] / build.xml
index 66acac9..7989d2f 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
-<project name="CharacterManaJ" default="default">\r
-    <description>CharacterManaJ</description>\r
+<project name="CharacterManaJ" default="makeExecutableJar">\r
+       <description>CharacterManaJ</description>\r
 \r
        <!-- 出力するファイル名 -->\r
        <property name="appName" value="CharacterManaJ.app"/>\r
                        <os family="unix"/>\r
                </and>\r
        </condition>\r
-       \r
+\r
+       <!-- launch4jの設定 -->\r
+       <property name="launch4j.dir" location="C:/Java/Launch4j" />\r
+\r
        <!-- デフォルトのターゲット、JARファイルを作成する -->\r
-       <target name="default" description="make jar">\r
-       <delete dir="work"/>\r
+       <target name="makeExecutableJar" description="makejar">\r
+               <delete dir="work"/>\r
                <mkdir dir="work"/>\r
                <!-- J2SE5以降をターゲットにコンパイルする。(Tiger/Leopard on PPCのため)\r
                     JDK6のAppleExtentionsでは非推奨になっているものがあるため警告がでます。\r
                 -->\r
-       <javac\r
+               <javac\r
                target="1.5"\r
                destdir="work"\r
                srcdir="src"\r
                encoding="UTF-8"\r
                debug="on"\r
                includeantruntime="false">\r
-               <classpath>\r
-                       <fileset dir="extlib">\r
-                               <include name="**/*.jar"/>\r
-                       </fileset>\r
-               </classpath>\r
-               <compilerarg value="-Xlint:deprecation" />\r
-               <compilerarg value="-Xlint:unchecked" />\r
-       </javac>\r
+                       <classpath>\r
+                               <fileset dir="extlib">\r
+                                       <include name="**/*.jar"/>\r
+                               </fileset>\r
+                       </classpath>\r
+                       <compilerarg value="-Xlint:deprecation" />\r
+                       <compilerarg value="-Xlint:unchecked" />\r
+               </javac>\r
 \r
                <!-- リソースをコピーする -->\r
                <copy todir="work">\r
-               <fileset dir="resources">\r
-                       <exclude name="**/*.java"/>\r
-               </fileset>\r
-       </copy>\r
+                       <fileset dir="resources">\r
+                               <exclude name="**/*.java"/>\r
+                       </fileset>\r
+               </copy>\r
 \r
                <!-- ソース上のリソースをコピーする -->\r
                <copy todir="work">\r
-               <fileset dir="src">\r
-                       <exclude name="**/*.java"/>\r
-               </fileset>\r
-       </copy>\r
+                       <fileset dir="src">\r
+                               <exclude name="**/*.java"/>\r
+                       </fileset>\r
+               </copy>\r
 \r
                <!-- JARを作成する -->\r
                <jar jarfile="${distdir}/CharacterManaJ.jar"\r
                         basedir="work"\r
                         index="true">\r
-               <manifest>\r
-                       <attribute name="Main-Class" value="charactermanaj.CharacterManaJ" />\r
-                       <!-- スプラッシュ画像 -->\r
-                       <attribute name="Splashscreen-Image" value="splash.png"/>\r
-                       <!-- バージョン情報とか -->\r
+                       <manifest>\r
+                               <attribute name="Main-Class" value="charactermanaj.CharacterManaJ" />\r
+                               <!-- スプラッシュ画像 -->\r
+                               <attribute name="Splashscreen-Image" value="splash.png"/>\r
+                               <!-- バージョン情報とか -->\r
                                <attribute name="Built-By" value="${vendor}" />\r
                                <attribute name="Built-On" value="${build-info.current-date}" />\r
                                <attribute name="Built-At" value="${build-info.current-time}" />\r
                                <attribute name="Specification-Version" value="${specification_version}" />\r
                                <attribute name="Specification-Vendor" value="${vendor}" />\r
                                <attribute name="Implementation-Title" value="CharacterManaJ ${specification_version} (${implements_version})" />\r
-                               <attribute name="Implementation-Version" value="${implements_version} ${build-info.current-date}" /> \r
+                               <attribute name="Implementation-Version" value="${implements_version} ${build-info.current-date}" />\r
                                <attribute name="Implementation-Vendor" value="${vendor}" />\r
-               </manifest>\r
-       </jar>\r
-       <delete dir="work"/>\r
-    </target>\r
-\r
-       <!--\r
-        Mac OS Xのアプリケーションバンドル構造のフォルダを更新する。\r
-        バンドルファイルの作り方は公式ページに記述されている。\r
-        http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html\r
-        -->\r
-       <target name="makeAppBundle" if="isMacOSX" depends="default">\r
-               <!-- JARファイルをアプリケーションバンドル内にコピー -->\r
-       <exec dir="${distdir}" executable="/bin/ln">\r
-               <arg line='-f "${jarName}" "${appName}/Contents/Resources/Java/${jarName}"'/>\r
-               </exec>\r
-               <!-- JAVA起動スタブをコピー -->\r
-               <copy file="/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub"\r
-                         toDir="${distdir}/${appName}/Contents/MacOS/"/>\r
-               <!-- ルートフォルダにアプリケーションバンドルの属性をセット -->\r
-               <exec dir="${distdir}" executable="/bin/sh">\r
-                       <arg line='-c "/usr/bin/setFile -a B ${appName}"'/>\r
-               </exec>\r
-               <!-- JAVA起動スタブに実行パーミッション再設定 -->\r
-               <exec dir="${distdir}" executable="/bin/sh">\r
-                       <arg line='-c "chmod 755 ${appName}/Contents/MacOS/JavaApplicationStub"'/>\r
-               </exec>\r
-               <!-- リソースディレクトリのパーミッション再設定 -->\r
-               <exec dir="${distdir}" executable="/bin/sh">\r
-                       <arg line='-c "chmod -R 774 ${appName}/Contents/Resources/"'/>\r
-               </exec>\r
+                       </manifest>\r
+               </jar>\r
+               <delete dir="work"/>\r
        </target>\r
 \r
-       <!--\r
-        OracleのJava7 on OSX用のアプリケーションバンドル構造のフォルダを更新する。\r
-        基本構造は、appbundler.jarを用いて作成したもの。ただし、環境変数LC_CTYPE=UTF8の設定と、\r
-        スプラッシュ画面、および、ローカライズの設定をinfo.plist, InfoPlist.stringsに加えている.\r
-        -->\r
-       <target name="makeAppBundleJava7" if="isMacOSX" depends="default">\r
-               <!-- JARファイルをアプリケーションバンドル内にコピー -->\r
-       <exec dir="${distdir}" executable="/bin/ln">\r
-               <arg line='-f "${jarName}" "java7mac/${appName}/Contents/Java/${jarName}"'/>\r
-               </exec>\r
-               <!-- ルートフォルダにアプリケーションバンドルの属性をセット -->\r
-               <exec dir="${distdir}/java7mac" executable="/bin/sh">\r
-                       <arg line='-c "/usr/bin/setFile -a B ${appName}"'/>\r
-               </exec>\r
-               <!-- JAVA起動スタブに実行パーミッション再設定 -->\r
-               <exec dir="${distdir}/java7mac" executable="/bin/sh">\r
-                       <arg line='-c "chmod 755 ${appName}/Contents/MacOS/JavaAppLauncher"'/>\r
-               </exec>\r
-               <!-- リソースディレクトリのパーミッション再設定 -->\r
-               <exec dir="${distdir}/java7mac" executable="/bin/sh">\r
-                       <arg line='-c "chmod -R 774 ${appName}/Contents/Resources/"'/>\r
-               </exec>\r
+       <!-- Launch4jによるexeの作成 -->\r
+       <taskdef name="launch4j"\r
+               classname="net.sf.launch4j.ant.Launch4jTask"\r
+               classpath="${launch4j.dir}/launch4j.jar:${launch4j.dir}/lib/xstream.jar"/>\r
+       <target name="makeExe" description="コンパイルしてEXE化する" depends="makeExecutableJar">\r
+                       <!-- launch4jによるexeへのラップ -->\r
+                       <copy file="launch4j.xml" tofile="launch4j.xml.tmp"\r
+                               filtering="true" overwrite="true">\r
+                               <filterset>\r
+                                       <filter token="implements_version" value="${implements_version}"/>\r
+                                       <filter token="exe_file_version" value="${exe_file_version}"/>\r
+                               </filterset>\r
+                       </copy>\r
+                       <launch4j configFile="launch4j.xml.tmp" />\r
+                       <delete file="launch4j.xml.tmp"/>\r
        </target>\r
-\r
 </project>\r