124 lines
3.9 KiB
Groovy
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
|
|
} |