buildscript { repositories { google() // For Gradle 4.0+ mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.1.3' } } apply plugin: 'com.android.application' android { // This is the name of the generated apk file, which will have // -debug.apk or -release.apk appended to it. // The filename doesn't effect the Android installation process. // Use only letters to remain compatible with the package name. project.archivesBaseName = "jkxr" defaultConfig { // Gradle replaces the manifest package with this value, which must // be unique on a system. If you don't change it, a new app // will replace an older one. applicationId "com.drbeef." + project.archivesBaseName externalNativeBuild { ndk { abiFilters 'arm64-v8a' } ndkBuild { def numProcs = Runtime.runtime.availableProcessors() arguments "V=0", "-j$numProcs", "-C$project.buildDir.parent", "APP_PLATFORM=android-29", "NDK_TOOLCHAIN_VERSION=clang", "APP_STL=c++_static" abiFilters 'arm64-v8a' } } minSdkVersion 29 targetSdkVersion 29 } externalNativeBuild { ndkBuild { path file('jni/Android.mk') } } signingConfigs { def keystorePath = (project.hasProperty('key.store')) ? new File(project.getProperty('key.store')) : project.file('android.debug.keystore') def keystorePassword = (project.hasProperty('key.store.password')) ? project.getProperty('key.store.password') : 'android' def keystoreKeyAlias = (project.hasProperty('key.alias')) ? project.getProperty('key.alias') : 'androiddebugkey' def keystoreKeyPassword = (project.hasProperty('key.alias.password')) ? project.getProperty('key.alias.password') : 'android' debug { storeFile keystorePath storePassword keystorePassword keyAlias keystoreKeyAlias keyPassword keystoreKeyPassword v2SigningEnabled true } release { storeFile keystorePath storePassword keystorePassword keyAlias keystoreKeyAlias keyPassword keystoreKeyPassword v2SigningEnabled true } } buildTypes { debug { signingConfig signingConfigs.debug debuggable true jniDebuggable true externalNativeBuild { ndkBuild { arguments "NDK_DEBUG=1","USE_ASAN=1" } } } release { signingConfig signingConfigs.release debuggable false jniDebuggable false externalNativeBuild { ndkBuild { arguments "NDK_DEBUG=0","USE_ASAN=0" } } } } sourceSets.main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['../../java'] jniLibs.srcDir 'libs' res.srcDirs = ['../../res'] assets.srcDirs = ['../../assets'] jni.srcDirs = ['jni'] } lintOptions { checkReleaseBuilds false disable 'ExpiredTargetSdkVersion' } //packagingOptions { // exclude 'lib/arm64-v8a/libopenxr_loader.so' //} compileOptions { sourceCompatibility = '1.8' targetCompatibility = '1.8' } compileSdkVersion = 29 buildToolsVersion = '29.0.3' ndkVersion '21.1.6352462' } dependencies { implementation "com.android.support:support-compat:28.0.0" implementation "com.android.support:support-core-utils:28.0.0" implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) } repositories { google() } // Workaround to fix issue in Android Studio Chipmunk 2021.2.1 and later // where opening a project would result in a 'prepareKotlinBuildScriptModel' // not found error if (!tasks.findByName("prepareKotlinBuildScriptModel")) { tasks.register("prepareKotlinBuildScriptModel") {} } task packBaseResources(type: Zip) { from "../../z_vr_assets_base/" destinationDir file("../../assets/") archiveName "z_vr_assets_base.pk3" } task packJOResources(type: Zip) { from "../../z_vr_assets_jko/" destinationDir file("../../assets/") archiveName "z_vr_assets_jko.pk3" } task packJAResources(type: Zip) { from "../../z_vr_assets_jka/" destinationDir file("../../assets/") archiveName "z_vr_assets_jka.pk3" } tasks.matching {it.name.startsWith("assemble")}.all { Task task -> task.dependsOn([packBaseResources, packJOResources, packJAResources]) }