From 29bb93cdf753ce3eb5791c641580325926f01900 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 22 Dec 2020 16:22:19 +0530 Subject: gradle: update property set with AGP 7 experimental flags Signed-off-by: Harsh Shandilya --- gradle.properties | 68 ++++++++++++++++++++++++++++++++++++++++------------- tunnel/build.gradle | 3 --- ui/build.gradle | 7 ++++-- 3 files changed, 57 insertions(+), 21 deletions(-) diff --git a/gradle.properties b/gradle.properties index 670f7d0a..b91f5409 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,12 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +org.gradle.parallel=true +org.gradle.configureondemand=true +org.gradle.caching=true -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html +# Enable Kotlin incremental compilation +kotlin.incremental=true # Enable AndroidX support android.useAndroidX=true @@ -14,21 +15,56 @@ android.useAndroidX=true # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx1536m -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true +# Turn off AP discovery in compile path to enable compile avoidance +kapt.include.compile.classpath=false -# https://jakewharton.com/increased-accuracy-of-aapt2-keep-rules/ -android.useMinimalKeepRules=true +# Enable AndroidX +android.useAndroidX=true -# Enable rudimentary R class namespacing where each library only contains +# Enable non-transitive R class namespacing where each library only contains # references to the resources it declares instead of declarations plus all # transitive dependency references. -android.namespacedRClass=true +android.nonTransitiveRClass=true + +# Experimental AGP flags +# Generate compile-time only R class for app modules. +android.enableAppCompileTimeRClass=true +# Keep AAPT2 daemons alive between incremental builds. +android.keepWorkerActionServicesBetweenBuilds=true +# Make R fields non-final to improve build speeds. +# http://tools.android.com/tips/non-constant-fields +android.nonFinalResIds=true +# Enable the newly refactored resource shrinker. +android.experimental.enableNewResourceShrinker=true +# Enable precise shrinking in the new resource shrinker. +android.experimental.enableNewResourceShrinker.preciseShrinking=true +# Generate manifest class as a .class directly rather than a Java source file. +android.generateManifestClass=true +# Generate the text map of source sets and absolute paths to allow +# generating relative paths from absolute paths later in the build. +android.experimental.enableSourceSetPathsMap=true +# Use relative paths for better Gradle caching of library build tasks +android.experimental.cacheCompileLibResources=true + +# Default Android build features +# Disable BuildConfig generation by default +android.defaults.buildfeatures.buildconfig=false +# Disable AIDL stub generation by default +android.defaults.buildfeatures.aidl=false +# Disable RenderScript compilation by default +android.defaults.buildfeatures.renderscript=false +# Disable resource values generation by default in libraries +android.defaults.buildfeatures.resvalues=false +# Disable shader compilation by default +android.defaults.buildfeatures.shaders=false +# Disable Android resource processing by default +android.library.defaults.buildfeatures.androidresources=false # Suppress warnings for some features that aren't yet stabilized -android.suppressUnsupportedOptionWarnings=android.enableR8.fullMode,android.useMinimalKeepRules,android.namespacedRClass,android.suppressUnsupportedOptionWarnings +android.suppressUnsupportedOptionWarnings=android.keepWorkerActionServicesBetweenBuilds,\ + android.experimental.enableNewResourceShrinker,android.experimental.enableNewResourceShrinker.preciseShrinking,\ + android.enableAppCompileTimeRClass,android.experimental.enableSourceSetPathsMap,android.experimental.cacheCompileLibResources,\ + android.suppressUnsupportedOptionWarnings # OSSRH sometimes struggles with slow deployments, so this makes Gradle # more tolerant to those delays. diff --git a/tunnel/build.gradle b/tunnel/build.gradle index 7268a4d9..b6183eae 100644 --- a/tunnel/build.gradle +++ b/tunnel/build.gradle @@ -22,9 +22,6 @@ android { path 'tools/CMakeLists.txt' } } - libraryVariants.all { - it.generateBuildConfigProvider.configure { enabled = false } - } testOptions.unitTests.all { testLogging { events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' diff --git a/ui/build.gradle b/ui/build.gradle index 53f24163..b0b92ba4 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -13,8 +13,11 @@ final def keystorePropertiesFile = rootProject.file("keystore.properties") android { compileSdkVersion 30 - buildFeatures.dataBinding = true - buildFeatures.viewBinding = true + buildFeatures { + buildConfig = true + dataBinding = true + viewBinding = true + } defaultConfig { applicationId 'com.wireguard.android' minSdkVersion 21 -- cgit v1.2.3-59-g8ed1b