summaryrefslogtreecommitdiff
path: root/main/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'main/build.gradle.kts')
-rw-r--r--main/build.gradle.kts178
1 files changed, 119 insertions, 59 deletions
diff --git a/main/build.gradle.kts b/main/build.gradle.kts
index ac2eeae0..7a7f2c6b 100644
--- a/main/build.gradle.kts
+++ b/main/build.gradle.kts
@@ -6,22 +6,29 @@ import com.android.build.gradle.api.ApplicationVariant
*/
plugins {
- id("com.android.application")
+ alias(libs.plugins.android.application)
+ alias(libs.plugins.kotlin.android)
id("checkstyle")
-
- id("kotlin-android")
}
android {
- compileSdk = 33
+ buildToolsVersion = "33.0.1"
+ buildFeatures {
+ aidl = true
+ }
+ namespace = "de.blinkt.openvpn"
+ compileSdk = 34
+ //compileSdkPreview = "UpsideDownCake"
- ndkVersion = "24.0.8215888"
+ // Also update runcoverity.sh
+ ndkVersion = "25.2.9519653"
defaultConfig {
minSdk = 21
- targetSdk = 33
- versionCode = 193
- versionName = "0.7.38"
+ targetSdk = 34
+ //targetSdkPreview = "UpsideDownCake"
+ versionCode = 204
+ versionName = "0.7.49"
externalNativeBuild {
cmake {
}
@@ -29,7 +36,7 @@ android {
}
- testOptions.unitTests.isIncludeAndroidResources = true
+ //testOptions.unitTests.isIncludeAndroidResources = true
externalNativeBuild {
cmake {
@@ -71,6 +78,20 @@ android {
enableV2Signing = true
}
+ create("releaseOvpn2") {
+ // ~/.gradle/gradle.properties
+ val keystoreO2File: String? by project
+ storeFile = keystoreO2File?.let { file(it) }
+ val keystoreO2Password: String? by project
+ storePassword = keystoreO2Password
+ val keystoreO2AliasPassword: String? by project
+ keyPassword = keystoreO2AliasPassword
+ val keystoreO2Alias: String? by project
+ keyAlias = keystoreO2Alias
+ enableV1Signing = true
+ enableV2Signing = true
+ }
+
}
lint {
@@ -79,32 +100,51 @@ android {
disable += setOf("MissingTranslation", "UnsafeNativeCodeLocation")
}
- buildTypes {
- getByName("release") {
- if (project.hasProperty("icsopenvpnDebugSign")) {
- logger.warn("property icsopenvpnDebugSign set, using debug signing for release")
- signingConfig = android.signingConfigs.getByName("debug")
- } else {
- signingConfig = signingConfigs.getByName("release")
- }
- }
- }
- flavorDimensions += listOf("implementation")
+
+ flavorDimensions += listOf("implementation", "ovpnimpl")
productFlavors {
create("ui") {
dimension = "implementation"
- buildConfigField("boolean", "openvpn3", "true")
}
+
create("skeleton") {
dimension = "implementation"
+ }
+
+ create("ovpn23")
+ {
+ dimension = "ovpnimpl"
+ buildConfigField("boolean", "openvpn3", "true")
+ }
+
+ create("ovpn2")
+ {
+ dimension = "ovpnimpl"
+ versionNameSuffix = "-o2"
buildConfigField("boolean", "openvpn3", "false")
}
}
+ buildTypes {
+ getByName("release") {
+ if (project.hasProperty("icsopenvpnDebugSign")) {
+ logger.warn("property icsopenvpnDebugSign set, using debug signing for release")
+ signingConfig = android.signingConfigs.getByName("debug")
+ } else {
+ productFlavors["ovpn23"].signingConfig = signingConfigs.getByName("release")
+ productFlavors["ovpn2"].signingConfig = signingConfigs.getByName("releaseOvpn2")
+ }
+ }
+ }
+
compileOptions {
- targetCompatibility = JavaVersion.VERSION_1_8
- sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_17
+ sourceCompatibility = JavaVersion.VERSION_17
+ }
+
+ kotlinOptions {
+ jvmTarget = "17"
}
splits {
@@ -116,7 +156,36 @@ android {
}
}
+ packaging {
+ jniLibs {
+ useLegacyPackaging = true
+ }
+ }
+
+ bundle {
+ codeTransparency {
+ signing {
+ val keystoreTPFile: String? by project
+ storeFile = keystoreTPFile?.let { file(it) }
+ val keystoreTPPassword: String? by project
+ storePassword = keystoreTPPassword
+ val keystoreTPAliasPassword: String? by project
+ keyPassword = keystoreTPAliasPassword
+ val keystoreTPAlias: String? by project
+ keyAlias = keystoreTPAlias
+
+ if (keystoreTPFile?.isEmpty() ?: true)
+ println("keystoreTPFile not set, disabling transparency signing")
+ if (keystoreTPPassword?.isEmpty() ?: true)
+ println("keystoreTPPassword not set, disabling transparency signing")
+ if (keystoreTPAliasPassword?.isEmpty() ?: true)
+ println("keystoreTPAliasPassword not set, disabling transparency signing")
+ if (keystoreTPAlias?.isEmpty() ?: true)
+ println("keyAlias not set, disabling transparency signing")
+ }
+ }
+ }
}
var swigcmd = "swig"
@@ -162,40 +231,31 @@ android.applicationVariants.all(object : Action<ApplicationVariant> {
dependencies {
// https://maven.google.com/web/index.html
- // https://developer.android.com/jetpack/androidx/releases/core
- val preferenceVersion = "1.2.0"
- val coreVersion = "1.7.0"
- val materialVersion = "1.5.0"
- val fragment_version = "1.4.1"
-
-
- implementation("androidx.annotation:annotation:1.3.0")
- implementation("androidx.core:core:$coreVersion")
-
-
- // Is there a nicer way to do this?
- dependencies.add("uiImplementation", "androidx.constraintlayout:constraintlayout:2.1.3")
- dependencies.add("uiImplementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21")
- dependencies.add("uiImplementation", "androidx.cardview:cardview:1.0.0")
- dependencies.add("uiImplementation", "androidx.recyclerview:recyclerview:1.2.1")
- dependencies.add("uiImplementation", "androidx.appcompat:appcompat:1.4.1")
- dependencies.add("uiImplementation", "com.github.PhilJay:MPAndroidChart:v3.1.0")
- dependencies.add("uiImplementation", "com.squareup.okhttp3:okhttp:4.9.3")
- dependencies.add("uiImplementation", "androidx.core:core:$coreVersion")
- dependencies.add("uiImplementation", "androidx.core:core-ktx:$coreVersion")
- dependencies.add("uiImplementation", "androidx.fragment:fragment-ktx:$fragment_version")
- dependencies.add("uiImplementation", "androidx.preference:preference:$preferenceVersion")
- dependencies.add("uiImplementation", "androidx.preference:preference-ktx:$preferenceVersion")
- dependencies.add("uiImplementation", "com.google.android.material:material:$materialVersion")
- dependencies.add("uiImplementation", "androidx.webkit:webkit:1.4.0")
- dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1")
- dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-runtime-ktx:2.4.1")
- dependencies.add("uiImplementation","androidx.security:security-crypto:1.0.0")
-
-
- testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21")
- testImplementation("junit:junit:4.13.2")
- testImplementation("org.mockito:mockito-core:3.9.0")
- testImplementation("org.robolectric:robolectric:4.5.1")
- testImplementation("androidx.test:core:1.4.0")
+ implementation(libs.androidx.annotation)
+ implementation(libs.androidx.core.ktx)
+
+ uiImplementation(libs.android.view.material)
+ uiImplementation(libs.androidx.appcompat)
+ uiImplementation(libs.androidx.cardview)
+ uiImplementation(libs.androidx.constraintlayout)
+ uiImplementation(libs.androidx.core.ktx)
+ uiImplementation(libs.androidx.fragment.ktx)
+ uiImplementation(libs.androidx.lifecycle.runtime.ktx)
+ uiImplementation(libs.androidx.lifecycle.viewmodel.ktx)
+ uiImplementation(libs.androidx.preference.ktx)
+ uiImplementation(libs.androidx.recyclerview)
+ uiImplementation(libs.androidx.security.crypto)
+ uiImplementation(libs.androidx.webkit)
+ uiImplementation(libs.kotlin)
+ uiImplementation(libs.mpandroidchart)
+ uiImplementation(libs.square.okhttp)
+
+ testImplementation(libs.androidx.test.core)
+ testImplementation(libs.junit)
+ testImplementation(libs.kotlin)
+ testImplementation(libs.mockito.core)
+ testImplementation(libs.robolectric)
}
+
+fun DependencyHandler.uiImplementation(dependencyNotation: Any): Dependency? =
+ add("uiImplementation", dependencyNotation) \ No newline at end of file