summaryrefslogtreecommitdiffstats
path: root/ios/build.gradle
blob: 8ade426ab2cea2a2d9672da0f3e4c020c5ffc136 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
sourceSets.main.java.srcDirs = [ "src/" ]

sourceCompatibility = '1.7'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

ext {
	mainClassName = "ch.asynk.creepingarmor.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'
}