diff --git a/libraries.json b/libraries.json index 708e16c..8f26659 100644 --- a/libraries.json +++ b/libraries.json @@ -23,6 +23,14 @@ "usesJmeVersion" : true, "artifacts" : [ { "groupId" : "org.jmonkeyengine", "artifactId" : "jme3-android" } ] }, + { + "key": "JME_IOSMOE", + "displayName": "JME iOS using Multi-OS-Engine", + "category" : "JME_PLATFORM", + "descriptionText" : "iOS Multi-OS-Engine Game development", + "usesJmeVersion" : true, + "artifacts" : [ { "groupId" : "org.jmonkeyengine", "artifactId" : "jme3-ios" } ] + }, { "key": "JME_EFFECTS", "displayName": "JME Effects", @@ -111,4 +119,4 @@ "artifacts" : [ { "groupId" : "com.onemillionworlds", "artifactId" : "tamarin" } ], "requiredPlatforms": ["JME_VR"] } -] \ No newline at end of file +] diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/build.gradle.jmetemplate b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/build.gradle.jmetemplate index ed57d4e..e1d4ba1 100644 --- a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/build.gradle.jmetemplate +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/build.gradle.jmetemplate @@ -12,6 +12,13 @@ buildscript { } +allprojects { + repositories { + google() + mavenCentral() + } +} + task clean(type: Delete) { delete rootProject.buildDir } @@ -25,4 +32,4 @@ task buildAllDistributions { println(" #### Check the individual modules build/distributions folders for distributable zips etc #### ") } } -[/IF=WINDOWS|LINUX|MACOS] \ No newline at end of file +[/IF=WINDOWS|LINUX|MACOS] diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/gradle.properties b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/gradle.properties index 52f5917..bdb289d 100644 --- a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/gradle.properties +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/gradle.properties @@ -16,4 +16,6 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true \ No newline at end of file +android.enableJetifier=true +# MOE release +multiOsEngineVersion=1.10.1 diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/build.gradle b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/build.gradle new file mode 100644 index 0000000..229fa8d --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/build.gradle @@ -0,0 +1,69 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath "org.multi-os-engine:moe-gradle:$multiOsEngineVersion" + } +} + +apply plugin: 'moe' + +// Exclude all files from Gradle's test runner +test { exclude '**' } + +// Copy all xcframeworks to xcode/native/ios +// They need to be picked up from there for linking in XCode +task copyNatives { + doLast { + file("xcode/native/ios/").mkdirs(); + def subDir = "META-INF/robovm/ios/libs/" + configurations.natives.files.each { jar -> + copy { + from zipTree(jar) + include "$subDir/*.xcframework/**" + into("xcode/native/ios/") + eachFile { file -> + file.path = file.path.replaceFirst("^$subDir", '') + } + includeEmptyDirs(false) + } + } + + def LD_FLAGS = "" + def outFlags = file("xcode/ios-moe/custom.xcconfig"); + outFlags.write LD_FLAGS + + def proguard = file("proguard.append.cfg") + } +} + +configurations { natives } + +ext.jmonkeyengineVersion = '[JME_VERSION]' + +dependencies { + implementation project(':game') + + implementation "org.jmonkeyengine:jme3-ios:" + jmonkeyengineVersion + natives "org.jmonkeyengine:jme3-ios-native:" + jmonkeyengineVersion +} + +// Setup Multi-OS Engine +moe { + xcode { + project 'xcode/ios-moe.xcodeproj' + mainTarget 'ios-moe' + testTarget 'ios-moe-Test' + } +} + +moeMainReleaseIphoneosXcodeBuild.dependsOn copyNatives +moeMainDebugIphoneosXcodeBuild.dependsOn copyNatives +moeMainReleaseIphonesimulatorXcodeBuild.dependsOn copyNatives +moeMainDebugIphonesimulatorXcodeBuild.dependsOn copyNatives + +if (System.getenv('PLATFORM_NAME') != null) { + moeXcodeInternal.dependsOn copyNatives +} + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/proguard.append.cfg b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/proguard.append.cfg new file mode 100644 index 0000000..3c3fbfc --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/proguard.append.cfg @@ -0,0 +1,64 @@ +#-dontshrink +#-dontoptimize +#-dontusemixedcaseclassnames +#-dontskipnonpubliclibraryclasses +#-dontskipnonpubliclibraryclassmembers +#-dontpreverify +# Issue : (Index 39424 out of bounds for length 635) +#-keep class com.** { *; } +#-keep enum com.** { *; } + +# All jme3 +-keep class com.jme3.** {*;} +-keep enum com.jme3.** {*;} +-keep class de.lessvoid.nifty.** {*;} +-keep enum de.lessvoid.nifty.** {*;} + +# Previous jme3 related classes +-keep public class com.jme3.system.ios.*{public *;} +-keep public class * extends com.jme3.system.ios.IosHarness{public *;} +-keep public class * extends com.jme3.app.Application{public *;} +-keep public class * extends com.jme3.system.JmeSystemDelegate{public *;} +-keep public class * extends com.jme3.scene.control.*{public *;} +-keep public class * extends com.jme3.scene.Node{public *;} +-keep public class * implements com.jme3.renderer.Renderer{public *;} +-keep public class * implements com.jme3.asset.AssetLoader{public *;} +-keep public class * implements com.jme3.asset.AssetLocator{public *;} +-keep public class * implements de.lessvoid.nifty.screen.ScreenController{public *;} +-keep public class de.lessvoid.nifty.loaderv2.types.** { public *;} +-keep public class de.lessvoid.nifty.controls.** { public *; } +-keep public class de.lessvoid.nifty.input.** { public *; } +-keep public class de.lessvoid.nifty.effects.impl.** { public *;} +-keepclassmembers class com.jme3.audio.plugins.NativeVorbisFile{public *;} +-keep public class * implements javax.xml.parsers.SAXParserFactory{public *;} +-keep public class com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl +-keep public class com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl +-keep public class sun.nio.fs.MacOSXFileSystemProvider +-keep public class * extends java.nio.charset.Charset { *; } +-keep public class java.util.zip.Deflater { *; } +-keep public class java.io.FileNotFoundException { *; } +-keep public class java.lang.reflect.Proxy { *; } +-keep public class java.lang.reflect.InvocationHandler { *; } +-keep public class java.util.logging.ConsoleHandler +-keep public class java.util.logging.FileHandler +-keep public class java.util.logging.SimpleFormatter +-keep public class java.util.logging.LogManager { *; } +-keep public class org.xmlpull.mxp1.MXParserFactory { *; } +-keep public class mf.org.** { *; } + +# Base java +-keep class java.lang.** {*;} +-keep class java.net.** {*;} +-keep class java.nio.Bits {*;} + +# Minie +-keep class vhacd4.** {*;} +-keep class vhacd.** {*;} +-keep class jme3utilities.** {*;} + +# Keep all native methods, their classes and any classes in their descriptors +-keepclasseswithmembers,includedescriptorclasses class ** { + native ; + long nativeHandle; +} + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/src/main/java/[GAME_PACKAGE]/ios/DummyMain.java b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/src/main/java/[GAME_PACKAGE]/ios/DummyMain.java new file mode 100644 index 0000000..06cc8c2 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/src/main/java/[GAME_PACKAGE]/ios/DummyMain.java @@ -0,0 +1,78 @@ +package [GAME_PACKAGE]; + +import org.moe.natj.general.Pointer; +import org.moe.natj.general.ann.RegisterOnStartup; +import org.moe.natj.objc.ann.Selector; + +import apple.NSObject; +import apple.foundation.NSDictionary; +import apple.corefoundation.struct.CGRect; +import apple.uikit.UIApplication; +import apple.uikit.UIColor; +import apple.uikit.UIImage; +import apple.uikit.UINavigationController; +import apple.uikit.UIScreen; +import apple.uikit.UIViewController; +import apple.uikit.UIWindow; +import apple.uikit.c.UIKit; +import apple.uikit.enums.UIBarStyle; +import apple.uikit.protocol.UIApplicationDelegate; + +@RegisterOnStartup +public class DummyMain extends NSObject implements UIApplicationDelegate +{ + public static void main(String[] args) { + UIKit.UIApplicationMain(0, null, null, DummyMain.class.getName()); + } + + @Selector("alloc") + public static native DummyMain alloc(); + + protected DummyMain(Pointer peer) { + super(peer); + } + + private UIWindow window; + + @Override + public boolean applicationDidFinishLaunchingWithOptions(UIApplication application, NSDictionary launchOptions) { + UIScreen screen = UIScreen.mainScreen(); + CGRect bounds = screen.bounds(); + window = UIWindow.alloc().initWithFrame(bounds); + + UIViewController vc = MoeIosJmeAppHarness.alloc().init(); + + // Initialization with navigation bar + /* + UINavigationController navigationController = UINavigationController.alloc().init(); + UIColor moeBlue = UIColor.alloc().initWithRedGreenBlueAlpha(0.0, 113/255.f, 197/255.f, 1.0); + navigationController.initWithRootViewController(vc); + window.setRootViewController(navigationController); + + navigationController.navigationBar().setBarStyle(UIBarStyle.Black); + navigationController.navigationBar().setBarTintColor(moeBlue); + navigationController.navigationBar().setShadowImage(UIImage.alloc().init()); + navigationController.navigationBar().setTranslucent(false); + navigationController.navigationBar().setTintColor(UIColor.whiteColor()); + */ + + // New initialization, only glwindow + window.setRootViewController(vc); + + window.makeKeyAndVisible(); + + System.out.println("DummyMain applicationDidFinishLaunchingWithOptions"); + + return true; + } + + @Override + public void setWindow(UIWindow value) { + window = value; + } + + @Override + public UIWindow window() { + return window; + } +} diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/src/main/java/[GAME_PACKAGE]/ios/MoeIosJmeAppHarness.java b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/src/main/java/[GAME_PACKAGE]/ios/MoeIosJmeAppHarness.java new file mode 100644 index 0000000..af64a27 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/src/main/java/[GAME_PACKAGE]/ios/MoeIosJmeAppHarness.java @@ -0,0 +1,319 @@ +package [GAME_PACKAGE]; + +import org.moe.natj.general.Pointer; +import org.moe.natj.general.ann.ByValue; +import org.moe.natj.general.ann.Mapped; +import org.moe.natj.general.ann.Owned; +import org.moe.natj.objc.SEL; +import org.moe.natj.objc.ann.Selector; +import org.moe.natj.objc.map.ObjCObjectMapper; + +import apple.corefoundation.struct.CGPoint; +import apple.corefoundation.struct.CGRect; +import apple.corefoundation.struct.CGSize; +import apple.foundation.NSEnumerator; +import apple.foundation.NSNotification; +import apple.foundation.NSNotificationCenter; +import apple.foundation.NSSet; +import apple.glkit.GLKView; +import apple.glkit.GLKViewController; +import apple.glkit.enums.GLKViewDrawableDepthFormat; +import apple.glkit.protocol.GLKViewDelegate; +import apple.opengles.EAGLContext; +import apple.opengles.enums.EAGLRenderingAPI; +import apple.uikit.UIEvent; +import apple.uikit.UIScreen; +import apple.uikit.UITouch; +import apple.uikit.enums.UIRectEdge; +import apple.uikit.protocol.UIViewControllerTransitionCoordinator; + +import com.jme3.app.LegacyApplication; +import com.jme3.system.JmeSystem; +import com.jme3.system.ios.JmeIosSystem; +import com.jme3.input.ios.IosInputHandler; +import com.jme3.math.Vector2f; +import com.jme3.renderer.opengl.GLRenderer; +import com.jme3.system.JmeContext; +import com.jme3.system.AppSettings; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class MoeIosJmeAppHarness extends GLKViewController implements GLKViewDelegate +{ + // Content from previous JmeAppHarness+IosHarness + protected LegacyApplication app; + private static final Logger logger = Logger.getLogger(MoeIosJmeAppHarness.class.getName()); + protected GLRenderer renderer; + protected IosInputHandler input; + protected boolean autoFlush = true; + protected Vector2f resizePending = null; + + // Content from moe-samples (OpenGLBox) + static final int GLKViewDrawableMultisample4X = 1; + + private EAGLContext context; + + private float rotation; + + private GLKView glkView; + + // Allocator, init and constructor (based on moe stuff) + //@Selector("alloc") + public static native MoeIosJmeAppHarness alloc(); + + @Override + @Owned + @Selector("init") + public MoeIosJmeAppHarness init() + { + MoeIosJmeAppHarness self = (MoeIosJmeAppHarness) super.init(); + if(self!=null) + { + final NSNotificationCenter notificationCenter = NSNotificationCenter.defaultCenter(); + notificationCenter.addObserverSelectorNameObject(self, new SEL("didRotate"), "UIDeviceOrientationDidChangeNotification", null); + } + return self; + } + + public MoeIosJmeAppHarness(Pointer peer) + { + super(peer); + } + + // Methods from previous JmeAppHarness+IosHarness + public void appPaused() { + logger.log(Level.FINE, "JmeAppHarness appPaused"); + } + + public void appReactivated() { + logger.log(Level.FINE, "JmeAppHarness appReactivated"); + } + + public void appClosed() { + logger.log(Level.FINE, "JmeAppHarness appClosed"); + app.stop(); + } + + public void appUpdate() { + logger.log(Level.FINE, "JmeAppHarness appUpdate"); + //app.update(); + } + + public void appDraw() { + logger.log(Level.FINE, "JmeAppHarness appDraw"); + if (renderer == null) { + JmeContext iosContext = app.getContext(); + renderer = (GLRenderer)iosContext.getRenderer(); + renderer.initialize(); + input = (IosInputHandler)iosContext.getTouchInput(); + input.initialize(); + } else { + if(resizePending != null) { + appReshape((int)resizePending.x, (int)resizePending.y); + resizePending = null; + } + app.update(); + if (autoFlush) { + renderer.postFrame(); + } + } + } + + public void appReshape(int width, int height) { + logger.log(Level.FINE, "JmeAppHarness reshape"); + AppSettings settings = app.getContext().getSettings(); + settings.setResolution(width, height); + if (renderer != null) { + app.reshape(width, height); + resizePending = null; + } else { + resizePending = new Vector2f(width, height); + } + + if (input != null) { + input.loadSettings(settings); + } + } + + public void injectTouchBegin(int pointerId, long time, float x, float y) { + if (input != null) { + logger.log(Level.FINE, "JmeAppHarness injectTouchBegin"); + input.injectTouchDown(pointerId, time, x, y); + } + } + + public void injectTouchMove(int pointerId, long time, float x, float y) { + if (input != null) { + logger.log(Level.FINE, "JmeAppHarness injectTouchMove"); + input.injectTouchMove(pointerId, time, x, y); + } + } + + public void injectTouchEnd(int pointerId, long time, float x, float y) { + if (input != null) { + logger.log(Level.FINE, "JmeAppHarness injectTouchEnd"); + input.injectTouchUp(pointerId, time, x, y); + } + } + + // Methods from moe-samples (OpenGLBox) + @Override + public void viewDidLoad() { + super.viewDidLoad(); + + //setTitle("Jme3 for iOS using MOE"); + + setEdgesForExtendedLayout(UIRectEdge.None); + + context = EAGLContext.alloc().initWithAPI(EAGLRenderingAPI.GLES3); + if (context == null) { + context = EAGLContext.alloc().initWithAPI(EAGLRenderingAPI.GLES2); + if (context == null) { + System.out.println("Failed to create ES context"); + System.exit(-1); + } + } + glkView = (GLKView) view(); + glkView.setContext(context); + glkView.setDrawableMultisample(GLKViewDrawableMultisample4X); + glkView.setDrawableDepthFormat(GLKViewDrawableDepthFormat.Format24); + + setPreferredFramesPerSecond(60); // TODO: set desired FPS + setPaused(false); + + setupGL(); + + // Initialization from previous JmeAppHarness+IosHarness + JmeSystem.setSystemDelegate(new JmeIosSystem()); + app = new [GAME_PACKAGE].game.[GAME_NAME](); + AppSettings settings = new AppSettings(true); + this.app.setSettings(settings); + app.start(); + app.gainFocus(); + + //Force a didRotate (jme3 reshape) event after having initialized everything so it renders properly from the beginning + didRotate(null); + } + + @Override + public void viewWillTransitionToSizeWithTransitionCoordinator(@ByValue CGSize size, @Mapped(ObjCObjectMapper.class) UIViewControllerTransitionCoordinator coordinator) { + if (isPaused()) + glkView.setNeedsDisplay(); + } + + @Override + public void viewDidDisappear(boolean animated) { + super.viewDidDisappear(animated); + tearDownGL(); + if (EAGLContext.currentContext() != null && EAGLContext.currentContext().equals(context)) { + EAGLContext.setCurrentContext(null); + } + context = null; + } + + @Override + public void didReceiveMemoryWarning() { + super.didReceiveMemoryWarning(); + if (isViewLoaded() && (view().window() == null)) { + setView(null); + tearDownGL(); + if (EAGLContext.currentContext().equals(context)) { + EAGLContext.setCurrentContext(null); + } + context = null; + } + // Dispose of any resources that can be recreated. + } + + private void setupGL() { + EAGLContext.setCurrentContext(context); + // Nothing to do here, there's no gl stuff created in this class + } + + private void tearDownGL() { + EAGLContext.setCurrentContext(context); + // Nothing to do here, there's no gl stuff created in this class + } + + @Override + public void glkViewDrawInRect(GLKView view, CGRect rect) { + appDraw(); + } + + @Selector("update") + public void update() { + appUpdate(); + appUpdate(); + } + + @Override + public void touchesBeganWithEvent(NSSet touches, UIEvent event) + { + NSEnumerator enumerator = touches.objectEnumerator(); + UITouch touch = (UITouch) enumerator.nextObject(); + if(touch!=null) + { + do + { + CGPoint position = touch.locationInView(null); + float scale = (float) glkView.contentScaleFactor(); + injectTouchBegin(touch.hashCode(), (long)touch.timestamp(), (float) (position.x() * scale), (float) (position.y() * scale)); + touch = (UITouch) enumerator.nextObject(); + } while (touch != null); + } + } + + @Override + public void touchesCancelledWithEvent(NSSet touches, UIEvent event) + { + // Not implemented in jME3 + } + + @Override + public void touchesEndedWithEvent(NSSet touches, UIEvent event) + { + NSEnumerator enumerator = touches.objectEnumerator(); + UITouch touch = (UITouch) enumerator.nextObject(); + if(touch!=null) + { + do + { + CGPoint position = touch.locationInView(null); + float scale = (float) glkView.contentScaleFactor(); + injectTouchEnd(touch.hashCode(), (long)touch.timestamp(), (float) (position.x() * scale), (float) (position.y() * scale)); + touch = (UITouch) enumerator.nextObject(); + } while (touch != null); + } + } + + @Override + public void touchesMovedWithEvent(NSSet touches, UIEvent event) + { + NSEnumerator enumerator = touches.objectEnumerator(); + UITouch touch = (UITouch) enumerator.nextObject(); + if(touch!=null) + { + do + { + CGPoint position = touch.locationInView(null); + float scale = (float) glkView.contentScaleFactor(); + injectTouchMove(touch.hashCode(), (long)touch.timestamp(), (float) (position.x() * scale), (float) (position.y() * scale)); + touch = (UITouch) enumerator.nextObject(); + } while (touch != null); + } + } + + // java code equivalent to old jmeAppDelegate.m + @Selector("didRotate") + public void didRotate(NSNotification notification) + { + UIScreen screen = UIScreen.mainScreen(); + CGRect originalFrame = screen.bounds(); + if(glkView!=null) + { + CGRect frame = glkView.convertRectToView(originalFrame, null); + float scale = (float) glkView.contentScaleFactor(); + appReshape((int) (frame.size().width() * scale), (int) (frame.size().height() * scale)); + } + } +} diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe-Test/Info.plist b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe-Test/Info.plist new file mode 100644 index 0000000..dad821c --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe-Test/Info.plist @@ -0,0 +1,44 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + MOE.Main.Class + org.moe.mdt.junit.MoeRemoteTestRunner + UIRequiredDeviceCapabilities + + opengles-2 + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe-Test/main.cpp b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe-Test/main.cpp new file mode 100644 index 0000000..fef543a --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe-Test/main.cpp @@ -0,0 +1,5 @@ +#include + +int main(int argc, char *argv[]) { + return moevm(argc, argv); +} diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.pbxproj b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0d29074 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.pbxproj @@ -0,0 +1,612 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E152A74253836079FA1075F /* main.cpp */; }; + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8084D1F0A307440EC73CBFCA /* main.cpp */; }; + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */ = {isa = PBXBuildFile; fileRef = AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */; }; + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */; }; + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A01E37A2DB004E28A9 /* AVFoundation.framework */; }; + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */; }; + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A21E37A2DB004E28A9 /* CoreMotion.framework */; }; + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A31E37A2DB004E28A9 /* OpenAL.framework */; }; + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A41E37A2DB004E28A9 /* OpenGLES.framework */; }; + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A51E37A2DB004E28A9 /* QuartzCore.framework */; }; + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773AD1E37A7EF004E28A9 /* UIKit.framework */; }; + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */; }; + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; }; + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1E152A74253836079FA1075F /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 5817739D1E37A10D004E28A9 /* custom.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = custom.xcconfig; sourceTree = ""; }; + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + 581773A31E37A2DB004E28A9 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 581773AD1E37A7EF004E28A9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ios-moe-Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5863B88E1DA682C800E46B6A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = [GAME_NAME].app; sourceTree = BUILT_PRODUCTS_DIR; }; + 58C6F5381DA66CB600309CB6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8084D1F0A307440EC73CBFCA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "moe-main-interfaces.m"; path = "../build/moe/main/ui-headers/moe-main-interfaces.m"; sourceTree = ""; }; + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = EmptyStoryboard.storyboard; sourceTree = ""; }; + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "jme3-ios-native-lib.xcframework"; path = "../../../jme3-ios-native-lib/release/jme3-ios-native-lib.xcframework"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5863B8781DA682C800E46B6A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5211DA66CB600309CB6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */, + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */, + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */, + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */, + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */, + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */, + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */, + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */, + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 10A59D530B421B1C760A83FC /* Multi-OS Engine */ = { + isa = PBXGroup; + children = ( + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */, + ); + name = "Multi-OS Engine"; + sourceTree = ""; + }; + 5817739E1E37A2DA004E28A9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */, + 581773AD1E37A7EF004E28A9 /* UIKit.framework */, + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */, + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */, + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */, + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */, + 581773A31E37A2DB004E28A9 /* OpenAL.framework */, + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */, + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5863B87C1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXGroup; + children = ( + 5863B88E1DA682C800E46B6A /* Info.plist */, + 5863B87D1DA682C800E46B6A /* Supporting Files */, + ); + path = "ios-moe-Test"; + sourceTree = ""; + }; + 5863B87D1DA682C800E46B6A /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 1E152A74253836079FA1075F /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 58C6F51B1DA66CB600309CB6 = { + isa = PBXGroup; + children = ( + 58C6F5261DA66CB600309CB6 /* ios-moe */, + 5863B87C1DA682C800E46B6A /* ios-moe-Test */, + 58C6F5251DA66CB600309CB6 /* Products */, + 5817739E1E37A2DA004E28A9 /* Frameworks */, + 10A59D530B421B1C760A83FC /* Multi-OS Engine */, + ); + sourceTree = ""; + }; + 58C6F5251DA66CB600309CB6 /* Products */ = { + isa = PBXGroup; + children = ( + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */, + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */, + ); + name = Products; + sourceTree = ""; + }; + 58C6F5261DA66CB600309CB6 /* ios-moe */ = { + isa = PBXGroup; + children = ( + 58C6F5381DA66CB600309CB6 /* Info.plist */, + 5817739D1E37A10D004E28A9 /* custom.xcconfig */, + 58C6F5271DA66CB600309CB6 /* Supporting Files */, + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */, + ); + path = "ios-moe"; + sourceTree = ""; + }; + 58C6F5271DA66CB600309CB6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 8084D1F0A307440EC73CBFCA /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5863B87A1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */; + buildPhases = ( + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */, + 5863B8771DA682C800E46B6A /* Sources */, + 5863B8781DA682C800E46B6A /* Frameworks */, + 5863B8791DA682C800E46B6A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe-Test"; + productName = "ios-moe-Test"; + productReference = 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */; + productType = "com.apple.product-type.application"; + }; + 58C6F5231DA66CB600309CB6 /* ios-moe */ = { + isa = PBXNativeTarget; + buildConfigurationList = 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */; + buildPhases = ( + F461487E379A46F550F0C10A /* Compile Sources (MOE) */, + 58C6F5201DA66CB600309CB6 /* Sources */, + 58C6F5211DA66CB600309CB6 /* Frameworks */, + 58C6F5221DA66CB600309CB6 /* Resources */, + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe"; + productName = "ios-moe"; + productReference = 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 58C6F51C1DA66CB600309CB6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = x; + TargetAttributes = { + 5863B87A1DA682C800E46B6A = { + CreatedOnToolsVersion = 7.3.1; + }; + 58C6F5231DA66CB600309CB6 = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 58C6F51B1DA66CB600309CB6; + productRefGroup = 58C6F5251DA66CB600309CB6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 58C6F5231DA66CB600309CB6 /* ios-moe */, + 5863B87A1DA682C800E46B6A /* ios-moe-Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5863B8791DA682C800E46B6A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5221DA66CB600309CB6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"test\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; + F461487E379A46F550F0C10A /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"main\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5863B8771DA682C800E46B6A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5201DA66CB600309CB6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */, + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5863B8901DA682C800E46B6A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 5863B8911DA682C800E46B6A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + 58C6F5391DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 58C6F53A1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 58C6F53C1DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 58C6F53D1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5863B8901DA682C800E46B6A /* Debug */, + 5863B8911DA682C800E46B6A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F5391DA66CB600309CB6 /* Debug */, + 58C6F53A1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F53C1DA66CB600309CB6 /* Debug */, + 58C6F53D1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 58C6F51C1DA66CB600309CB6 /* Project object */; +} diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.pbxproj.jbullet_enabled.Check_and_fix b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.pbxproj.jbullet_enabled.Check_and_fix new file mode 100644 index 0000000..d0c8ea1 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.pbxproj.jbullet_enabled.Check_and_fix @@ -0,0 +1,618 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E152A74253836079FA1075F /* main.cpp */; }; + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8084D1F0A307440EC73CBFCA /* main.cpp */; }; + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */ = {isa = PBXBuildFile; fileRef = AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */; }; + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */; }; + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A01E37A2DB004E28A9 /* AVFoundation.framework */; }; + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */; }; + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A21E37A2DB004E28A9 /* CoreMotion.framework */; }; + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A31E37A2DB004E28A9 /* OpenAL.framework */; }; + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A41E37A2DB004E28A9 /* OpenGLES.framework */; }; + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A51E37A2DB004E28A9 /* QuartzCore.framework */; }; + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773AD1E37A7EF004E28A9 /* UIKit.framework */; }; + BB2763E72CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */; }; + BB2763E82CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */; }; + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; }; + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */, + BB2763E82CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1E152A74253836079FA1075F /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 5817739D1E37A10D004E28A9 /* custom.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = custom.xcconfig; sourceTree = ""; }; + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + 581773A31E37A2DB004E28A9 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 581773AD1E37A7EF004E28A9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ios-moe-Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5863B88E1DA682C800E46B6A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = [GAME_NAME].app; sourceTree = BUILT_PRODUCTS_DIR; }; + 58C6F5381DA66CB600309CB6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8084D1F0A307440EC73CBFCA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "moe-main-interfaces.m"; path = "../build/moe/main/ui-headers/moe-main-interfaces.m"; sourceTree = ""; }; + BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libbulletjme-ios-native-lib.xcframework"; path = "../../../libbulletjme-ios-native-lib/release/libbulletjme-ios-native-lib.xcframework"; sourceTree = ""; }; + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = EmptyStoryboard.storyboard; sourceTree = ""; }; + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "jme3-ios-native-lib.xcframework"; path = "../../../jme3-ios-native-lib/release/jme3-ios-native-lib.xcframework"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5863B8781DA682C800E46B6A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5211DA66CB600309CB6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */, + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */, + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */, + BB2763E72CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Frameworks */, + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */, + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */, + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */, + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */, + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */, + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 10A59D530B421B1C760A83FC /* Multi-OS Engine */ = { + isa = PBXGroup; + children = ( + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */, + ); + name = "Multi-OS Engine"; + sourceTree = ""; + }; + 5817739E1E37A2DA004E28A9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */, + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */, + 581773AD1E37A7EF004E28A9 /* UIKit.framework */, + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */, + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */, + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */, + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */, + 581773A31E37A2DB004E28A9 /* OpenAL.framework */, + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */, + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5863B87C1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXGroup; + children = ( + 5863B88E1DA682C800E46B6A /* Info.plist */, + 5863B87D1DA682C800E46B6A /* Supporting Files */, + ); + path = "ios-moe-Test"; + sourceTree = ""; + }; + 5863B87D1DA682C800E46B6A /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 1E152A74253836079FA1075F /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 58C6F51B1DA66CB600309CB6 = { + isa = PBXGroup; + children = ( + 58C6F5261DA66CB600309CB6 /* ios-moe */, + 5863B87C1DA682C800E46B6A /* ios-moe-Test */, + 58C6F5251DA66CB600309CB6 /* Products */, + 5817739E1E37A2DA004E28A9 /* Frameworks */, + 10A59D530B421B1C760A83FC /* Multi-OS Engine */, + ); + sourceTree = ""; + }; + 58C6F5251DA66CB600309CB6 /* Products */ = { + isa = PBXGroup; + children = ( + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */, + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */, + ); + name = Products; + sourceTree = ""; + }; + 58C6F5261DA66CB600309CB6 /* ios-moe */ = { + isa = PBXGroup; + children = ( + 58C6F5381DA66CB600309CB6 /* Info.plist */, + 5817739D1E37A10D004E28A9 /* custom.xcconfig */, + 58C6F5271DA66CB600309CB6 /* Supporting Files */, + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */, + ); + path = "ios-moe"; + sourceTree = ""; + }; + 58C6F5271DA66CB600309CB6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 8084D1F0A307440EC73CBFCA /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5863B87A1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */; + buildPhases = ( + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */, + 5863B8771DA682C800E46B6A /* Sources */, + 5863B8781DA682C800E46B6A /* Frameworks */, + 5863B8791DA682C800E46B6A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe-Test"; + productName = "ios-moe-Test"; + productReference = 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */; + productType = "com.apple.product-type.application"; + }; + 58C6F5231DA66CB600309CB6 /* ios-moe */ = { + isa = PBXNativeTarget; + buildConfigurationList = 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */; + buildPhases = ( + F461487E379A46F550F0C10A /* Compile Sources (MOE) */, + 58C6F5201DA66CB600309CB6 /* Sources */, + 58C6F5211DA66CB600309CB6 /* Frameworks */, + 58C6F5221DA66CB600309CB6 /* Resources */, + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe"; + productName = "ios-moe"; + productReference = 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 58C6F51C1DA66CB600309CB6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = x; + TargetAttributes = { + 5863B87A1DA682C800E46B6A = { + CreatedOnToolsVersion = 7.3.1; + }; + 58C6F5231DA66CB600309CB6 = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 58C6F51B1DA66CB600309CB6; + productRefGroup = 58C6F5251DA66CB600309CB6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 58C6F5231DA66CB600309CB6 /* ios-moe */, + 5863B87A1DA682C800E46B6A /* ios-moe-Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5863B8791DA682C800E46B6A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5221DA66CB600309CB6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"test\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; + F461487E379A46F550F0C10A /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"main\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5863B8771DA682C800E46B6A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5201DA66CB600309CB6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */, + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5863B8901DA682C800E46B6A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 5863B8911DA682C800E46B6A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + 58C6F5391DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 58C6F53A1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 58C6F53C1DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 58C6F53D1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5863B8901DA682C800E46B6A /* Debug */, + 5863B8911DA682C800E46B6A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F5391DA66CB600309CB6 /* Debug */, + 58C6F53A1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F53C1DA66CB600309CB6 /* Debug */, + 58C6F53D1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 58C6F51C1DA66CB600309CB6 /* Project object */; +} diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/xcuserdata/v1r7ua1.xcuserdatad/UserInterfaceState.xcuserstate b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/xcuserdata/v1r7ua1.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..429055d Binary files /dev/null and b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/project.xcworkspace/xcuserdata/v1r7ua1.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/xcuserdata/v1r7ua1.xcuserdatad/xcschemes/xcschememanagement.plist b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/xcuserdata/v1r7ua1.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..cf46cb6 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe.xcodeproj/xcuserdata/v1r7ua1.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + ios-moe-Test.xcscheme_^#shared#^_ + + orderHint + 1 + + ios-moe.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/EmptyStoryboard.storyboard b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/EmptyStoryboard.storyboard new file mode 100644 index 0000000..f9a048e --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/EmptyStoryboard.storyboard @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/Info.plist b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/Info.plist new file mode 100644 index 0000000..bf39904 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + MOE.Main.Class + [GAME_PACKAGE].DummyMain + UIApplicationExitsOnSuspend + + UILaunchStoryboardName + EmptyStoryboard + UIRequiredDeviceCapabilities + + opengles-2 + arm64 + + UIRequiresFullScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/custom.xcconfig b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/custom.xcconfig new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/main.cpp b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/main.cpp new file mode 100644 index 0000000..e348909 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=MULTIPLATFORM]/ios-moe[IF=JME_IOSMOE]/xcode/ios-moe/main.cpp @@ -0,0 +1,34 @@ +#include +#include +#include + +int main(int argc, char *argv[]) { + int jvm_argc = argc+1; + char** jvm_argv = new char*[jvm_argc]; + + /* + Sample memory sizes: + 268435456 - 256Mb + 536870912 - 512Mb + 1073741824 - 1G + 1610612736 - 1.5G + 2147483648 - 2G + */ + + jvm_argv[0]=argv[0]; + jvm_argv[1]=strdup("-Xmx1073741824"); //1G + // Note: dalvik VM doesn't support -XX:MaxDirectMemorySize but Xmx is enough + for(int i=1;i + copy { + from zipTree(jar) + include "$subDir/*.xcframework/**" + into("xcode/native/ios/") + eachFile { file -> + file.path = file.path.replaceFirst("^$subDir", '') + } + includeEmptyDirs(false) + } + } + + def LD_FLAGS = "" + def outFlags = file("xcode/ios-moe/custom.xcconfig"); + outFlags.write LD_FLAGS + + def proguard = file("proguard.append.cfg") + } +} + +configurations { natives } + +ext.jmonkeyengineVersion = '[JME_VERSION]' + +dependencies { + implementation 'org.jmonkeyengine:jme3-core:'+jmonkeyengineVersion + implementation "org.jmonkeyengine:jme3-ios:" + jmonkeyengineVersion + natives "org.jmonkeyengine:jme3-ios-native:" + jmonkeyengineVersion +} + +// Setup Multi-OS Engine +moe { + xcode { + project 'xcode/ios-moe.xcodeproj' + mainTarget 'ios-moe' + testTarget 'ios-moe-Test' + } +} + +moeMainReleaseIphoneosXcodeBuild.dependsOn copyNatives +moeMainDebugIphoneosXcodeBuild.dependsOn copyNatives +moeMainReleaseIphonesimulatorXcodeBuild.dependsOn copyNatives +moeMainDebugIphonesimulatorXcodeBuild.dependsOn copyNatives + +if (System.getenv('PLATFORM_NAME') != null) { + moeXcodeInternal.dependsOn copyNatives +} + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/proguard.append.cfg b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/proguard.append.cfg new file mode 100644 index 0000000..3c3fbfc --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/proguard.append.cfg @@ -0,0 +1,64 @@ +#-dontshrink +#-dontoptimize +#-dontusemixedcaseclassnames +#-dontskipnonpubliclibraryclasses +#-dontskipnonpubliclibraryclassmembers +#-dontpreverify +# Issue : (Index 39424 out of bounds for length 635) +#-keep class com.** { *; } +#-keep enum com.** { *; } + +# All jme3 +-keep class com.jme3.** {*;} +-keep enum com.jme3.** {*;} +-keep class de.lessvoid.nifty.** {*;} +-keep enum de.lessvoid.nifty.** {*;} + +# Previous jme3 related classes +-keep public class com.jme3.system.ios.*{public *;} +-keep public class * extends com.jme3.system.ios.IosHarness{public *;} +-keep public class * extends com.jme3.app.Application{public *;} +-keep public class * extends com.jme3.system.JmeSystemDelegate{public *;} +-keep public class * extends com.jme3.scene.control.*{public *;} +-keep public class * extends com.jme3.scene.Node{public *;} +-keep public class * implements com.jme3.renderer.Renderer{public *;} +-keep public class * implements com.jme3.asset.AssetLoader{public *;} +-keep public class * implements com.jme3.asset.AssetLocator{public *;} +-keep public class * implements de.lessvoid.nifty.screen.ScreenController{public *;} +-keep public class de.lessvoid.nifty.loaderv2.types.** { public *;} +-keep public class de.lessvoid.nifty.controls.** { public *; } +-keep public class de.lessvoid.nifty.input.** { public *; } +-keep public class de.lessvoid.nifty.effects.impl.** { public *;} +-keepclassmembers class com.jme3.audio.plugins.NativeVorbisFile{public *;} +-keep public class * implements javax.xml.parsers.SAXParserFactory{public *;} +-keep public class com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl +-keep public class com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl +-keep public class sun.nio.fs.MacOSXFileSystemProvider +-keep public class * extends java.nio.charset.Charset { *; } +-keep public class java.util.zip.Deflater { *; } +-keep public class java.io.FileNotFoundException { *; } +-keep public class java.lang.reflect.Proxy { *; } +-keep public class java.lang.reflect.InvocationHandler { *; } +-keep public class java.util.logging.ConsoleHandler +-keep public class java.util.logging.FileHandler +-keep public class java.util.logging.SimpleFormatter +-keep public class java.util.logging.LogManager { *; } +-keep public class org.xmlpull.mxp1.MXParserFactory { *; } +-keep public class mf.org.** { *; } + +# Base java +-keep class java.lang.** {*;} +-keep class java.net.** {*;} +-keep class java.nio.Bits {*;} + +# Minie +-keep class vhacd4.** {*;} +-keep class vhacd.** {*;} +-keep class jme3utilities.** {*;} + +# Keep all native methods, their classes and any classes in their descriptors +-keepclasseswithmembers,includedescriptorclasses class ** { + native ; + long nativeHandle; +} + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/game/[GAME_NAME].java b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/game/[GAME_NAME].java new file mode 100644 index 0000000..e82f21f --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/game/[GAME_NAME].java @@ -0,0 +1,33 @@ +package [GAME_PACKAGE].game; + + +import com.jme3.app.SimpleApplication; + +import com.jme3.app.state.AppState; +import com.jme3.material.Material; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Quaternion; +import com.jme3.math.Vector3f; +import com.jme3.scene.Geometry; +import com.jme3.scene.shape.Box; +import com.jme3.system.AppSettings; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class [GAME_NAME] extends SimpleApplication { + + @Override + public void simpleInitApp() { + Box b = new Box(1, 1, 1); + Geometry geom = new Geometry("Box", b); + + Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); + mat.setColor("Color", ColorRGBA.Blue); + geom.setMaterial(mat); + + rootNode.attachChild(geom); + } +} diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/ios/DummyMain.java b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/ios/DummyMain.java new file mode 100644 index 0000000..06cc8c2 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/ios/DummyMain.java @@ -0,0 +1,78 @@ +package [GAME_PACKAGE]; + +import org.moe.natj.general.Pointer; +import org.moe.natj.general.ann.RegisterOnStartup; +import org.moe.natj.objc.ann.Selector; + +import apple.NSObject; +import apple.foundation.NSDictionary; +import apple.corefoundation.struct.CGRect; +import apple.uikit.UIApplication; +import apple.uikit.UIColor; +import apple.uikit.UIImage; +import apple.uikit.UINavigationController; +import apple.uikit.UIScreen; +import apple.uikit.UIViewController; +import apple.uikit.UIWindow; +import apple.uikit.c.UIKit; +import apple.uikit.enums.UIBarStyle; +import apple.uikit.protocol.UIApplicationDelegate; + +@RegisterOnStartup +public class DummyMain extends NSObject implements UIApplicationDelegate +{ + public static void main(String[] args) { + UIKit.UIApplicationMain(0, null, null, DummyMain.class.getName()); + } + + @Selector("alloc") + public static native DummyMain alloc(); + + protected DummyMain(Pointer peer) { + super(peer); + } + + private UIWindow window; + + @Override + public boolean applicationDidFinishLaunchingWithOptions(UIApplication application, NSDictionary launchOptions) { + UIScreen screen = UIScreen.mainScreen(); + CGRect bounds = screen.bounds(); + window = UIWindow.alloc().initWithFrame(bounds); + + UIViewController vc = MoeIosJmeAppHarness.alloc().init(); + + // Initialization with navigation bar + /* + UINavigationController navigationController = UINavigationController.alloc().init(); + UIColor moeBlue = UIColor.alloc().initWithRedGreenBlueAlpha(0.0, 113/255.f, 197/255.f, 1.0); + navigationController.initWithRootViewController(vc); + window.setRootViewController(navigationController); + + navigationController.navigationBar().setBarStyle(UIBarStyle.Black); + navigationController.navigationBar().setBarTintColor(moeBlue); + navigationController.navigationBar().setShadowImage(UIImage.alloc().init()); + navigationController.navigationBar().setTranslucent(false); + navigationController.navigationBar().setTintColor(UIColor.whiteColor()); + */ + + // New initialization, only glwindow + window.setRootViewController(vc); + + window.makeKeyAndVisible(); + + System.out.println("DummyMain applicationDidFinishLaunchingWithOptions"); + + return true; + } + + @Override + public void setWindow(UIWindow value) { + window = value; + } + + @Override + public UIWindow window() { + return window; + } +} diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/ios/MoeIosJmeAppHarness.java b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/ios/MoeIosJmeAppHarness.java new file mode 100644 index 0000000..af64a27 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/src/main/java/[GAME_PACKAGE]/ios/MoeIosJmeAppHarness.java @@ -0,0 +1,319 @@ +package [GAME_PACKAGE]; + +import org.moe.natj.general.Pointer; +import org.moe.natj.general.ann.ByValue; +import org.moe.natj.general.ann.Mapped; +import org.moe.natj.general.ann.Owned; +import org.moe.natj.objc.SEL; +import org.moe.natj.objc.ann.Selector; +import org.moe.natj.objc.map.ObjCObjectMapper; + +import apple.corefoundation.struct.CGPoint; +import apple.corefoundation.struct.CGRect; +import apple.corefoundation.struct.CGSize; +import apple.foundation.NSEnumerator; +import apple.foundation.NSNotification; +import apple.foundation.NSNotificationCenter; +import apple.foundation.NSSet; +import apple.glkit.GLKView; +import apple.glkit.GLKViewController; +import apple.glkit.enums.GLKViewDrawableDepthFormat; +import apple.glkit.protocol.GLKViewDelegate; +import apple.opengles.EAGLContext; +import apple.opengles.enums.EAGLRenderingAPI; +import apple.uikit.UIEvent; +import apple.uikit.UIScreen; +import apple.uikit.UITouch; +import apple.uikit.enums.UIRectEdge; +import apple.uikit.protocol.UIViewControllerTransitionCoordinator; + +import com.jme3.app.LegacyApplication; +import com.jme3.system.JmeSystem; +import com.jme3.system.ios.JmeIosSystem; +import com.jme3.input.ios.IosInputHandler; +import com.jme3.math.Vector2f; +import com.jme3.renderer.opengl.GLRenderer; +import com.jme3.system.JmeContext; +import com.jme3.system.AppSettings; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class MoeIosJmeAppHarness extends GLKViewController implements GLKViewDelegate +{ + // Content from previous JmeAppHarness+IosHarness + protected LegacyApplication app; + private static final Logger logger = Logger.getLogger(MoeIosJmeAppHarness.class.getName()); + protected GLRenderer renderer; + protected IosInputHandler input; + protected boolean autoFlush = true; + protected Vector2f resizePending = null; + + // Content from moe-samples (OpenGLBox) + static final int GLKViewDrawableMultisample4X = 1; + + private EAGLContext context; + + private float rotation; + + private GLKView glkView; + + // Allocator, init and constructor (based on moe stuff) + //@Selector("alloc") + public static native MoeIosJmeAppHarness alloc(); + + @Override + @Owned + @Selector("init") + public MoeIosJmeAppHarness init() + { + MoeIosJmeAppHarness self = (MoeIosJmeAppHarness) super.init(); + if(self!=null) + { + final NSNotificationCenter notificationCenter = NSNotificationCenter.defaultCenter(); + notificationCenter.addObserverSelectorNameObject(self, new SEL("didRotate"), "UIDeviceOrientationDidChangeNotification", null); + } + return self; + } + + public MoeIosJmeAppHarness(Pointer peer) + { + super(peer); + } + + // Methods from previous JmeAppHarness+IosHarness + public void appPaused() { + logger.log(Level.FINE, "JmeAppHarness appPaused"); + } + + public void appReactivated() { + logger.log(Level.FINE, "JmeAppHarness appReactivated"); + } + + public void appClosed() { + logger.log(Level.FINE, "JmeAppHarness appClosed"); + app.stop(); + } + + public void appUpdate() { + logger.log(Level.FINE, "JmeAppHarness appUpdate"); + //app.update(); + } + + public void appDraw() { + logger.log(Level.FINE, "JmeAppHarness appDraw"); + if (renderer == null) { + JmeContext iosContext = app.getContext(); + renderer = (GLRenderer)iosContext.getRenderer(); + renderer.initialize(); + input = (IosInputHandler)iosContext.getTouchInput(); + input.initialize(); + } else { + if(resizePending != null) { + appReshape((int)resizePending.x, (int)resizePending.y); + resizePending = null; + } + app.update(); + if (autoFlush) { + renderer.postFrame(); + } + } + } + + public void appReshape(int width, int height) { + logger.log(Level.FINE, "JmeAppHarness reshape"); + AppSettings settings = app.getContext().getSettings(); + settings.setResolution(width, height); + if (renderer != null) { + app.reshape(width, height); + resizePending = null; + } else { + resizePending = new Vector2f(width, height); + } + + if (input != null) { + input.loadSettings(settings); + } + } + + public void injectTouchBegin(int pointerId, long time, float x, float y) { + if (input != null) { + logger.log(Level.FINE, "JmeAppHarness injectTouchBegin"); + input.injectTouchDown(pointerId, time, x, y); + } + } + + public void injectTouchMove(int pointerId, long time, float x, float y) { + if (input != null) { + logger.log(Level.FINE, "JmeAppHarness injectTouchMove"); + input.injectTouchMove(pointerId, time, x, y); + } + } + + public void injectTouchEnd(int pointerId, long time, float x, float y) { + if (input != null) { + logger.log(Level.FINE, "JmeAppHarness injectTouchEnd"); + input.injectTouchUp(pointerId, time, x, y); + } + } + + // Methods from moe-samples (OpenGLBox) + @Override + public void viewDidLoad() { + super.viewDidLoad(); + + //setTitle("Jme3 for iOS using MOE"); + + setEdgesForExtendedLayout(UIRectEdge.None); + + context = EAGLContext.alloc().initWithAPI(EAGLRenderingAPI.GLES3); + if (context == null) { + context = EAGLContext.alloc().initWithAPI(EAGLRenderingAPI.GLES2); + if (context == null) { + System.out.println("Failed to create ES context"); + System.exit(-1); + } + } + glkView = (GLKView) view(); + glkView.setContext(context); + glkView.setDrawableMultisample(GLKViewDrawableMultisample4X); + glkView.setDrawableDepthFormat(GLKViewDrawableDepthFormat.Format24); + + setPreferredFramesPerSecond(60); // TODO: set desired FPS + setPaused(false); + + setupGL(); + + // Initialization from previous JmeAppHarness+IosHarness + JmeSystem.setSystemDelegate(new JmeIosSystem()); + app = new [GAME_PACKAGE].game.[GAME_NAME](); + AppSettings settings = new AppSettings(true); + this.app.setSettings(settings); + app.start(); + app.gainFocus(); + + //Force a didRotate (jme3 reshape) event after having initialized everything so it renders properly from the beginning + didRotate(null); + } + + @Override + public void viewWillTransitionToSizeWithTransitionCoordinator(@ByValue CGSize size, @Mapped(ObjCObjectMapper.class) UIViewControllerTransitionCoordinator coordinator) { + if (isPaused()) + glkView.setNeedsDisplay(); + } + + @Override + public void viewDidDisappear(boolean animated) { + super.viewDidDisappear(animated); + tearDownGL(); + if (EAGLContext.currentContext() != null && EAGLContext.currentContext().equals(context)) { + EAGLContext.setCurrentContext(null); + } + context = null; + } + + @Override + public void didReceiveMemoryWarning() { + super.didReceiveMemoryWarning(); + if (isViewLoaded() && (view().window() == null)) { + setView(null); + tearDownGL(); + if (EAGLContext.currentContext().equals(context)) { + EAGLContext.setCurrentContext(null); + } + context = null; + } + // Dispose of any resources that can be recreated. + } + + private void setupGL() { + EAGLContext.setCurrentContext(context); + // Nothing to do here, there's no gl stuff created in this class + } + + private void tearDownGL() { + EAGLContext.setCurrentContext(context); + // Nothing to do here, there's no gl stuff created in this class + } + + @Override + public void glkViewDrawInRect(GLKView view, CGRect rect) { + appDraw(); + } + + @Selector("update") + public void update() { + appUpdate(); + appUpdate(); + } + + @Override + public void touchesBeganWithEvent(NSSet touches, UIEvent event) + { + NSEnumerator enumerator = touches.objectEnumerator(); + UITouch touch = (UITouch) enumerator.nextObject(); + if(touch!=null) + { + do + { + CGPoint position = touch.locationInView(null); + float scale = (float) glkView.contentScaleFactor(); + injectTouchBegin(touch.hashCode(), (long)touch.timestamp(), (float) (position.x() * scale), (float) (position.y() * scale)); + touch = (UITouch) enumerator.nextObject(); + } while (touch != null); + } + } + + @Override + public void touchesCancelledWithEvent(NSSet touches, UIEvent event) + { + // Not implemented in jME3 + } + + @Override + public void touchesEndedWithEvent(NSSet touches, UIEvent event) + { + NSEnumerator enumerator = touches.objectEnumerator(); + UITouch touch = (UITouch) enumerator.nextObject(); + if(touch!=null) + { + do + { + CGPoint position = touch.locationInView(null); + float scale = (float) glkView.contentScaleFactor(); + injectTouchEnd(touch.hashCode(), (long)touch.timestamp(), (float) (position.x() * scale), (float) (position.y() * scale)); + touch = (UITouch) enumerator.nextObject(); + } while (touch != null); + } + } + + @Override + public void touchesMovedWithEvent(NSSet touches, UIEvent event) + { + NSEnumerator enumerator = touches.objectEnumerator(); + UITouch touch = (UITouch) enumerator.nextObject(); + if(touch!=null) + { + do + { + CGPoint position = touch.locationInView(null); + float scale = (float) glkView.contentScaleFactor(); + injectTouchMove(touch.hashCode(), (long)touch.timestamp(), (float) (position.x() * scale), (float) (position.y() * scale)); + touch = (UITouch) enumerator.nextObject(); + } while (touch != null); + } + } + + // java code equivalent to old jmeAppDelegate.m + @Selector("didRotate") + public void didRotate(NSNotification notification) + { + UIScreen screen = UIScreen.mainScreen(); + CGRect originalFrame = screen.bounds(); + if(glkView!=null) + { + CGRect frame = glkView.convertRectToView(originalFrame, null); + float scale = (float) glkView.contentScaleFactor(); + appReshape((int) (frame.size().width() * scale), (int) (frame.size().height() * scale)); + } + } +} diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe-Test/Info.plist b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe-Test/Info.plist new file mode 100644 index 0000000..dad821c --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe-Test/Info.plist @@ -0,0 +1,44 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + MOE.Main.Class + org.moe.mdt.junit.MoeRemoteTestRunner + UIRequiredDeviceCapabilities + + opengles-2 + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe-Test/main.cpp b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe-Test/main.cpp new file mode 100644 index 0000000..fef543a --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe-Test/main.cpp @@ -0,0 +1,5 @@ +#include + +int main(int argc, char *argv[]) { + return moevm(argc, argv); +} diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0d29074 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj @@ -0,0 +1,612 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E152A74253836079FA1075F /* main.cpp */; }; + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8084D1F0A307440EC73CBFCA /* main.cpp */; }; + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */ = {isa = PBXBuildFile; fileRef = AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */; }; + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */; }; + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A01E37A2DB004E28A9 /* AVFoundation.framework */; }; + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */; }; + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A21E37A2DB004E28A9 /* CoreMotion.framework */; }; + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A31E37A2DB004E28A9 /* OpenAL.framework */; }; + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A41E37A2DB004E28A9 /* OpenGLES.framework */; }; + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A51E37A2DB004E28A9 /* QuartzCore.framework */; }; + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773AD1E37A7EF004E28A9 /* UIKit.framework */; }; + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */; }; + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; }; + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1E152A74253836079FA1075F /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 5817739D1E37A10D004E28A9 /* custom.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = custom.xcconfig; sourceTree = ""; }; + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + 581773A31E37A2DB004E28A9 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 581773AD1E37A7EF004E28A9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ios-moe-Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5863B88E1DA682C800E46B6A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = [GAME_NAME].app; sourceTree = BUILT_PRODUCTS_DIR; }; + 58C6F5381DA66CB600309CB6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8084D1F0A307440EC73CBFCA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "moe-main-interfaces.m"; path = "../build/moe/main/ui-headers/moe-main-interfaces.m"; sourceTree = ""; }; + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = EmptyStoryboard.storyboard; sourceTree = ""; }; + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "jme3-ios-native-lib.xcframework"; path = "../../../jme3-ios-native-lib/release/jme3-ios-native-lib.xcframework"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5863B8781DA682C800E46B6A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5211DA66CB600309CB6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */, + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */, + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */, + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */, + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */, + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */, + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */, + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */, + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 10A59D530B421B1C760A83FC /* Multi-OS Engine */ = { + isa = PBXGroup; + children = ( + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */, + ); + name = "Multi-OS Engine"; + sourceTree = ""; + }; + 5817739E1E37A2DA004E28A9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */, + 581773AD1E37A7EF004E28A9 /* UIKit.framework */, + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */, + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */, + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */, + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */, + 581773A31E37A2DB004E28A9 /* OpenAL.framework */, + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */, + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5863B87C1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXGroup; + children = ( + 5863B88E1DA682C800E46B6A /* Info.plist */, + 5863B87D1DA682C800E46B6A /* Supporting Files */, + ); + path = "ios-moe-Test"; + sourceTree = ""; + }; + 5863B87D1DA682C800E46B6A /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 1E152A74253836079FA1075F /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 58C6F51B1DA66CB600309CB6 = { + isa = PBXGroup; + children = ( + 58C6F5261DA66CB600309CB6 /* ios-moe */, + 5863B87C1DA682C800E46B6A /* ios-moe-Test */, + 58C6F5251DA66CB600309CB6 /* Products */, + 5817739E1E37A2DA004E28A9 /* Frameworks */, + 10A59D530B421B1C760A83FC /* Multi-OS Engine */, + ); + sourceTree = ""; + }; + 58C6F5251DA66CB600309CB6 /* Products */ = { + isa = PBXGroup; + children = ( + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */, + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */, + ); + name = Products; + sourceTree = ""; + }; + 58C6F5261DA66CB600309CB6 /* ios-moe */ = { + isa = PBXGroup; + children = ( + 58C6F5381DA66CB600309CB6 /* Info.plist */, + 5817739D1E37A10D004E28A9 /* custom.xcconfig */, + 58C6F5271DA66CB600309CB6 /* Supporting Files */, + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */, + ); + path = "ios-moe"; + sourceTree = ""; + }; + 58C6F5271DA66CB600309CB6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 8084D1F0A307440EC73CBFCA /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5863B87A1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */; + buildPhases = ( + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */, + 5863B8771DA682C800E46B6A /* Sources */, + 5863B8781DA682C800E46B6A /* Frameworks */, + 5863B8791DA682C800E46B6A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe-Test"; + productName = "ios-moe-Test"; + productReference = 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */; + productType = "com.apple.product-type.application"; + }; + 58C6F5231DA66CB600309CB6 /* ios-moe */ = { + isa = PBXNativeTarget; + buildConfigurationList = 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */; + buildPhases = ( + F461487E379A46F550F0C10A /* Compile Sources (MOE) */, + 58C6F5201DA66CB600309CB6 /* Sources */, + 58C6F5211DA66CB600309CB6 /* Frameworks */, + 58C6F5221DA66CB600309CB6 /* Resources */, + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe"; + productName = "ios-moe"; + productReference = 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 58C6F51C1DA66CB600309CB6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = x; + TargetAttributes = { + 5863B87A1DA682C800E46B6A = { + CreatedOnToolsVersion = 7.3.1; + }; + 58C6F5231DA66CB600309CB6 = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 58C6F51B1DA66CB600309CB6; + productRefGroup = 58C6F5251DA66CB600309CB6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 58C6F5231DA66CB600309CB6 /* ios-moe */, + 5863B87A1DA682C800E46B6A /* ios-moe-Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5863B8791DA682C800E46B6A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5221DA66CB600309CB6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"test\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; + F461487E379A46F550F0C10A /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"main\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5863B8771DA682C800E46B6A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5201DA66CB600309CB6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */, + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5863B8901DA682C800E46B6A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 5863B8911DA682C800E46B6A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + 58C6F5391DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 58C6F53A1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 58C6F53C1DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 58C6F53D1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5863B8901DA682C800E46B6A /* Debug */, + 5863B8911DA682C800E46B6A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F5391DA66CB600309CB6 /* Debug */, + 58C6F53A1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F53C1DA66CB600309CB6 /* Debug */, + 58C6F53D1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 58C6F51C1DA66CB600309CB6 /* Project object */; +} diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj.jbullet_enabled.Check_and_fix b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj.jbullet_enabled.Check_and_fix new file mode 100644 index 0000000..d0c8ea1 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj.jbullet_enabled.Check_and_fix @@ -0,0 +1,618 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E152A74253836079FA1075F /* main.cpp */; }; + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8084D1F0A307440EC73CBFCA /* main.cpp */; }; + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */ = {isa = PBXBuildFile; fileRef = AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */; }; + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */; }; + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A01E37A2DB004E28A9 /* AVFoundation.framework */; }; + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */; }; + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A21E37A2DB004E28A9 /* CoreMotion.framework */; }; + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A31E37A2DB004E28A9 /* OpenAL.framework */; }; + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A41E37A2DB004E28A9 /* OpenGLES.framework */; }; + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773A51E37A2DB004E28A9 /* QuartzCore.framework */; }; + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 581773AD1E37A7EF004E28A9 /* UIKit.framework */; }; + BB2763E72CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */; }; + BB2763E82CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */; }; + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; }; + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BBAA18852C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Embed Frameworks */, + BB2763E82CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1E152A74253836079FA1075F /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 5817739D1E37A10D004E28A9 /* custom.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = custom.xcconfig; sourceTree = ""; }; + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + 581773A31E37A2DB004E28A9 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 581773AD1E37A7EF004E28A9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ios-moe-Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5863B88E1DA682C800E46B6A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = [GAME_NAME].app; sourceTree = BUILT_PRODUCTS_DIR; }; + 58C6F5381DA66CB600309CB6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8084D1F0A307440EC73CBFCA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "moe-main-interfaces.m"; path = "../build/moe/main/ui-headers/moe-main-interfaces.m"; sourceTree = ""; }; + BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libbulletjme-ios-native-lib.xcframework"; path = "../../../libbulletjme-ios-native-lib/release/libbulletjme-ios-native-lib.xcframework"; sourceTree = ""; }; + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = EmptyStoryboard.storyboard; sourceTree = ""; }; + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "jme3-ios-native-lib.xcframework"; path = "../../../jme3-ios-native-lib/release/jme3-ios-native-lib.xcframework"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5863B8781DA682C800E46B6A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5211DA66CB600309CB6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBAA18842C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework in Frameworks */, + 581773A61E37A2DB004E28A9 /* AudioToolbox.framework in Frameworks */, + 581773A71E37A2DB004E28A9 /* AVFoundation.framework in Frameworks */, + BB2763E72CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework in Frameworks */, + 581773A81E37A2DB004E28A9 /* CoreGraphics.framework in Frameworks */, + 581773A91E37A2DB004E28A9 /* CoreMotion.framework in Frameworks */, + 581773AA1E37A2DB004E28A9 /* OpenAL.framework in Frameworks */, + 581773AB1E37A2DB004E28A9 /* OpenGLES.framework in Frameworks */, + 581773AC1E37A2DB004E28A9 /* QuartzCore.framework in Frameworks */, + 581773AE1E37A7EF004E28A9 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 10A59D530B421B1C760A83FC /* Multi-OS Engine */ = { + isa = PBXGroup; + children = ( + AE849253332D33EDDC76AB2C /* moe-main-interfaces.m */, + ); + name = "Multi-OS Engine"; + sourceTree = ""; + }; + 5817739E1E37A2DA004E28A9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BB2763E62CA623F900B73E12 /* libbulletjme-ios-native-lib.xcframework */, + BBAA18832C9CE16C0015DF5E /* jme3-ios-native-lib.xcframework */, + 581773AD1E37A7EF004E28A9 /* UIKit.framework */, + 5817739F1E37A2DB004E28A9 /* AudioToolbox.framework */, + 581773A01E37A2DB004E28A9 /* AVFoundation.framework */, + 581773A11E37A2DB004E28A9 /* CoreGraphics.framework */, + 581773A21E37A2DB004E28A9 /* CoreMotion.framework */, + 581773A31E37A2DB004E28A9 /* OpenAL.framework */, + 581773A41E37A2DB004E28A9 /* OpenGLES.framework */, + 581773A51E37A2DB004E28A9 /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5863B87C1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXGroup; + children = ( + 5863B88E1DA682C800E46B6A /* Info.plist */, + 5863B87D1DA682C800E46B6A /* Supporting Files */, + ); + path = "ios-moe-Test"; + sourceTree = ""; + }; + 5863B87D1DA682C800E46B6A /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 1E152A74253836079FA1075F /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 58C6F51B1DA66CB600309CB6 = { + isa = PBXGroup; + children = ( + 58C6F5261DA66CB600309CB6 /* ios-moe */, + 5863B87C1DA682C800E46B6A /* ios-moe-Test */, + 58C6F5251DA66CB600309CB6 /* Products */, + 5817739E1E37A2DA004E28A9 /* Frameworks */, + 10A59D530B421B1C760A83FC /* Multi-OS Engine */, + ); + sourceTree = ""; + }; + 58C6F5251DA66CB600309CB6 /* Products */ = { + isa = PBXGroup; + children = ( + 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */, + 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */, + ); + name = Products; + sourceTree = ""; + }; + 58C6F5261DA66CB600309CB6 /* ios-moe */ = { + isa = PBXGroup; + children = ( + 58C6F5381DA66CB600309CB6 /* Info.plist */, + 5817739D1E37A10D004E28A9 /* custom.xcconfig */, + 58C6F5271DA66CB600309CB6 /* Supporting Files */, + BB2763E92CA6D20E00B73E12 /* EmptyStoryboard.storyboard */, + ); + path = "ios-moe"; + sourceTree = ""; + }; + 58C6F5271DA66CB600309CB6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 8084D1F0A307440EC73CBFCA /* main.cpp */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5863B87A1DA682C800E46B6A /* ios-moe-Test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */; + buildPhases = ( + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */, + 5863B8771DA682C800E46B6A /* Sources */, + 5863B8781DA682C800E46B6A /* Frameworks */, + 5863B8791DA682C800E46B6A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe-Test"; + productName = "ios-moe-Test"; + productReference = 5863B87B1DA682C800E46B6A /* ios-moe-Test.app */; + productType = "com.apple.product-type.application"; + }; + 58C6F5231DA66CB600309CB6 /* ios-moe */ = { + isa = PBXNativeTarget; + buildConfigurationList = 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */; + buildPhases = ( + F461487E379A46F550F0C10A /* Compile Sources (MOE) */, + 58C6F5201DA66CB600309CB6 /* Sources */, + 58C6F5211DA66CB600309CB6 /* Frameworks */, + 58C6F5221DA66CB600309CB6 /* Resources */, + F0BD09F22C793DD000C03AF2 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ios-moe"; + productName = "ios-moe"; + productReference = 58C6F5241DA66CB600309CB6 /* [GAME_NAME].app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 58C6F51C1DA66CB600309CB6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = x; + TargetAttributes = { + 5863B87A1DA682C800E46B6A = { + CreatedOnToolsVersion = 7.3.1; + }; + 58C6F5231DA66CB600309CB6 = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 58C6F51B1DA66CB600309CB6; + productRefGroup = 58C6F5251DA66CB600309CB6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 58C6F5231DA66CB600309CB6 /* ios-moe */, + 5863B87A1DA682C800E46B6A /* ios-moe-Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5863B8791DA682C800E46B6A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5221DA66CB600309CB6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2763EA2CA6D20E00B73E12 /* EmptyStoryboard.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1AE79C4EE6E5C399E50B1E3C /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"test\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; + F461487E379A46F550F0C10A /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "set -e\n\nexport MOE_BUILD_SOURCE_SET=\"main\"\nexport MOE_BUILD_MODE=\"$(echo $CONFIGURATION | tr '[:upper:]' '[:lower:]')\"\n\n# Check project directory\nif [ ! -d \"$MOE_PROJECT_DIR\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_DIR' doesn't point to a directory!\"; exit 1;\nfi\ncd \"$MOE_PROJECT_DIR\"\n\n# Export JAVA_HOME\nif [ -z \"$JAVA_HOME\" ]; then\n if [ -z \"$MOE_JAVA_VERSION_OVERRIDE\" ]; then\n export JAVA_HOME=$(/usr/libexec/java_home)\n else\n export JAVA_HOME=$(/usr/libexec/java_home -v \"$MOE_JAVA_VERSION_OVERRIDE\")\n fi\nfi\necho $JAVA_HOME\n\n# Utility function for finding the Gradle implementation\nfunction findGradle {\n CD=\"$PWD\"\n while [ \"$CD\" != \"\" ]; do\n echo \"Looking for gradlew in $CD\"\n if [ -x \"$CD/gradlew\" ]; then\n GRADLE_EXEC=$CD/gradlew\n return 0\n fi\n CD=\"${CD%/*}\"\n done\n\n echo \"Checking with 'which'\"\n GRADLE_EXEC=$(which 'gradle')\n\n if [ \"$GRADLE_EXEC\" = \"\" ]; then\n echo \"Failed to locate 'gradle' executable!\"\n exit 1\n fi\n}\n\n# Build project with Gradle\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n \"$GRADLE_EXEC\" --no-daemon moeXcodeInternal -s\nfi\n\n# Check output directory\nif [ ! -d \"${MOE_PROJECT_BUILD_DIR}\" ]; then\n echo \"$0:$LINENO:1: error: 'MOE_PROJECT_BUILD_DIR' doesn't point to a directory!\"; exit 1;\nfi\n\n# Copy some resources\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/resources/${MOE_BUILD_MODE}/application.jar\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/startup-provider/${MOE_BUILD_MODE}/preregister.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [ \"${MOE_BUILD_SOURCE_SET}\" == \"test\" ]; then\n cp \"${MOE_PROJECT_BUILD_DIR}/moe/${MOE_BUILD_SOURCE_SET}/test-provider/${MOE_BUILD_MODE}/classlist.txt\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nfi\n\n# Copy android CA certificates on demand\nif [ \"${MOE_COPY_ANDROID_CACERTS}\" == \"YES\" ]; then\n rm -rf \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n mkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\n unzip \"${MOE_SDK_PATH}/sdk/moe-core-certificates.zip\" -d \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/android_root/etc/security/cacerts\"\nfi\n\n# Copy and sign MOE framework\nrsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \\\n \"${MOE_FRAMEWORK_PATH}/MOE.framework\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"${ARCHS}\" == \"arm64\" ] || [ \"${ARCHS}\" == \"x86_64\" ]; then\n if [ \"${PLATFORM_NAME}\" == \"iphonesimulator\" ]; then\n lipo -thin \"${ARCHS}\" -output \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework/MOE\" \"${MOE_FRAMEWORK_PATH}/MOE.framework/MOE\"\n fi\nfi\nif [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY $OTHER_CODE_SIGN_FLAGS \\\n --preserve-metadata=identifier,entitlements \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MOE.framework\"\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5863B8771DA682C800E46B6A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 093EA0331288EEC18D3C79EC /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 58C6F5201DA66CB600309CB6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 16479D2CDCAC394B9A9722FE /* main.cpp in Sources */, + 1BC836EF57DF0BA82F65BED9 /* moe-main-interfaces.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5863B8901DA682C800E46B6A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 5863B8911DA682C800E46B6A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe-Test/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + 58C6F5391DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 58C6F53A1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MOE_VERSION = 1.8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 58C6F53C1DA66CB600309CB6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 58C6F53D1DA66CB600309CB6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5817739D1E37A10D004E28A9 /* custom.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = 484DN6VW79; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MOE_COPY_ANDROID_CACERTS = NO; + MOE_FRAMEWORK_PATH = "${MOE_SDK_PATH}/sdk/${PLATFORM_NAME}"; + MOE_JAVA_VERSION_OVERRIDE = ""; + MOE_OAT_ALIGN = "-Xlinker -sectalign -Xlinker __TEXT -Xlinker __oatdata -Xlinker 0x8000"; + "MOE_OAT_ALIGN[arch=x86_64]" = ""; + MOE_OTHER_LDFLAGS = "${MOE_SECT_OAT} ${MOE_OAT_ALIGN} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lc++ -framework MOE"; + MOE_PAGEZERO = ""; + "MOE_PAGEZERO[arch=x86_64]" = "-pagezero_size 4096"; + MOE_PROJECT_BUILD_DIR = "${MOE_PROJECT_DIR}/build"; + MOE_PROJECT_DIR = "${SRCROOT}/../"; + MOE_SDK_PATH = "${MOE_PROJECT_BUILD_DIR}/moe/sdk"; + MOE_SECT_ART = "-sectcreate __ARTDATA __artdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art\""; + MOE_SECT_OAT = "-sectcreate __TEXT __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + "MOE_SECT_OAT[arch=x86_64]" = "-sectcreate __OATDATA __oatdata \"${MOE_PROJECT_BUILD_DIR}/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat\""; + MOE_SEGPROT = "-segprot __ARTDATA rw rw"; + "MOE_SEGPROT[arch=x86_64]" = "-segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "${MOE_OTHER_LDFLAGS}", + ); + PRODUCT_BUNDLE_IDENTIFIER = [GAME_PACKAGE]; + PRODUCT_NAME = [GAME_NAME]; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5863B88F1DA682C800E46B6A /* Build configuration list for PBXNativeTarget "ios-moe-Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5863B8901DA682C800E46B6A /* Debug */, + 5863B8911DA682C800E46B6A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F51F1DA66CB600309CB6 /* Build configuration list for PBXProject "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F5391DA66CB600309CB6 /* Debug */, + 58C6F53A1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58C6F53B1DA66CB600309CB6 /* Build configuration list for PBXNativeTarget "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58C6F53C1DA66CB600309CB6 /* Debug */, + 58C6F53D1DA66CB600309CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 58C6F51C1DA66CB600309CB6 /* Project object */; +} diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/xcuserdata/v1r7ua1.xcuserdatad/UserInterfaceState.xcuserstate b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/xcuserdata/v1r7ua1.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..429055d Binary files /dev/null and b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/project.xcworkspace/xcuserdata/v1r7ua1.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/xcuserdata/v1r7ua1.xcuserdatad/xcschemes/xcschememanagement.plist b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/xcuserdata/v1r7ua1.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..cf46cb6 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe.xcodeproj/xcuserdata/v1r7ua1.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + ios-moe-Test.xcscheme_^#shared#^_ + + orderHint + 1 + + ios-moe.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/EmptyStoryboard.storyboard b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/EmptyStoryboard.storyboard new file mode 100644 index 0000000..f9a048e --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/EmptyStoryboard.storyboard @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/Info.plist b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/Info.plist new file mode 100644 index 0000000..bf39904 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + MOE.Main.Class + [GAME_PACKAGE].DummyMain + UIApplicationExitsOnSuspend + + UILaunchStoryboardName + EmptyStoryboard + UIRequiredDeviceCapabilities + + opengles-2 + arm64 + + UIRequiresFullScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/custom.xcconfig b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/custom.xcconfig new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/main.cpp b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/main.cpp new file mode 100644 index 0000000..e348909 --- /dev/null +++ b/src/main/resources/jmetemplate/[IF=SINGLEPLATFORM][IF=JME_IOSMOE]/ios-moe/xcode/ios-moe/main.cpp @@ -0,0 +1,34 @@ +#include +#include +#include + +int main(int argc, char *argv[]) { + int jvm_argc = argc+1; + char** jvm_argv = new char*[jvm_argc]; + + /* + Sample memory sizes: + 268435456 - 256Mb + 536870912 - 512Mb + 1073741824 - 1G + 1610612736 - 1.5G + 2147483648 - 2G + */ + + jvm_argv[0]=argv[0]; + jvm_argv[1]=strdup("-Xmx1073741824"); //1G + // Note: dalvik VM doesn't support -XX:MaxDirectMemorySize but Xmx is enough + for(int i=1;i