build.gradle 1.8 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import org.apache.tools.ant.taskdefs.condition.Os
  2. task deleteXcframework(type: Delete) {
  3. delete 'template/META-INF/robovm/ios/libs/jme3-ios-native.xcframework'
  4. }
  5. task buildNativeLibIos(type: Exec) {
  6. executable "xcodebuild"
  7. args 'archive', '-project', 'jme3-ios-native.xcodeproj', '-scheme', 'jme3-ios-native', '-configuration', 'release', '-destination', 'generic/platform=iOS', '-archivePath', 'build/archives/jme3-ios-native_iOS', 'SKIP_INSTALL=NO', 'BUILD_LIBRARY_FOR_DISTRIBUTION=YES'
  8. }
  9. task buildNativeLibSimulator(type: Exec) {
  10. executable "xcodebuild"
  11. args 'archive', '-project', 'jme3-ios-native.xcodeproj', '-scheme', 'jme3-ios-native', '-configuration', 'release', '-destination', 'generic/platform=iOS Simulator', '-archivePath', 'build/archives/jme3-ios-native_iOS-Simulator', 'SKIP_INSTALL=NO', 'BUILD_LIBRARY_FOR_DISTRIBUTION=YES'
  12. }
  13. task buildNativeLib(type: Exec) {
  14. dependsOn 'deleteXcframework'
  15. dependsOn 'buildNativeLibIos'
  16. dependsOn 'buildNativeLibSimulator'
  17. executable "xcodebuild"
  18. args '-create-xcframework', '-framework', 'build/archives/jme3-ios-native_iOS.xcarchive/Products/Library/Frameworks/jme3_ios_native.framework', '-framework', 'build/archives/jme3-ios-native_iOS-Simulator.xcarchive/Products/Library/Frameworks/jme3_ios_native.framework', '-output', 'template/META-INF/robovm/ios/libs/jme3-ios-native.xcframework'
  19. }
  20. // buildNativeProjects is a string set to "true"
  21. if (Os.isFamily(Os.FAMILY_MAC) && buildNativeProjects == "true") {
  22. // build native libs and update stored pre-compiled libs to commit
  23. compileJava.dependsOn { buildNativeLib }
  24. } else {
  25. // TODO: (like android natives?) use pre-compiled native libs (not building new ones)
  26. // compileJava.dependsOn { copyPreCompiledLibs }
  27. println "Native build disable or not running on OSX"
  28. }
  29. jar.into("") { from "template" }