Brandon Presley
13b340f5be
Every day at 6am (also immediately when toggled) we will copy the massive.db file to the Download directory.
210 lines
7.9 KiB
Groovy
210 lines
7.9 KiB
Groovy
apply plugin: "com.android.application"
|
|
apply plugin: "kotlin-android"
|
|
|
|
project.ext.react = [
|
|
enableHermes: true, // clean and rebuild if changing
|
|
]
|
|
|
|
project.ext.vectoricons = [
|
|
iconFontNames: ['MaterialIcons.ttf']
|
|
]
|
|
|
|
apply from: "../../node_modules/react-native/react.gradle"
|
|
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
|
|
|
|
def enableSeparateBuildPerCPUArchitecture = true
|
|
def enableProguardInReleaseBuilds = true
|
|
def jscFlavor = 'org.webkit:android-jsc:+'
|
|
def enableHermes = project.ext.react.get("enableHermes", true);
|
|
|
|
def reactNativeArchitectures() {
|
|
def value = project.getProperties().get("reactNativeArchitectures")
|
|
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
}
|
|
|
|
android {
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
}
|
|
|
|
packagingOptions {
|
|
jniLibs {
|
|
pickFirsts += ['**/armeabi-v7a/libfolly_runtime.so', '**/x86/libfolly_runtime.so', '**/arm64-v8a/libfolly_runtime.so', '**/x86_64/libfolly_runtime.so']
|
|
}
|
|
}
|
|
ndkVersion rootProject.ext.ndkVersion
|
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
|
|
|
defaultConfig {
|
|
applicationId "com.massive"
|
|
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
|
|
minSdkVersion rootProject.ext.minSdkVersion
|
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
|
versionCode 36156
|
|
versionName "1.130"
|
|
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
|
|
|
if (isNewArchitectureEnabled()) {
|
|
externalNativeBuild {
|
|
ndkBuild {
|
|
arguments "APP_PLATFORM=android-21",
|
|
"APP_STL=c++_shared",
|
|
"NDK_TOOLCHAIN_VERSION=clang",
|
|
"GENERATED_SRC_DIR=$buildDir/generated/source",
|
|
"PROJECT_BUILD_DIR=$buildDir",
|
|
"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
|
|
"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build",
|
|
"NODE_MODULES_DIR=$rootDir/../node_modules"
|
|
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
|
|
cppFlags "-std=c++17"
|
|
targets "massive_appmodules"
|
|
}
|
|
}
|
|
if (!enableSeparateBuildPerCPUArchitecture) {
|
|
ndk {
|
|
abiFilters(*reactNativeArchitectures())
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (isNewArchitectureEnabled()) {
|
|
externalNativeBuild {
|
|
ndkBuild {
|
|
path "$projectDir/src/main/jni/Android.mk"
|
|
}
|
|
}
|
|
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
|
|
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
|
|
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
|
|
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
|
|
into("$buildDir/react-ndk/exported")
|
|
}
|
|
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
|
|
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
|
|
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
|
|
into("$buildDir/react-ndk/exported")
|
|
}
|
|
afterEvaluate {
|
|
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
|
|
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
|
|
|
|
configureNdkBuildRelease.dependsOn(preReleaseBuild)
|
|
configureNdkBuildDebug.dependsOn(preDebugBuild)
|
|
reactNativeArchitectures().each { architecture ->
|
|
tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
|
|
dependsOn("preDebugBuild")
|
|
}
|
|
tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
|
|
dependsOn("preReleaseBuild")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
splits {
|
|
abi {
|
|
reset()
|
|
enable enableSeparateBuildPerCPUArchitecture
|
|
universalApk false
|
|
include(*reactNativeArchitectures())
|
|
}
|
|
}
|
|
signingConfigs {
|
|
release {
|
|
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
|
|
storeFile file(MYAPP_UPLOAD_STORE_FILE)
|
|
storePassword MYAPP_UPLOAD_STORE_PASSWORD
|
|
keyAlias MYAPP_UPLOAD_KEY_ALIAS
|
|
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
|
|
}
|
|
}
|
|
debug {
|
|
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
|
|
storeFile file(MYAPP_UPLOAD_STORE_FILE)
|
|
storePassword MYAPP_UPLOAD_STORE_PASSWORD
|
|
keyAlias MYAPP_UPLOAD_KEY_ALIAS
|
|
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
|
|
}
|
|
}
|
|
}
|
|
buildFeatures {
|
|
viewBinding true
|
|
}
|
|
buildTypes {
|
|
debug {
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
release {
|
|
signingConfig signingConfigs.release
|
|
minifyEnabled enableProguardInReleaseBuilds
|
|
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'androidx.appcompat:appcompat:1.4.1'
|
|
implementation 'com.google.android.material:material:1.4.+'
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
|
implementation 'androidx.databinding:databinding-runtime:7.1.2'
|
|
def work_version = "2.7.1"
|
|
|
|
implementation "androidx.work:work-runtime:$work_version"
|
|
implementation "androidx.work:work-runtime-ktx:$work_version"
|
|
implementation "androidx.work:work-rxjava2:$work_version"
|
|
androidTestImplementation "androidx.work:work-testing:$work_version"
|
|
implementation "androidx.work:work-multiprocess:$work_version"
|
|
implementation fileTree(dir: "libs", include: ["*.jar"])
|
|
implementation "com.facebook.react:react-native:+" // From node_modules
|
|
implementation "androidx.core:core-ktx:1.8.0"
|
|
implementation project(':react-native-sqlite-storage')
|
|
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
|
|
|
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
|
exclude group: 'com.facebook.fbjni'
|
|
}
|
|
|
|
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
|
|
exclude group: 'com.facebook.flipper'
|
|
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
|
|
}
|
|
|
|
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
|
|
exclude group: 'com.facebook.flipper'
|
|
}
|
|
|
|
if (enableHermes) {
|
|
implementation("com.facebook.react:hermes-engine:+") { // From node_modules
|
|
exclude group: 'com.facebook.fbjni'
|
|
}
|
|
} else {
|
|
implementation jscFlavor
|
|
}
|
|
}
|
|
|
|
if (isNewArchitectureEnabled()) {
|
|
configurations.all {
|
|
resolutionStrategy.dependencySubstitution {
|
|
substitute(module("com.facebook.react:react-native"))
|
|
.using(project(":ReactAndroid"))
|
|
.because("On New Architecture we're building React Native from source")
|
|
substitute(module("com.facebook.react:hermes-engine"))
|
|
.using(project(":ReactAndroid:hermes-engine"))
|
|
.because("On New Architecture we're building Hermes from source")
|
|
}
|
|
}
|
|
}
|
|
|
|
task copyDownloadableDepsToLibs(type: Copy) {
|
|
from configurations.implementation
|
|
into 'libs'
|
|
}
|
|
|
|
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
|
|
|
def isNewArchitectureEnabled() {
|
|
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
}
|