Add iOS project.

This commit is contained in:
elcnesh
2014-12-09 17:00:13 +00:00
parent 1da8cd7fb1
commit 8085775888
13 changed files with 358 additions and 0 deletions

12
.gitattributes vendored
View File

@@ -1151,6 +1151,18 @@ forge-gui-desktop/src/test/java/forge/gui/ListChooserTest.java -text
forge-gui-desktop/src/test/java/forge/gui/game/CardDetailPanelTest.java -text
forge-gui-desktop/src/test/java/forge/item/DeckHintsTest.java -text
forge-gui-desktop/src/test/java/forge/model/FModelTest.java -text
forge-gui-ios/.classpath -text
forge-gui-ios/.project -text
forge-gui-ios/Info.plist.xml -text
forge-gui-ios/libs/libObjectAL.a -text
forge-gui-ios/libs/libgdx-freetype.a -text
forge-gui-ios/libs/libgdx.a -text
forge-gui-ios/minlog-1.2.jar -text
forge-gui-ios/pom.xml -text
forge-gui-ios/robovm.properties -text
forge-gui-ios/robovm.xml -text
forge-gui-ios/src/forge/ios/Main.java -text
forge-gui-ios/src/forge/ios/package-info.java -text
forge-gui-mobile-dev/.classpath -text
forge-gui-mobile-dev/.project -text
forge-gui-mobile-dev/.settings/org.eclipse.jdt.core.prefs -text

27
forge-gui-ios/.classpath Normal file
View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry combineaccessrules="false" kind="src" path="/forge-core"/>
<classpathentry combineaccessrules="false" kind="src" path="/forge-game"/>
<classpathentry combineaccessrules="false" kind="src" path="/forge-gui"/>
<classpathentry combineaccessrules="false" kind="src" path="/forge-gui-mobile"/>
<classpathentry combineaccessrules="false" kind="src" path="/forge-net"/>
<classpathentry combineaccessrules="false" kind="src" path="/forge-ai"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="minlog-1.2.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

36
forge-gui-ios/.project Normal file
View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>forge-gui-ios</name>
<comment></comment>
<projects>
<project>forge</project>
<project>forge-ai</project>
<project>forge-core</project>
<project>forge-game</project>
<project>forge-gui</project>
<project>forge-gui-mobile</project>
<project>forge-net</project>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.robovm.eclipse.RoboVMClassBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.robovm.eclipse.RoboVMNature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${app.name}</string>
<key>CFBundleExecutable</key>
<string>${app.executable}</string>
<key>CFBundleIdentifier</key>
<string>${app.id}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${app.name}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${app.version}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${app.build}</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon</string>
<string>Icon-72</string>
</array>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

BIN
forge-gui-ios/libs/libgdx.a Normal file

Binary file not shown.

Binary file not shown.

85
forge-gui-ios/pom.xml Normal file
View File

@@ -0,0 +1,85 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
<packaging.type>jar</packaging.type>
<build.min.memory>-Xms128m</build.min.memory>
<build.max.memory>-Xmx2048m</build.max.memory>
<alpha-version>1.5.32.005</alpha-version>
</properties>
<parent>
<artifactId>forge</artifactId>
<groupId>forge</groupId>
<version>1.5.32-SNAPSHOT</version>
</parent>
<artifactId>forge-gui-ios</artifactId>
<packaging>${packaging.type}</packaging>
<name>Forge iOS</name>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>filters</directory>
<filtering>true</filtering>
</resource>
</resources>
<finalName>forge-ios-${alpha-version}</finalName>
</build>
<dependencies>
<dependency>
<groupId>forge</groupId>
<artifactId>forge-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>forge</groupId>
<artifactId>forge-game</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>forge</groupId>
<artifactId>forge-ai</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>forge</groupId>
<artifactId>forge-net</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>forge</groupId>
<artifactId>forge-gui</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>forge</groupId>
<artifactId>forge-gui-mobile</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.googlecode</groupId>
<artifactId>minlog</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-backend-robovm</artifactId>
<version>1.4.1</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,8 @@
#
#Wed Dec 03 21:31:22 CET 2014
app.version=1.0
app.id=forge.ios
app.mainclass=forge.ios.Main
app.executable=forge.ios.Main
app.build=1
app.name=Forge

