summaryrefslogtreecommitdiffstats
path: root/ios/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'ios/build.gradle')
-rw-r--r--ios/build.gradle65
1 files changed, 65 insertions, 0 deletions
diff --git a/ios/build.gradle b/ios/build.gradle
new file mode 100644
index 0000000..4bbbefe
--- /dev/null
+++ b/ios/build.gradle
@@ -0,0 +1,65 @@
+sourceSets.main.java.srcDirs = [ "src/" ]
+
+sourceCompatibility = '1.7'
+[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
+
+ext {
+ mainClassName = "ch.asynk.tankontank.IOSLauncher"
+}
+
+// Extracts native libs (*.a) from the native-ios.jar and places them
+// under build/libs/ios/.
+task copyNatives << {
+ file("build/libs/ios/").mkdirs();
+ configurations.natives.files.each { jar ->
+ def outputDir = null
+ if (jar.name.endsWith("natives-ios.jar")) outputDir = file("build/libs/ios")
+ if (outputDir != null) {
+ copy {
+ from zipTree(jar)
+ into outputDir
+ include "*.a"
+ }
+ }
+ }
+}
+
+// Updates a robovm.xml file.
+task updateRoboVMXML << {
+ def xml = file('robovm.xml')
+
+ if (!xml.exists()) {
+ return
+ }
+
+ // Find all native (*.a) libraries beneath libs
+ def libtree = fileTree(dir: 'build/libs', include: '**/*.a')
+
+ def config = new groovy.util.XmlParser().parse(xml)
+ config.libs.each {libs ->
+ libs.children().clear()
+ libtree.each { File file ->
+ libs.appendNode('lib', 'build/libs/ios/' + file.getName())
+ }
+ }
+
+ def writer = new FileWriter(xml)
+ def printer = new XmlNodePrinter(new PrintWriter(writer))
+ printer.setPreserveWhitespace true
+ printer.print(config)
+}
+
+updateRoboVMXML.dependsOn copyNatives
+build.dependsOn updateRoboVMXML
+tasks.eclipse.dependsOn updateRoboVMXML
+
+launchIPhoneSimulator.dependsOn build
+launchIPadSimulator.dependsOn build
+launchIOSDevice.dependsOn build
+createIPA.dependsOn build
+
+
+eclipse.project {
+ name = appName + "-ios"
+ natures 'org.robovm.eclipse.RoboVMNature'
+} \ No newline at end of file