@@ -1162,11 +1162,42 @@ protected boolean exportApplication(File destFolder,
11621162 File dotAppFolder = null ;
11631163 if (exportPlatform == PConstants .MACOSX ) {
11641164 dotAppFolder = new File (destFolder , sketch .getName () + ".app" );
1165- // String APP_SKELETON = "skeleton.app";
1166- //File dotAppSkeleton = new File(folder, APP_SKELETON);
1167- File dotAppSkeleton = mode .getContentFile ("application/template.app" );
1168- Base .copyDir (dotAppSkeleton , dotAppFolder );
11691165
1166+ File contentsOrig = new File (Base .getJavaHome (), "../../../../.." );
1167+
1168+ // File dotAppSkeleton = mode.getContentFile("application/template.app");
1169+ // Base.copyDir(dotAppSkeleton, dotAppFolder);
1170+ File contentsFolder = new File (dotAppFolder , "Contents" );
1171+ contentsFolder .mkdirs ();
1172+
1173+ // Info.plist will be written later
1174+
1175+ // set the jar folder to a different location than windows/linux
1176+ //jarFolder = new File(dotAppFolder, "Contents/Resources/Java");
1177+ jarFolder = new File (contentsFolder , "Java" );
1178+
1179+ File macosFolder = new File (contentsFolder , "MacOS" );
1180+ macosFolder .mkdirs ();
1181+ Base .copyFile (new File (contentsOrig , "MacOS/Processing" ),
1182+ new File (contentsFolder , "MacOS/" + sketch .getName ()));
1183+
1184+ File pkgInfo = new File (contentsFolder , "PkgInfo" );
1185+ PrintWriter writer = PApplet .createWriter (pkgInfo );
1186+ writer .println ("APPL????" );
1187+ writer .flush ();
1188+ writer .close ();
1189+
1190+ // Use faster(?) native copy here (also to do sym links)
1191+ Base .copyDirNative (new File (contentsOrig , "PlugIns" ),
1192+ new File (contentsFolder , "PlugIns" ));
1193+
1194+ File resourcesFolder = new File (contentsFolder , "Resources" );
1195+ Base .copyDir (new File (contentsOrig , "Resources/en.lproj" ),
1196+ new File (resourcesFolder , "en.lproj" ));
1197+ Base .copyFile (mode .getContentFile ("application/sketch.icns" ),
1198+ new File (resourcesFolder , "sketch.icns" ));
1199+
1200+ /*
11701201 String stubName = "Contents/MacOS/JavaApplicationStub";
11711202 // need to set the stub to executable
11721203 // will work on osx or *nix, but just dies on windows, oh well..
@@ -1189,13 +1220,11 @@ protected boolean exportApplication(File destFolder,
11891220 String stubPath = stubFile.getAbsolutePath();
11901221 Runtime.getRuntime().exec(new String[] { "chmod", "+x", stubPath });
11911222 }
1192-
1193- // set the jar folder to a different location than windows/linux
1194- jarFolder = new File (dotAppFolder , "Contents/Resources/Java" );
1223+ */
11951224 }
11961225
11971226
1198- /// make the jar folder (windows and linux )
1227+ /// make the jar folder (all platforms )
11991228
12001229 if (!jarFolder .exists ()) jarFolder .mkdirs ();
12011230
0 commit comments