telegram/TMessagesProj_App/build.gradle
2025-11-22 14:04:28 +01:00

282 lines
8.1 KiB
Groovy

apply plugin: 'com.android.application'
apply from: '../utils.gradle'
repositories {
mavenCentral()
google()
maven {
url 'https://www.jitpack.io'
content {
includeModule 'com.github.UnifiedPush', 'android-connector'
}
}
}
configurations {
compile.exclude module: 'support-v4'
}
configurations.all {
exclude group: 'androidx.recyclerview', module: 'recyclerview'
}
dependencies {
implementation project(':TMessagesProj')
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
}
android {
compileSdkVersion 35
buildToolsVersion '35.0.0'
defaultConfig.applicationId = "org.forkclient.messenger"
sourceSets.main.jniLibs.srcDirs = ['../TMessagesProj/jni/']
lintOptions {
disable 'MissingTranslation'
disable 'ExtraTranslation'
disable 'BlockedPrivateApi'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
coreLibraryDesugaringEnabled true
}
def fdroid = Utils['isFdroid']()
def appSuffix = fdroid ? "" : ".beta"
def flavorsConfig = fdroid ? "release" : "debug"
if (fdroid) {
defaultConfig.applicationId = "org.forkgram.messenger"
}
signingConfigs {
if (fdroid) {
debug {
storeFile file("")
storePassword ""
keyAlias ""
keyPassword ""
}
release {
storeFile file("")
storePassword ""
keyAlias ""
keyPassword ""
}
} else {
debug {
storeFile file("../TMessagesProj/config/release.keystore")
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
release {
storeFile file("../TMessagesProj/config/release.keystore")
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
debug {
debuggable true
jniDebuggable true
signingConfig signingConfigs.debug
applicationIdSuffix appSuffix
minifyEnabled true
shrinkResources false
multiDexEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro'
}
HA {
debuggable false
jniDebuggable false
signingConfig signingConfigs.debug
applicationIdSuffix appSuffix
minifyEnabled true
multiDexEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro'
}
standalone {
debuggable false
jniDebuggable false
signingConfig signingConfigs.release
applicationIdSuffix ".web"
minifyEnabled true
shrinkResources false
multiDexEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro'
}
release {
debuggable false
jniDebuggable false
signingConfig signingConfigs.release
applicationIdSuffix appSuffix
minifyEnabled true
shrinkResources false
multiDexEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro'
}
}
sourceSets.debug {
manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest.xml'
}
sourceSets.HA {
manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest.xml'
}
sourceSets.standalone {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest.xml'
}
sourceSets.release {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest.xml'
}
flavorDimensions "minApi"
productFlavors {
bundleAfat {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
ext {
abiVersionCode = 1
}
}
bundleAfat_SDK23 {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
sourceSets.debug {
manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml'
}
sourceSets.release {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_SDK23.xml'
}
sourceSets.standalone {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.xml'
}
minSdkVersion 23
ext {
abiVersionCode = 2
}
}
afat {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
sourceSets.debug {
manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml'
}
sourceSets.release {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_SDK23.xml'
}
sourceSets.standalone {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.xml'
}
ext {
abiVersionCode = 9
}
}
//
afatFd_v7a {
ndk {
abiFilters "armeabi-v7a"
}
sourceSets.debug {
manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml'
}
sourceSets.release {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_SDK23.xml'
}
sourceSets.standalone {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.xml'
}
ext {
abiVersionCode = 7
}
}
afatFd_v8a {
ndk {
abiFilters "arm64-v8a"
}
sourceSets.debug {
manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml'
}
sourceSets.release {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_SDK23.xml'
}
sourceSets.standalone {
manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.xml'
}
ext {
abiVersionCode = 8
}
}
//
}
defaultConfig.versionCode = Integer.parseInt(Utils['getVersionCode']())
applicationVariants.all { variant ->
variant.outputs.all { output ->
if (!fdroid) {
outputFileName = "app.apk"
}
output.versionCodeOverride = defaultConfig.versionCode * 10 + variant.productFlavors.get(0).abiVersionCode
}
}
task wrapper(type: Wrapper) {
gradleVersion = '7.0.4'
}
task prepareKotlinBuildScriptModel {
}
variantFilter { variant ->
def names = variant.flavors*.name
if (variant.buildType.name != "release" && !names.contains("afat")) {
setIgnore(true)
}
}
defaultConfig {
minSdkVersion 21
targetSdkVersion 35
versionName Utils['getVersionName']()
ndkVersion "21.4.7075529"
multiDexEnabled true
externalNativeBuild {
cmake {
version '3.10.2'
arguments '-DANDROID_STL=c++_static', '-DANDROID_PLATFORM=android-21' // , '-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON'
}
}
}
buildFeatures {
buildConfig = true
}
namespace 'org.telegram.messenger.regular'
lintOptions {
checkReleaseBuilds false
}
}