plugins { id 'com.android.application' } def mobileGlEnvString = { backendType -> [ LIBGL_ES : '3', POJAV_RENDERER : 'opengles3', MOBILEGL_BACKEND_TYPE: backendType, ].collect { key, value -> "${key}=${value}" }.join(':') } def signingStoreFile = file('../keystore.jks') def signingStorePassword = System.getenv('SIGNING_STORE_PASSWORD') def signingKeyAlias = System.getenv('SIGNING_KEY_ALIAS') def signingKeyPassword = System.getenv('SIGNING_KEY_PASSWORD') def releaseSigningReady = signingStoreFile.exists() && signingStorePassword && signingKeyAlias && signingKeyPassword android { namespace 'top.mobilegl.plugin' compileSdk 34 ndkVersion '27.3.13750724' defaultConfig { minSdk 26 targetSdk 34 versionCode 1 versionName 'dev' ndk { abiFilters 'arm64-v8a' } } flavorDimensions 'backend' productFlavors { espryt { dimension 'backend' applicationId 'top.mobilegl.plugin.espryt' def env = mobileGlEnvString('DirectGLES') manifestPlaceholders = [ appLabel: 'MobileGL Espryt', des : 'MobileGL Espryt', renderer: 'MobileGL Espryt:libMobileGL.so:/libMobileGL.so', boatEnv : env, pojavEnv: env, ] } magma { dimension 'backend' applicationId 'top.mobilegl.plugin.magma' def env = mobileGlEnvString('DirectVulkan') manifestPlaceholders = [ appLabel: 'MobileGL Magma', des : 'MobileGL Magma', renderer: 'MobileGL Magma:libMobileGL.so:/libMobileGL.so', boatEnv : env, pojavEnv: env, ] } } if (releaseSigningReady) { signingConfigs { release { storeFile signingStoreFile storePassword signingStorePassword keyAlias signingKeyAlias keyPassword signingKeyPassword } } } buildTypes { release { minifyEnabled false if (releaseSigningReady) { signingConfig signingConfigs.release } } } packaging { jniLibs { useLegacyPackaging true excludes += ['**/libSPIRV-Tools-shared.so'] } } } android.applicationVariants.configureEach { variant -> variant.outputs.configureEach { outputFileName = "MobileGL-${variant.flavorName.capitalize()}-${variant.buildType.name}.apk" } } dependencies { implementation project(':MobileGL') }