buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:9.2.0" } } def reactNativeArchitectures() { def value = rootProject.getProperties().get("reactNativeArchitectures") return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] } def isNewArchitectureEnabled() { return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true" } apply plugin: "com.android.library" apply plugin: 'org.jetbrains.kotlin.android' apply from: '../nitrogen/generated/android/Omni+autolinking.gradle' apply from: "./fix-prefab.gradle" if (isNewArchitectureEnabled()) { apply plugin: "com.facebook.react" } def getExtOrDefault(name) { return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["Omni_" + name] } def getExtOrIntegerDefault(name) { return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["Omni_" + name]).toInteger() } android { namespace "dev.zoriya.omni" ndkVersion getExtOrDefault("ndkVersion") compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") defaultConfig { minSdkVersion getExtOrIntegerDefault("minSdkVersion") targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() ndk { abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' } externalNativeBuild { cmake { cppFlags "-frtti -fexceptions -Wall -Wextra -fstack-protector-all" arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" abiFilters (*reactNativeArchitectures()) buildTypes { debug { cppFlags "-O1 -g" } release { cppFlags "-O2" } } } } } externalNativeBuild { cmake { path "CMakeLists.txt" } } packagingOptions { excludes = [ "META-INF", "META-INF/**", "**/libc++_shared.so", "**/libfbjni.so", "**/libjsi.so", "**/libfolly_json.so", "**/libfolly_runtime.so", "**/libglog.so", "**/libhermes.so", "**/libhermes-executor-debug.so", "**/libhermes_executor.so", "**/libreactnative.so", "**/libreactnativejni.so", "**/libturbomodulejsijni.so", "**/libreact_nativemodule_core.so", "**/libjscexecutor.so" ] } buildFeatures { buildConfig true prefab true } buildTypes { release { minifyEnabled false } } lintOptions { disable "GradleCompatible" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } sourceSets { main { jniLibs.srcDirs = ['libs'] if (isNewArchitectureEnabled()) { java.srcDirs += [ // React Codegen files "${project.buildDir}/generated/source/codegen/java" ] } } } } repositories { mavenCentral() google() } dependencies { // For < 0.71, this will be from the local maven repo // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // Add a dependency on NitroModules implementation project(":react-native-nitro-modules") implementation("dev.jdtech.mpv:libmpv:1.0.0") implementation("androidx.media3:media3-common:1.4.1") implementation("androidx.media3:media3-session:1.4.1") implementation("androidx.media3:media3-ui:1.4.1") } if (isNewArchitectureEnabled()) { react { jsRootDir = file("../src/") libraryName = "Omni" codegenJavaPackageName = "dev.zoriya.omni" } }