ssap_app/node_modules/@react-native-async-storage/async-storage/android/build.gradle

124 lines
3.9 KiB
Groovy

configurations {
compileClasspath
}
buildscript {
apply from: "config.gradle"
def kotlinVersion = ext.AsyncStorageConfig.kotlinVersion
def kspVersion = ext.AsyncStorageConfig.kspVersion
repositories {
mavenCentral()
google()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "com.google.devtools.ksp:symbol-processing-gradle-plugin:$kspVersion"
}
}
apply plugin: 'com.android.library'
apply from: 'config.gradle'
boolean isNewArchitectureEnabled = ext.AsyncStorageConfig.isNewArchitectureEnabled
boolean useNextStorage = ext.AsyncStorageConfig.useNextStorage
logger.info("[AsyncStorage] Config used: {}", ext.AsyncStorageConfig)
if (useNextStorage) {
apply plugin: 'com.google.devtools.ksp'
apply plugin: 'kotlin-android'
apply from: './testresults.gradle'
}
if (isNewArchitectureEnabled) {
apply plugin: "com.facebook.react"
}
android {
def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
if (agpVersion.tokenize('.')[0].toInteger() >= 7) {
namespace "com.reactnativecommunity.asyncstorage"
buildFeatures {
buildConfig true
}
}
compileSdkVersion project.ext.AsyncStorageConfig.compileSdkVersion
// Used to override the NDK path/version by allowing users to customize
// the NDK path/version from their root project (e.g. for M1 support)
if (rootProject.hasProperty("ndkPath")) {
ndkPath rootProject.ext.ndkPath
}
if (rootProject.hasProperty("ndkVersion")) {
ndkVersion rootProject.ext.ndkVersion
}
defaultConfig {
minSdkVersion project.ext.AsyncStorageConfig.minSdkVersion
targetSdkVersion project.ext.AsyncStorageConfig.targetSdkVersion
buildConfigField "Long", "AsyncStorage_db_size", "${project.ext.AsyncStorageConfig.databaseSizeMB}L"
buildConfigField "boolean", "AsyncStorage_useDedicatedExecutor", "${project.ext.AsyncStorageConfig.useDedicatedExecutor}"
buildConfigField "boolean", "AsyncStorage_useNextStorage", "${useNextStorage}"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", "${isNewArchitectureEnabled}"
}
lintOptions {
abortOnError false
}
if (useNextStorage) {
testOptions {
unitTests {
returnDefaultValues = true
includeAndroidResources = true
}
}
}
sourceSets.main {
java {
if (useNextStorage) {
srcDirs += 'src/kotlinPackage/java'
} else {
srcDirs += 'src/javaPackage/java'
}
if (!isNewArchitectureEnabled) {
srcDirs += 'src/oldarch/java'
}
}
}
}
repositories {
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "${project.ext.resolveModulePath("react-native")}/android"
}
google()
mavenCentral()
}
dependencies {
if (useNextStorage) {
def room_version = project.ext.AsyncStorageConfig.roomVersion
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.room:room-ktx:$room_version"
ksp "androidx.room:room-compiler:$room_version"
implementation project.ext.AsyncStorageLibs.coroutines
testImplementation project.ext.AsyncStorageLibs.testCoroutines
testImplementation project.ext.AsyncStorageLibs.testJunit
testImplementation project.ext.AsyncStorageLibs.testExtJunit
testImplementation project.ext.AsyncStorageLibs.testRunner
testImplementation project.ext.AsyncStorageLibs.testRules
testImplementation project.ext.AsyncStorageLibs.testRobolectric
testImplementation project.ext.AsyncStorageLibs.testTruth
}
implementation 'com.facebook.react:react-native:+' // from node_modules
}