Skip to content

Commit d52e75f

Browse files
committed
Merge branch 'osx-app-bundler' into ide-1.5.x
Conflicts: build/build.xml
2 parents 403c96f + f21a92a commit d52e75f

File tree

4 files changed

+71
-39
lines changed

4 files changed

+71
-39
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ build/windows/WinAVR-*.zip
2424
build/macosx/arduino-*.zip
2525
build/macosx/dist/gcc-*.tar.gz
2626
build/macosx/libastylej*
27+
build/macosx/appbundler*.jar
2728
build/linux/work/
2829
build/linux/dist/*.tar.gz
2930
build/linux/*.tgz

app/src/processing/app/macosx/Platform.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ public void setLookAndFeel() throws Exception {
5252
UIManager.put("Component.visualMargin", new Insets(1, 1, 1, 1));
5353
}
5454

55+
public Platform() {
56+
// For more information see:
57+
// http://mail.openjdk.java.net/pipermail/macosx-port-dev/2013-January/005261.html
58+
Toolkit.getDefaultToolkit();
59+
}
5560

5661
public void init(Base base) {
5762
System.setProperty("apple.laf.useScreenMenuBar", "true");

build/build.xml

Lines changed: 63 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux32" /></condition>
2323
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux64" /></condition>
2424

25-
<condition property="staging_hardware_folder" value="Arduino.app/Contents/Resources/Java/hardware"><equals arg1="${platform}" arg2="macosx" /></condition>
25+
<condition property="staging_hardware_folder" value="Arduino.app/Contents/Java/hardware"><equals arg1="${platform}" arg2="macosx" /></condition>
2626
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="windows" /></condition>
2727
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux32" /></condition>
2828
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux64" /></condition>
@@ -155,7 +155,7 @@
155155
<tokenfilter>
156156
<linetokenizer includeDelims="false" />
157157
<!-- grab the thing from the first line that's 4 digits -->
158-
<containsregex pattern="ARDUINO (.*) " />
158+
<containsregex pattern="ARDUINO ([^ ]*)" />
159159
<replaceregex pattern="ARDUINO ([^ ]*).*" replace="\1" />
160160
</tokenfilter>
161161
<tokenfilter>
@@ -207,23 +207,48 @@
207207
<target name="macosx-build" if="macosx" depends="revision-check, macosx-checkos, subprojects-build" description="Build Mac OS X version">
208208
<mkdir dir="macosx/work" />
209209

210-
<!-- assemble the pde -->
211-
<copy todir="macosx/work/Arduino.app">
212-
<fileset dir="macosx/template.app" includes="**"/>
213-
</copy>
214-
215-
<!-- <rename src="macosx/work/template.app"
216-
dest="macosx/work/Arduino.app" />
217-
<move file="macosx/work/template.app"
218-
tofile="macosx/work/Arduino.app" />-->
219-
220-
<chmod file="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" perm="755" />
221-
222-
<copy todir="macosx/work/Arduino.app/Contents/Resources/Java" flatten="true">
223-
<fileset refid="runtime.jars"/>
224-
</copy>
225-
226-
<copy todir="macosx/work/Arduino.app/Contents/Resources/Java">
210+
<get src="http://downloads.arduino.cc/appbundler-1.0-arduino.jar" dest="macosx" usetimestamp="true" skipexisting="true" />
211+
212+
<taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="macosx/appbundler-1.0-arduino.jar" />
213+
214+
<bundleapp outputdirectory="macosx/work"
215+
name="Arduino"
216+
displayname="Arduino"
217+
shortversion="${version}"
218+
icon="macosx/template.app/Contents/Resources/processing.icns"
219+
identifier="cc.arduino.Arduino"
220+
mainclassname="processing.app.Base">
221+
222+
<documentType name="Arduino Source File"
223+
icon="macosx/template.app/Contents/Resources/pde.icns"
224+
role="Editor">
225+
<extension>ino</extension>
226+
<extension>c</extension>
227+
<extension>cpp</extension>
228+
<extension>h</extension>
229+
<mimeType>text/plain</mimeType>
230+
<osType>TEXT</osType>
231+
</documentType>
232+
233+
<classpath file="../app/pde.jar" />
234+
<classpath file="../core/core.jar" />
235+
<classpath dir="../app/lib" includes="*.jar"/>
236+
237+
<option value="-Djavaroot=$APP_ROOT/Contents/Java"/>
238+
<option value="-Xms128M"/>
239+
<option value="-Xmx256M"/>
240+
<option value="-Dapple.laf.useScreenMenuBar=true"/>
241+
<option value="-Dapple.awt.showGrowBox=false"/>
242+
<option value="-Dcom.apple.smallTabs=true"/>
243+
<option value="-Dapple.awt.Antialiasing=false"/>
244+
<option value="-Dapple.awt.TextAntialiasing=true"/>
245+
<option value="-Dcom.apple.hwaccel=true"/>
246+
<option value="-Dapple.awt.use-file-dialog-packages=false"/>
247+
<option value="-Dapple.awt.graphics.UseQuartz=true"/>
248+
<option value="-Dapple.awt.application.name=Arduino"/>
249+
</bundleapp>
250+
251+
<copy todir="macosx/work/Arduino.app/Contents/Java">
227252
<fileset dir="shared" includes="lib/**" />
228253
<fileset file="shared/revisions.txt" />
229254
</copy>
@@ -238,7 +263,7 @@
238263
<arg value="-q" />
239264
<arg value="-n" />
240265
<arg value="-d" />
241-
<arg value="macosx/work/Arduino.app/Contents/Resources/Java/hardware" />
266+
<arg value="macosx/work/${staging_hardware_folder}" />
242267
<arg value="macosx/dist/tools-universal.zip" />
243268
</exec>
244269
@@ -247,14 +272,14 @@
247272
</copy>
248273
-->
249274

250-
<copy todir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/">
275+
<copy todir="macosx/work/${staging_hardware_folder}/tools/">
251276
<fileset file="macosx/dist/bossac" />
252277
</copy>
253278

254-
<chmod file="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/bossac" perm="+x" />
279+
<chmod file="macosx/work/${staging_hardware_folder}/tools/bossac" perm="+x" />
255280

256281
<antcall target="assemble">
257-
<param name="target.path" value="macosx/work/Arduino.app/Contents/Resources/Java" />
282+
<param name="target.path" value="macosx/work/Arduino.app/Contents/Java" />
258283
</antcall>
259284

260285
<antcall target="unzip-arm-toolchain">
@@ -264,24 +289,28 @@
264289
</antcall>
265290

266291
<delete includeEmptyDirs="true" quiet="true">
267-
<fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools" includes="**/3.4.6/**/*"/>
268-
<fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools" includes="**/3.4.6"/>
269-
<fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools" includes="**/man/**/*"/>
270-
<fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools" includes="**/man"/>
292+
<fileset dir="macosx/work/${staging_hardware_folder}/tools" includes="**/3.4.6/**/*"/>
293+
<fileset dir="macosx/work/${staging_hardware_folder}/tools" includes="**/3.4.6"/>
294+
<fileset dir="macosx/work/${staging_hardware_folder}/tools" includes="**/man/**/*"/>
295+
<fileset dir="macosx/work/${staging_hardware_folder}/tools" includes="**/man"/>
271296
</delete>
272297

