OSDN Git Service

ver0.97リリース
[charactermanaj/CharacterManaJ.git] / build.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="CharacterManaJ" default="default">
3     <description>CharacterManaJ</description>
4
5         <!-- 出力するファイル名 -->
6         <property name="appName" value="CharacterManaJ.app"/>
7         <property name="jarName" value="CharacterManaJ.jar"/>
8
9         <!-- ビルド日時とバージョン、ベンダー -->
10         <property file="resources/version.properties"/>
11         <tstamp prefix="build-info">
12                 <format property="current-date" pattern="yyyy-MM-dd" locale="en" />
13                 <format property="current-time" pattern="hh:mm:ss a z" locale="en" />
14         </tstamp>
15
16         <!-- Mac環境でのビルドか? -->
17         <condition property="isMacOSX">
18                 <and>
19                         <os family="mac"/>
20                         <os family="unix"/>
21                 </and>
22         </condition>
23         
24         <!-- 埋め込みリソースを生成する -->
25         <target name="makeEmbeddedResource" description="埋め込みリソースを生成する.">
26                 <java classname="charactermanaj.model.util.MakeEmbeddedResource">
27                         <arg line="resources/schema/character.xml.ser resources/resource_list.txt"/>
28                 <classpath>
29                         <pathelement path="bin"/>
30                         <pathelement path="resources"/>
31                         <fileset dir="extlib">
32                                 <include name="**/*.jar"/>
33                         </fileset>
34                 </classpath>
35                 </java>
36         </target>
37
38         <!-- デフォルトのターゲット、JARファイルを作成する -->
39         <target name="default" description="make jar">
40         <delete dir="work"/>
41                 <mkdir dir="work"/>
42                 <!-- J2SE5以降をターゲットにコンパイルする。(Tiger/Leopard on PPCのため)
43                      JDK6のAppleExtentionsでは非推奨になっているものがあるため警告がでます。
44                  -->
45         <javac target="1.5" destdir="work" srcdir="src" encoding="UTF-8" debug="on">
46                 <classpath>
47                         <fileset dir="extlib">
48                                 <include name="**/*.jar"/>
49                         </fileset>
50                 </classpath>
51         </javac>
52         
53                 <!-- リソースをコピーする -->
54                 <copy todir="work">
55                 <fileset dir="resources">
56                         <exclude name="**/*.java"/>
57                 </fileset>
58         </copy>
59
60                 <!-- 埋め込みリソースを生成する -->
61                 <java classpath="work" classname="charactermanaj.model.util.MakeEmbeddedResource">
62                         <arg line="work/schema/character.xml.ser work/resource_list.txt"/>
63                 </java>
64
65                 <!-- JARを作成する -->
66                 <jar jarfile="CharacterManaJ.jar" basedir="work">
67                 <manifest>
68                         <attribute name="Main-Class" value="charactermanaj.Main" />
69                         <!-- スプラッシュ画像 -->
70                         <attribute name="Splashscreen-Image" value="splash.png"/>
71                         <!-- バージョン情報とか -->
72                                 <attribute name="Built-By" value="${vendor}" />
73                                 <attribute name="Built-On" value="${build-info.current-date}" />
74                                 <attribute name="Built-At" value="${build-info.current-time}" />
75                                 <attribute name="Specification-Title" value="CharacterManaJ" />
76                                 <attribute name="Specification-Version" value="${specification_version}" />
77                                 <attribute name="Specification-Vendor" value="${vendor}" />
78                                 <attribute name="Implementation-Title" value="CharacterManaJ ${specification_version} (${implements_version})" />
79                                 <attribute name="Implementation-Version" value="${implements_version} ${build-info.current-date}" /> 
80                                 <attribute name="Implementation-Vendor" value="${vendor}" />
81                 </manifest>
82         </jar>
83         <delete dir="work"/>
84     </target>
85
86         <!--
87          Mac OS Xのアプリケーションバンドル構造のフォルダを更新する。
88          バンドルファイルの作り方は公式ページに記述されている。
89          http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html
90          -->
91         <target name="makeAppBundle" if="isMacOSX" depends="default">
92                 <!-- JARファイルをアプリケーションバンドル内にコピー -->
93         <copy file="${jarName}" toDir="CharacterManaJ.app/Contents/Resources/Java/"/>
94                 <!-- JAVA起動スタブをコピー -->
95                 <copy file="/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub"
96                           toDir="CharacterManaJ.app/Contents/MacOS/"/>
97                 <!-- ルートフォルダにアプリケーションバンドルの属性をセット -->
98                 <exec dir="." executable="/bin/sh">
99                         <arg line='-c "/usr/bin/setFile -a B ${appName}"'/>
100                 </exec>
101                 <!-- JAVA起動スタブに実行パーミッション再設定 -->
102                 <exec dir="." executable="/bin/sh">
103                         <arg line='-c "chmod 755 CharacterManaJ.app/Contents/MacOS/JavaApplicationStub"'/>
104                 </exec>
105                 <!-- リソースディレクトリのパーミッション再設定 -->
106                 <exec dir="." executable="/bin/sh">
107                         <arg line='-c "chmod -R 774 CharacterManaJ.app/Contents/Resources/"'/>
108                 </exec>
109         </target>
110
111 </project>