49
forge-gui-ios/robovm.xml Normal file
View File

@@ -0,0 +1,49 @@
<config>
<executableName>${app.executable}</executableName>
<mainClass>${app.mainclass}</mainClass>
<os>ios</os>
<arch>thumbv7</arch>
<resources>
<resource>
<directory>../forge-gui</directory>
<includes>
<include>res/**</include>
</includes>
</resource>
<resource>
<directory>res</directory>
</resource>
</resources>
<target>ios</target>
<iosInfoPList>Info.plist.xml</iosInfoPList>
<forceLinkClasses>
<pattern>com.android.okhttp.HttpHandler</pattern>
<pattern>com.android.okhttp.HttpsHandler</pattern>
<pattern>com.android.org.conscrypt.**</pattern>
<pattern>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</pattern>
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings</pattern>
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi</pattern>
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std</pattern>
<pattern>com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi</pattern>
<pattern>com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL</pattern>
<pattern>org.apache.harmony.security.provider.cert.DRLCertFactory</pattern>
<pattern>org.apache.harmony.security.provider.crypto.CryptoProvider</pattern>
<pattern>org.apache.xalan.processor.TransformerFactoryImpl</pattern>
<pattern>java.util.logging.**</pattern>
<pattern>com.esotericsoftware.minlog.Log</pattern>
</forceLinkClasses>
<libs>
<lib>libs/libgdx.a</lib>
<lib>libs/libObjectAL.a</lib>
<lib>libs/libgdx-freetype.a</lib>
</libs>
<frameworks>
<framework>UIKit</framework>
<framework>OpenGLES</framework>
<framework>QuartzCore</framework>
<framework>CoreGraphics</framework>
<framework>OpenAL</framework>
<framework>AudioToolbox</framework>
<framework>AVFoundation</framework>
</frameworks>
</config>

View File

@@ -0,0 +1,79 @@
package forge.ios;
import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.uikit.UIApplication;
import org.robovm.apple.uikit.UIPasteboard;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
import com.badlogic.gdx.backends.iosrobovm.IOSFiles;
import forge.Forge;
import forge.assets.AssetsDownloader;
import forge.interfaces.IDeviceAdapter;
import forge.util.FileUtil;
public class Main extends IOSApplication.Delegate {
@Override
protected IOSApplication createApplication() {
final String assetsDir = new IOSFiles().getLocalStoragePath() + "/../../forge.ios.Main.app/";
if (!AssetsDownloader.SHARE_DESKTOP_ASSETS) {
FileUtil.ensureDirectoryExists(assetsDir);
}
final IOSApplicationConfiguration config = new IOSApplicationConfiguration();
config.useAccelerometer = false;
config.useCompass = false;
final ApplicationListener app = Forge.getApp(new IOSClipboard(), new IOSAdapter(), assetsDir);
final IOSApplication iosApp = new IOSApplication(app, config);
return iosApp;
}
public static void main(String[] args) {
final NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(args, null, Main.class);
pool.close();
}
//special clipboard that works on iOS
private static final class IOSClipboard implements com.badlogic.gdx.utils.Clipboard {
@Override
public String getContents() {
return UIPasteboard.getGeneral().getString();
}
@Override
public void setContents(final String contents0) {
UIPasteboard.getGeneral().setString(contents0);
}
}
private static final class IOSAdapter implements IDeviceAdapter {
@Override
public boolean isConnectedToInternet() {
return true;
}
@Override
public boolean isConnectedToWifi() {
return true;
}
@Override
public String getDownloadsDir() {
return new IOSFiles().getExternalStoragePath();
}
@Override
public boolean openFile(String filename) {
return new IOSFiles().local(filename).exists();
}
@Override
public void exit() {
// Not possible on iOS
}
}
}

View File

@@ -0,0 +1 @@
package forge.ios;