273298
<get src="http://downloads.arduino.cc/libastylej-2.03.zip" dest="macosx" usetimestamp="true" skipexisting="true"/>
274299
<unzip src="macosx/libastylej-2.03.zip" dest="macosx" overwrite="true"/>
275-
<copy file="macosx/libastylej/libastylej.jnilib" todir="macosx/work/Arduino.app/Contents/Resources/Java/lib/" />
276-
<chmod perm="755" file="macosx/work/Arduino.app/Contents/Resources/Java/lib/libastylej.jnilib" />
300+
<copy file="macosx/libastylej/libastylej.jnilib" todir="macosx/work/Arduino.app/Contents/Java/lib/" />
301+
<chmod perm="755" file="macosx/work/Arduino.app/Contents/Java/lib/libastylej.jnilib" />
277302
</target>
278303

279304
<target name="macosx-run" depends="macosx-build" description="Run Mac OS X version">
280-
<exec executable="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" spawn="true"/>
305+
<exec executable="open" dir="macosx/work">
306+
<arg value="Arduino.app"/>
307+
</exec>
281308
</target>
282309

283310
<target name="macosx-debug" depends="macosx-build" description="Run Mac OS X version">
284-
<exec executable="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" spawn="false"/>
311+
<exec executable="open" dir="macosx/work" spawn="false">
312+
<arg value="Arduino.app"/>
313+
</exec>
285314
</target>
286315

287316
<!-- - - - - - - - - - - - - - - - -->
@@ -343,16 +372,11 @@
343372
<!-- The ant copy command does not preserve permissions. -->
344373
<chmod file="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" perm="+x" />
345374
<chmod perm="+x">
346-
<fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin" includes="**/*" />
347-
<fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr/bin" includes="**/*" />
348-
<fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/libexec/gcc/avr/4.8.1/" includes="*" />
375+
<fileset dir="macosx/work/${staging_hardware_folder}/tools/avr/bin" includes="**/*" />
376+
<fileset dir="macosx/work/${staging_hardware_folder}/tools/avr/avr/bin" includes="**/*" />
377+
<fileset dir="macosx/work/${staging_hardware_folder}/tools/avr/libexec/gcc/avr/4.8.1/" includes="*" />
349378
</chmod>
350379

351-
<replace file="macosx/work/Arduino.app/Contents/Info.plist"
352-
token="VERSION" value="${version}" />
353-
<replace file="macosx/work/Arduino.app/Contents/Info.plist"
354-
token="REVISION" value="${revision}" />
355-
356380
<exec executable="zip" dir="macosx/work">
357381
<arg line="-q -r ../arduino-${version}-${platform}.zip ." />
358382
</exec>

build/shared/revisions.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ ARDUINO 1.5.7 BETA
1515
* sam: Fix to Wire usage of TWI status register (bluesign2k)
1616

1717
[ide]
18+
* Moved to appbundler for building releases for MacOSX. (Haavar Valeur)
19+
This should remove dependency from Java 1.6 on recent MacOSX.
1820
* Added support for '-' and '.' in filenames (Georg von Zengen)
1921
* (re)Added 'arduino_debug.exe' in Windows build for debugging purposes
2022
* Magic baudrate is no longer removed (it was a workaround for RXTX)

0 commit comments

Comments
 (0)