Skip to content

Commit

Permalink
Set ROBOVM_LAUNCH_MODE=debug|release environment variable when launch…
Browse files Browse the repository at this point in the history
…ing an

app using RoboVM. Use the lack of ROBOVM_LAUNCH_MODE to determine if
FoundationLogPrintStreams should be used for System.err and System.out. (#216)
  • Loading branch information
ntherning committed Feb 26, 2015
1 parent 95814c2 commit da9fa52
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 13 deletions.
Expand Up @@ -13,13 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.robovm.apple.logging;
package org.robovm.apple.foundation;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import org.robovm.apple.foundation.Foundation;
import org.robovm.apple.foundation.NSString;

public class FoundationLogPrintStream extends PrintStream {

Expand Down
Expand Up @@ -33,7 +33,6 @@
import org.robovm.apple.coreimage.*;
import org.robovm.apple.coretext.*;
import org.robovm.apple.corelocation.*;
import org.robovm.apple.logging.FoundationLogPrintStream;
/*</imports>*/

/*<javadoc>*/
Expand Down Expand Up @@ -332,12 +331,14 @@ void main(String[] args, Class<P> principalClass, Class<D> delegateClass) {
if (delegateClass != null) {
delegateClassName = ObjCClass.getByType(delegateClass).getName();
}
NSObject inCompilerEnv = NSProcessInfo.getSharedProcessInfo().getEnvironment().get("robovmcompilerenv");
if (inCompilerEnv == null || !inCompilerEnv.toString().equals("true")) {
System.setErr(new FoundationLogPrintStream());
System.err.println("SET System.err to FoundationLogPrintStream");
System.setOut(new FoundationLogPrintStream());
System.out.println("SET System.out to FoundationLogPrintStream");

if (System.getenv("ROBOVM_LAUNCH_MODE") == null) {
if (!(System.err instanceof FoundationLogPrintStream)) {
System.setErr(new FoundationLogPrintStream());
}
if (!(System.out instanceof FoundationLogPrintStream)) {
System.setOut(new FoundationLogPrintStream());
}
}
main(argc, argv, principalClassName, delegateClassName);
}
Expand Down
Expand Up @@ -25,9 +25,12 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
Expand Down Expand Up @@ -257,6 +260,11 @@ public Process launch(LaunchParameters launchParameters) throws IOException {
launchParameters.setArguments(args);
}

Map<String, String> env = new HashMap<>(launchParameters.getEnvironment() != null
? launchParameters.getEnvironment() : Collections.<String, String>emptyMap());
env.put("ROBOVM_LAUNCH_MODE", config.isDebug() ? "debug" : "release");
launchParameters.setEnvironment(env);

return doLaunch(launchParameters);
}

Expand Down
Expand Up @@ -163,8 +163,7 @@ private Launcher createIOSSimLauncher(LaunchParameters launchParameters)
args.add(entry.getKey() + "=" + entry.getValue());
}
}
args.add("--setenv");
args.add("robovmcompilerenv=true");

if (!launchParameters.getArguments().isEmpty()) {
args.add("--args");
args.addAll(launchParameters.getArguments());
Expand Down Expand Up @@ -210,7 +209,7 @@ private Launcher createIOSDevLauncher(LaunchParameters launchParameters)
if (env == null) {
env = new HashMap<>();
}
env.put("robovmcompilerenv", "true");

AppLauncher launcher = new AppLauncher(device, getAppDir()) {
protected void log(String s, Object ... args) {
config.getLogger().debug(s, args);
Expand Down

0 comments on commit da9fa52

Please sign in to comment.