Skip to content

Commit 199d069

Browse files
committed
Merge pull request #3421 from ffissore/current-working-dir
Introducing APP_DIR property
2 parents 1d8fbd4 + 41a993d commit 199d069

File tree

9 files changed

+72
-91
lines changed

9 files changed

+72
-91
lines changed

.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ build/macosx/libastylej*
3333
build/macosx/appbundler*.jar
3434
build/macosx/appbundler*.zip
3535
build/macosx/appbundler
36-
build/macosx/appbundler-1.0ea-arduino2
37-
build/macosx/appbundler-1.0ea-upstream1
36+
build/macosx/appbundler-1.0ea-arduino*.zip
37+
build/macosx/appbundler-1.0ea-upstream*.zip
3838
build/linux/work/
3939
build/linux/dist/*.tar.gz
4040
build/linux/dist/*.tar.bz2

arduino-core/src/processing/app/BaseNoGui.java

+2-20
Original file line numberDiff line numberDiff line change
@@ -186,21 +186,8 @@ static public PreferencesMap getBoardPreferences() {
186186
}
187187

188188
static public File getContentFile(String name) {
189-
File path = new File(System.getProperty("user.dir"));
190-
191-
if (OSUtils.isMacOS()) {
192-
if (System.getProperty("WORK_DIR") != null) {
193-
path = new File(System.getProperty("WORK_DIR"));
194-
} else {
195-
try {
196-
path = new File(BaseNoGui.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()).getParentFile();
197-
} catch (URISyntaxException e) {
198-
throw new RuntimeException(e);
199-
}
200-
}
201-
}
202-
203-
return new File(path, name);
189+
File installationFolder = new File(System.getProperty("APP_DIR"));
190+
return new File(installationFolder, name);
204191
}
205192

206193
static public TargetPlatform getCurrentTargetPlatformFromPackage(String pack) {
@@ -976,11 +963,6 @@ static public void initParameters(String args[]) throws IOException {
976963
preferencesFile = args[i];
977964
continue;
978965
}
979-
if (args[i].equals("--curdir")) {
980-
i++;
981-
currentDirectory = args[i];
982-
continue;
983-
}
984966
}
985967

986968
// run static initialization that grabs all the prefs

arduino-core/src/processing/app/helpers/CommandlineParser.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,8 @@ public void parseArgumentsPhase1() {
146146
continue;
147147
}
148148
if (args[i].equals("--curdir")) {
149-
i++;
150-
if (i >= args.length)
151-
BaseNoGui.showError(null, _("Argument required for --curdir"), 3);
152-
// Argument should be already processed by Base.main(...)
153-
continue;
149+
BaseNoGui.showError(null, _("--curdir no longer supported"), 3);
150+
return;
154151
}
155152
if (args[i].equals("--buildpath")) {
156153
i++;

build/build.xml

+10-7
Original file line numberDiff line numberDiff line change
@@ -305,16 +305,17 @@
305305
<mkdir dir="${staging_folder}/work" />
306306

307307
<antcall target="unzip">
308-
<param name="archive_file" value="${staging_folder}/appbundler-1.0ea-upstream1.jar.zip" />
309-
<param name="archive_url" value="http://downloads.arduino.cc/appbundler-1.0ea-upstream1.jar.zip" />
310-
<param name="final_folder" value="${staging_folder}/appbundler-1.0ea-upstream1" />
311-
<param name="dest_folder" value="${staging_folder}/appbundler-1.0ea-upstream1" />
308+
<param name="archive_file" value="${staging_folder}/appbundler-1.0ea-arduino3.jar.zip" />
309+
<param name="archive_url" value="http://downloads.arduino.cc/appbundler-1.0ea-arduino3.jar.zip" />
310+
<param name="final_folder" value="${staging_folder}/appbundler-1.0ea-arduino3" />
311+
<param name="dest_folder" value="${staging_folder}/appbundler-1.0ea-arduino3" />
312312
</antcall>
313313

314-
<taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="${staging_folder}/appbundler-1.0ea-upstream1/appbundler-1.0ea-upstream1.jar"/>
314+
<taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="${staging_folder}/appbundler-1.0ea-arduino3/appbundler-1.0ea-arduino3.jar"/>
315315

316316
<bundleapp
317317
jvmRequired="1.8"
318+
jrepreferred="true"
318319
outputdirectory="${staging_folder}/work"
319320
name="Arduino"
320321
displayname="Arduino"
@@ -326,6 +327,7 @@
326327
icon="macosx/template.app/Contents/Resources/processing.icns"
327328
mainclassname="processing.app.Base"
328329
copyright="Arduino LLC"
330+
applicationCategory="public.app-category.education"
329331
minimumsystemversion="10.7"
330332
highresolutioncapable="true">
331333

@@ -336,11 +338,12 @@
336338

337339
<classpath refid="runtime.jars"/>
338340

339-
<option value="-Dapple.awt.application.name=Arduino" />
341+
<option value="-Dapple.awt.application.name=Arduino"/>
340342
<option value="-Dapple.laf.useScreenMenuBar=true"/>
341343
<option value="-Dcom.apple.macos.use-file-dialog-packages=true"/>
342344
<option value="-Dcom.apple.smallTabs=true"/>
343-
<option value="-Dcom.apple.macos.useScreenMenuBar=true" />
345+
<option value="-Dcom.apple.macos.useScreenMenuBar=true"/>
346+
<option value="-DAPP_DIR=$APP_ROOT/Contents/Java"/>
344347

345348
<!--
346349
<option value="-Dapple.awt.showGrowBox=false"/>

build/linux/dist/arduino

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,5 @@ if [ -x ./java/bin/java ]; then
3333
JAVA=./java/bin/java
3434
fi
3535

36-
$JAVA -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel $SPLASH processing.app.Base --curdir "$CURDIR" "$@"
36+
$JAVA -DAPP_DIR="$APPDIR" -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel $SPLASH processing.app.Base --curdir "$CURDIR" "$@"
37+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
247d19a71672171ce2eda25704121375f04c5e1f

build/macosx/appbundler-1.0ea-upstream1.jar.zip.sha

-1
This file was deleted.

build/windows/launcher/config.xml

+27-28
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,44 @@
11
<launch4jConfig>
22
<dontWrapJar>true</dontWrapJar>
33
<headerType>gui</headerType>
4-
<jar>lib</jar>
54
<outfile>arduino.exe</outfile>
6-
<chdir>.</chdir>
75
<errTitle>Arduino</errTitle>
86
<downloadUrl>http://www.oracle.com/technetwork/java/javase/downloads/index.html</downloadUrl>
97
<icon>application.ico</icon>
108
<classPath>
119
<mainClass>processing.app.Base</mainClass>
12-
<cp>lib/antlr.jar</cp>
13-
<cp>lib/apple.jar</cp>
14-
<cp>lib/arduino-core.jar</cp>
15-
<cp>lib/bcpg-jdk15on-152.jar</cp>
16-
<cp>lib/bcprov-jdk15on-152.jar</cp>
17-
<cp>lib/commons-codec-1.7.jar</cp>
18-
<cp>lib/commons-compress-1.8.jar</cp>
19-
<cp>lib/commons-exec-1.1.jar</cp>
20-
<cp>lib/commons-httpclient-3.1.jar</cp>
21-
<cp>lib/commons-lang3-3.3.2.jar</cp>
22-
<cp>lib/commons-logging-1.0.4.jar</cp>
23-
<cp>lib/ecj.jar</cp>
24-
<cp>lib/guava-18.0.jar</cp>
25-
<cp>lib/jackson-annotations-2.2.3.jar</cp>
26-
<cp>lib/jackson-core-2.2.3.jar</cp>
27-
<cp>lib/jackson-databind-2.2.3.jar</cp>
28-
<cp>lib/jackson-module-mrbean-2.2.3.jar</cp>
29-
<cp>lib/java-semver-0.8.0.jar</cp>
30-
<cp>lib/jmdns-3.4.1.jar</cp>
31-
<cp>lib/jna-4.1.0.jar</cp>
32-
<cp>lib/jna-platform-4.1.0.jar</cp>
33-
<cp>lib/jsch-0.1.50.jar</cp>
34-
<cp>lib/jssc-2.8.0.jar</cp>
35-
<cp>lib/pde.jar</cp>
36-
<cp>lib/rsyntaxtextarea-2.5.6.1+arduino.jar</cp>
10+
<cp>%EXEDIR%/lib/antlr.jar</cp>
11+
<cp>%EXEDIR%/lib/apple.jar</cp>
12+
<cp>%EXEDIR%/lib/arduino-core.jar</cp>
13+
<cp>%EXEDIR%/lib/bcpg-jdk15on-152.jar</cp>
14+
<cp>%EXEDIR%/lib/bcprov-jdk15on-152.jar</cp>
15+
<cp>%EXEDIR%/lib/commons-codec-1.7.jar</cp>
16+
<cp>%EXEDIR%/lib/commons-compress-1.8.jar</cp>
17+
<cp>%EXEDIR%/lib/commons-exec-1.1.jar</cp>
18+
<cp>%EXEDIR%/lib/commons-httpclient-3.1.jar</cp>
19+
<cp>%EXEDIR%/lib/commons-lang3-3.3.2.jar</cp>
20+
<cp>%EXEDIR%/lib/commons-logging-1.0.4.jar</cp>
21+
<cp>%EXEDIR%/lib/ecj.jar</cp>
22+
<cp>%EXEDIR%/lib/guava-18.0.jar</cp>
23+
<cp>%EXEDIR%/lib/jackson-annotations-2.2.3.jar</cp>
24+
<cp>%EXEDIR%/lib/jackson-core-2.2.3.jar</cp>
25+
<cp>%EXEDIR%/lib/jackson-databind-2.2.3.jar</cp>
26+
<cp>%EXEDIR%/lib/jackson-module-mrbean-2.2.3.jar</cp>
27+
<cp>%EXEDIR%/lib/java-semver-0.8.0.jar</cp>
28+
<cp>%EXEDIR%/lib/jmdns-3.4.1.jar</cp>
29+
<cp>%EXEDIR%/lib/jna-4.1.0.jar</cp>
30+
<cp>%EXEDIR%/lib/jna-platform-4.1.0.jar</cp>
31+
<cp>%EXEDIR%/lib/jsch-0.1.50.jar</cp>
32+
<cp>%EXEDIR%/lib/jssc-2.8.0.jar</cp>
33+
<cp>%EXEDIR%/lib/pde.jar</cp>
34+
<cp>%EXEDIR%/lib/rsyntaxtextarea-2.5.6.1+arduino.jar</cp>
3735
</classPath>
3836
<jre>
3937
<path>java</path>
4038
<runtimeBits>32</runtimeBits>
41-
<opt>-splash:./lib/splash.png</opt>
39+
<opt>-splash:"%EXEDIR%/lib/splash.png"</opt>
4240
<opt>-Dsun.java2d.d3d=false</opt>
41+
<opt>-DAPP_DIR="%EXEDIR%"</opt>
4342
</jre>
4443
<versionInfo>
4544
<fileDescription>Arduino IDE</fileDescription>

build/windows/launcher/config_debug.xml

+26-27
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,43 @@
11
<launch4jConfig>
22
<dontWrapJar>true</dontWrapJar>
33
<headerType>console</headerType>
4-
<jar>lib</jar>
54
<outfile>arduino_debug.exe</outfile>
6-
<chdir>.</chdir>
75
<errTitle>Arduino</errTitle>
86
<downloadUrl>http://www.oracle.com/technetwork/java/javase/downloads/index.html</downloadUrl>
97
<icon>application.ico</icon>
108
<classPath>
119
<mainClass>processing.app.Base</mainClass>
12-
<cp>lib/antlr.jar</cp>
13-
<cp>lib/apple.jar</cp>
14-
<cp>lib/arduino-core.jar</cp>
15-
<cp>lib/bcpg-jdk15on-152.jar</cp>
16-
<cp>lib/bcprov-jdk15on-152.jar</cp>
17-
<cp>lib/commons-codec-1.7.jar</cp>
18-
<cp>lib/commons-compress-1.8.jar</cp>
19-
<cp>lib/commons-exec-1.1.jar</cp>
20-
<cp>lib/commons-httpclient-3.1.jar</cp>
21-
<cp>lib/commons-lang3-3.3.2.jar</cp>
22-
<cp>lib/commons-logging-1.0.4.jar</cp>
23-
<cp>lib/ecj.jar</cp>
24-
<cp>lib/guava-18.0.jar</cp>
25-
<cp>lib/jackson-annotations-2.2.3.jar</cp>
26-
<cp>lib/jackson-core-2.2.3.jar</cp>
27-
<cp>lib/jackson-databind-2.2.3.jar</cp>
28-
<cp>lib/jackson-module-mrbean-2.2.3.jar</cp>
29-
<cp>lib/java-semver-0.8.0.jar</cp>
30-
<cp>lib/jmdns-3.4.1.jar</cp>
31-
<cp>lib/jna-4.1.0.jar</cp>
32-
<cp>lib/jna-platform-4.1.0.jar</cp>
33-
<cp>lib/jsch-0.1.50.jar</cp>
34-
<cp>lib/jssc-2.8.0.jar</cp>
35-
<cp>lib/pde.jar</cp>
36-
<cp>lib/rsyntaxtextarea-2.5.6.1+arduino.jar</cp>
10+
<cp>%EXEDIR%/lib/antlr.jar</cp>
11+
<cp>%EXEDIR%/lib/apple.jar</cp>
12+
<cp>%EXEDIR%/lib/arduino-core.jar</cp>
13+
<cp>%EXEDIR%/lib/bcpg-jdk15on-152.jar</cp>
14+
<cp>%EXEDIR%/lib/bcprov-jdk15on-152.jar</cp>
15+
<cp>%EXEDIR%/lib/commons-codec-1.7.jar</cp>
16+
<cp>%EXEDIR%/lib/commons-compress-1.8.jar</cp>
17+
<cp>%EXEDIR%/lib/commons-exec-1.1.jar</cp>
18+
<cp>%EXEDIR%/lib/commons-httpclient-3.1.jar</cp>
19+
<cp>%EXEDIR%/lib/commons-lang3-3.3.2.jar</cp>
20+
<cp>%EXEDIR%/lib/commons-logging-1.0.4.jar</cp>
21+
<cp>%EXEDIR%/lib/ecj.jar</cp>
22+
<cp>%EXEDIR%/lib/guava-18.0.jar</cp>
23+
<cp>%EXEDIR%/lib/jackson-annotations-2.2.3.jar</cp>
24+
<cp>%EXEDIR%/lib/jackson-core-2.2.3.jar</cp>
25+
<cp>%EXEDIR%/lib/jackson-databind-2.2.3.jar</cp>
26+
<cp>%EXEDIR%/lib/jackson-module-mrbean-2.2.3.jar</cp>
27+
<cp>%EXEDIR%/lib/java-semver-0.8.0.jar</cp>
28+
<cp>%EXEDIR%/lib/jmdns-3.4.1.jar</cp>
29+
<cp>%EXEDIR%/lib/jna-4.1.0.jar</cp>
30+
<cp>%EXEDIR%/lib/jna-platform-4.1.0.jar</cp>
31+
<cp>%EXEDIR%/lib/jsch-0.1.50.jar</cp>
32+
<cp>%EXEDIR%/lib/jssc-2.8.0.jar</cp>
33+
<cp>%EXEDIR%/lib/pde.jar</cp>
34+
<cp>%EXEDIR%/lib/rsyntaxtextarea-2.5.6.1+arduino.jar</cp>
3735
</classPath>
3836
<jre>
3937
<path>java</path>
4038
<runtimeBits>32</runtimeBits>
4139
<opt>-Dsun.java2d.d3d=false</opt>
40+
<opt>-DAPP_DIR="%EXEDIR%"</opt>
4241
</jre>
4342
<versionInfo>
4443
<fileDescription>Arduino IDE</fileDescription>

0 commit comments

Comments
 (0)