comparison build.xml @ 23:92afaa27f40a

Mac app support.
author David Barts <n5jrn@me.com>
date Tue, 24 Nov 2020 16:45:37 -0800
parents 5234e4500d45
children 9bf3d8de6904
comparison
equal deleted inserted replaced
22:d3979a2155a8 23:92afaa27f40a
39 <property name="jar.name" value="${basedir}/${lc.app.name}.jar"/> 39 <property name="jar.name" value="${basedir}/${lc.app.name}.jar"/>
40 <property name="work.jar" value="${basedir}/work.jar"/> 40 <property name="work.jar" value="${basedir}/work.jar"/>
41 <property name="lib.home" value="${basedir}/lib"/> 41 <property name="lib.home" value="${basedir}/lib"/>
42 <property name="src.home" value="${basedir}/src"/> 42 <property name="src.home" value="${basedir}/src"/>
43 <property name="dist.home" value="${basedir}/dist"/> 43 <property name="dist.home" value="${basedir}/dist"/>
44 <property name="pf.home" value="${basedir}/package-files"/>
44 <property name="jvm.version" value="1.8"/> 45 <property name="jvm.version" value="1.8"/>
45 46
46 <!-- define the kotlin task --> 47 <!-- define the kotlin task -->
47 <property name="kotlin.lib" value="${env.KOTLIN_HOME}/lib"/> 48 <property name="kotlin.lib" value="${env.KOTLIN_HOME}/lib"/>
48 <typedef resource="org/jetbrains/kotlin/ant/antlib.xml" 49 <typedef resource="org/jetbrains/kotlin/ant/antlib.xml"
117 <zipfileset src="${work.jar}"/> 118 <zipfileset src="${work.jar}"/>
118 <zipfileset dir="${src.home}" includes="**/*.properties,**/*.html"/> 119 <zipfileset dir="${src.home}" includes="**/*.properties,**/*.html"/>
119 </jar> 120 </jar>
120 </target> 121 </target>
121 122
123 <target name="macapp" depends="jar" description="Create MacOS app bundle.">
124 <fail message="Macintosh packages can only be built on a Mac.">
125 <condition>
126 <not><os family="mac"/></not>
127 </condition>
128 </fail>
129 <sequential>
130 <property name="mac.disk.image.filename"
131 value="${lc.app.name}_${app.version}.dmg"/>
132 <property name="app.bundle" value="${dist.home}/${app.name}.app"/>
133 <mkdir dir="${app.bundle}/Contents"/>
134 <copy todir="${app.bundle}/Contents" encoding="UTF-8" overwrite="true">
135 <fileset file="${pf.home}/osx/Info.plist"/>
136 <!-- XXX will break if any tokens contain <, >, or & -->
137 <filterset>
138 <filter token="app.copyright" value="${app.copyright}"/>
139 <filter token="app.domain" value="${app.domain}"/>
140 <filter token="app.entry" value="${app.entry}"/>
141 <filter token="app.name" value="${app.name}"/>
142 <filter token="app.version" value="${app.version}"/>
143 <filter token="jar.filename" value="${lc.app.name}.jar"/>
144 <filter token="jvm.version" value="${jvm.version}"/>
145 <filter token="lc.app.name" value="${lc.app.name}"/>
146 </filterset>
147 </copy>
148 <mkdir dir="${app.bundle}/Contents/MacOS"/>
149 <copy todir="${app.bundle}/Contents/MacOS" encoding="UTF-8"
150 overwrite="true">
151 <fileset file="${pf.home}/osx/JavaApplicationStub"/>
152 <filterset>
153 <filter token="app.domain" value="${app.domain}"/>
154 <filter token="app.name" value="${app.name}"/>
155 </filterset>
156 </copy>
157 <chmod file="${app.bundle}/Contents/MacOS/JavaApplicationStub"
158 perm="755"/>
159 <mkdir dir="${app.bundle}/Contents/Resources"/>
160 <copy file="${basedir}/${app.name}.icns"
161 todir="${app.bundle}/Contents/Resources"/>
162 <mkdir dir="${app.bundle}/Contents/Java"/>
163 <copy file="${jar.name}" todir="${app.bundle}/Contents/Java"/>
164 <echo file="${app.bundle}/Contents/PkgInfo" message="APPL????"/>
165 <exec executable="hdiutil" failonerror="true">
166 <arg value="create"/>
167 <arg value="-volname"/>
168 <arg value="${app.name}"/>
169 <arg value="-srcfolder"/>
170 <arg file="${app.bundle}"/>
171 <arg file="${dist.home}/orig-${mac.disk.image.filename}"/>
172 </exec>
173 <exec executable="hdiutil" failonerror="true">
174 <arg value="convert"/>
175 <arg file="${dist.home}/orig-${mac.disk.image.filename}"/>
176 <arg value="-format"/>
177 <arg value="UDRW"/>
178 <arg value="-o"/>
179 <arg file="${dist.home}/udrw-${mac.disk.image.filename}"/>
180 </exec>
181 <exec executable="hdiutil" failonerror="true">
182 <arg value="convert"/>
183 <arg file="${dist.home}/udrw-${mac.disk.image.filename}"/>
184 <arg value="-format"/>
185 <arg value="UDZO"/>
186 <arg value="-imagekey"/>
187 <arg value="zlib-level=9"/>
188 <arg value="-o"/>
189 <arg file="${dist.home}/${mac.disk.image.filename}"/>
190 </exec>
191 </sequential>
192 </target>
193
122 </project> 194 </project>