Brandon Presley
7b401388b5
Otherwise the minute you enter something it becomes the last set. Much more useful to be showing yesterdays working set instead.
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 36155
|
|
versionName "1.129"
|
|
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"
|
|
}
|