buildscript { repositories { mavenCentral() } dependencies { classpath "org.multi-os-engine:moe-gradle:$moeVersion" } } 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 tasks.register('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 = "LIBGDX_NATIVES = " def outFlags = file("xcode/ios-moe/custom.xcconfig"); outFlags.write LD_FLAGS def proguard = file("proguard.append.cfg") if (!proguard.exists()) { proguard = new File("proguard.append.cfg") proguard << "\n-keep class com.badlogic.** { *; }\n" proguard << "-keep enum com.badlogic.** { *; }\n" } } } configurations { natives } dependencies { implementation "io.github.berstanio:gdx-backend-moe:$moeGdxVersion" implementation project(':core') compileOnly "org.graalvm.sdk:graal-sdk:$moeGraalvmVersion" natives "com.badlogicgames.gdx:gdx-backend-robovm-metalangle:$gdxVersion" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" } // Setup Multi-OS Engine moe { xcode { project = 'xcode/ios-moe.xcodeproj' mainTarget = 'ios-moe' testTarget = 'ios-moe-Test' } nativeImage { options = ["--features=own.planetslivewallpaper.SVMRegistrationFeature"] } } moeMainReleaseIphoneosXcodeBuild.dependsOn copyNatives moeMainDebugIphoneosXcodeBuild.dependsOn copyNatives moeMainReleaseIphonesimulatorXcodeBuild.dependsOn copyNatives moeMainDebugIphonesimulatorXcodeBuild.dependsOn copyNatives if (System.getenv('PLATFORM_NAME') != null) { moeXcodeInternal.dependsOn copyNatives }