ファイル情報

Rev. 47
サイズ 6,006 バイト
日時 2013-03-24 03:36:45
作者 seraphy
ログメッセージ

OSX用Java7(Oracle)を実行するアプリケーションバンドルに対応した。

内容

<?xml version="1.0" encoding="UTF-8"?>
<project name="CharacterManaJ" default="default">
    <description>CharacterManaJ</description>

	<!-- 出力するファイル名 -->
	<property name="appName" value="CharacterManaJ.app"/>
	<property name="jarName" value="CharacterManaJ.jar"/>

	<!-- ビルド日時とバージョン、ベンダー -->
	<property file="resources/version.properties"/>
	<tstamp prefix="build-info">
		<format property="current-date" pattern="yyyy-MM-dd" locale="en" />
		<format property="current-time" pattern="hh:mm:ss a z" locale="en" />
	</tstamp>

	<!-- Mac環境でのビルドか? -->
	<condition property="isMacOSX">
		<and>
			<os family="mac"/>
			<os family="unix"/>
		</and>
	</condition>
	
	<!-- 埋め込みリソースを生成する -->
	<target name="makeEmbeddedResource" description="埋め込みリソースを生成する.">
		<java classname="charactermanaj.model.util.MakeEmbeddedResource">
			<arg line="resources/schema/character.xml.ser resources/resource_list.txt"/>
    		<classpath>
    			<pathelement path="bin"/>
    			<pathelement path="resources"/>
    			<fileset dir="extlib">
    				<include name="**/*.jar"/>
    			</fileset>
    		</classpath>
		</java>
	</target>

	<!-- デフォルトのターゲット、JARファイルを作成する -->
	<target name="default" description="make jar">
    	<delete dir="work"/>
		<mkdir dir="work"/>
		<!-- J2SE5以降をターゲットにコンパイルする。(Tiger/Leopard on PPCのため)
		     JDK6のAppleExtentionsでは非推奨になっているものがあるため警告がでます。
		 -->
    	<javac
    		target="1.5"
    		destdir="work"
    		srcdir="src"
    		encoding="UTF-8"
    		debug="on"
    		includeantruntime="false">
    		<classpath>
    			<fileset dir="extlib">
    				<include name="**/*.jar"/>
    			</fileset>
    		</classpath>
    	</javac>

		<!-- リソースをコピーする -->
		<copy todir="work">
    		<fileset dir="resources">
    			<exclude name="**/*.java"/>
    		</fileset>
    	</copy>

		<!-- 埋め込みリソースを生成する -->
		<java classpath="work" classname="charactermanaj.model.util.MakeEmbeddedResource">
			<arg line="work/schema/character.xml.ser work/resource_list.txt"/>
		</java>

		<!-- JARを作成する -->
		<jar jarfile="CharacterManaJ.jar" basedir="work">
    		<manifest>
    			<attribute name="Main-Class" value="charactermanaj.CharacterManaJ" />
    			<!-- スプラッシュ画像 -->
    			<attribute name="Splashscreen-Image" value="splash.png"/>
    			<!-- バージョン情報とか -->
				<attribute name="Built-By" value="${vendor}" />
				<attribute name="Built-On" value="${build-info.current-date}" />
				<attribute name="Built-At" value="${build-info.current-time}" />
				<attribute name="Specification-Title" value="CharacterManaJ" />
				<attribute name="Specification-Version" value="${specification_version}" />
				<attribute name="Specification-Vendor" value="${vendor}" />
				<attribute name="Implementation-Title" value="CharacterManaJ ${specification_version} (${implements_version})" />
				<attribute name="Implementation-Version" value="${implements_version} ${build-info.current-date}" /> 
				<attribute name="Implementation-Vendor" value="${vendor}" />
    		</manifest>
    	</jar>
    	<delete dir="work"/>
    </target>

	<!--
	 Mac OS Xのアプリケーションバンドル構造のフォルダを更新する。
	 バンドルファイルの作り方は公式ページに記述されている。
	 http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html
	 -->
	<target name="makeAppBundle" if="isMacOSX" depends="default">
		<!-- JARファイルをアプリケーションバンドル内にコピー -->
    	<exec dir="." executable="/bin/ln">
    		<arg line='-f "${jarName}" "${appName}/Contents/Resources/Java/${jarName}"'/>
		</exec>
		<!-- JAVA起動スタブをコピー -->
		<copy file="/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub"
			  toDir="${appName}/Contents/MacOS/"/>
		<!-- ルートフォルダにアプリケーションバンドルの属性をセット -->
		<exec dir="." executable="/bin/sh">
			<arg line='-c "/usr/bin/setFile -a B ${appName}"'/>
		</exec>
		<!-- JAVA起動スタブに実行パーミッション再設定 -->
		<exec dir="." executable="/bin/sh">
			<arg line='-c "chmod 755 ${appName}/Contents/MacOS/JavaApplicationStub"'/>
		</exec>
		<!-- リソースディレクトリのパーミッション再設定 -->
		<exec dir="." executable="/bin/sh">
			<arg line='-c "chmod -R 774 ${appName}/Contents/Resources/"'/>
		</exec>
	</target>

	<!--
	 OracleのJava7 on OSX用のアプリケーションバンドル構造のフォルダを更新する。
	 基本構造は、appbundler.jarを用いて作成したもの。ただし、環境変数LC_CTYPE=UTF8の設定と、
	 スプラッシュ画面、および、ローカライズの設定をinfo.plist, InfoPlist.stringsに加えている.
	 -->
	<target name="makeAppBundleJava7" if="isMacOSX" depends="default">
		<!-- JARファイルをアプリケーションバンドル内にコピー -->
    	<exec dir="." executable="/bin/ln">
    		<arg line='-f "${jarName}" "java7mac/${appName}/Contents/Java/${jarName}"'/>
		</exec>
		<!-- ルートフォルダにアプリケーションバンドルの属性をセット -->
		<exec dir="java7mac" executable="/bin/sh">
			<arg line='-c "/usr/bin/setFile -a B ${appName}"'/>
		</exec>
		<!-- JAVA起動スタブに実行パーミッション再設定 -->
		<exec dir="java7mac" executable="/bin/sh">
			<arg line='-c "chmod 755 ${appName}/Contents/MacOS/JavaAppLauncher"'/>
		</exec>
		<!-- リソースディレクトリのパーミッション再設定 -->
		<exec dir="java7mac" executable="/bin/sh">
			<arg line='-c "chmod -R 774 ${appName}/Contents/Resources/"'/>
		</exec>
	</target>

</project>
旧リポジトリブラウザで表示