| /* |
| * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. |
| * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. |
| */ |
| |
| import groovy.lang.Closure |
| import org.gradle.api.file.FileCollection |
| import org.gradle.api.tasks.* |
| import org.gradle.internal.jvm.Jvm |
| import org.gradle.internal.jvm.inspection.JvmVersionDetector |
| import proguard.ClassSpecification |
| import java.io.File |
| import javax.inject.Inject |
| |
| |
| @CacheableTask |
| open class CacheableProguardTask @Inject constructor( |
| private val jvmVersionDetector: JvmVersionDetector |
| ) : proguard.gradle.ProGuardTask() { |
| |
| @Internal |
| var jdkHome: File? = null |
| |
| @get:Optional |
| @get:Input |
| internal val jdkMajorVersion: String? |
| get() = jdkHome?.let { jvmVersionDetector.getJavaVersion(Jvm.forHome(jdkHome)) }?.majorVersion |
| |
| @CompileClasspath |
| override fun getLibraryJarFileCollection(): FileCollection = super.getLibraryJarFileCollection().filter { libraryFile -> |
| jdkHome?.let { !libraryFile.absoluteFile.startsWith(it.absoluteFile) } ?: true |
| } |
| |
| @InputFiles |
| @PathSensitive(PathSensitivity.RELATIVE) |
| override fun getConfigurationFileCollection(): FileCollection = super.getConfigurationFileCollection() |
| |
| @InputFiles |
| @Classpath |
| override fun getInJarFileCollection(): FileCollection = super.getInJarFileCollection() |
| |
| @Optional |
| @OutputFiles |
| override fun getOutJarFileCollection(): FileCollection = super.getOutJarFileCollection() |
| |
| @get:Optional |
| @get:OutputFile |
| internal val printConfigurationFile: File? |
| get() = configuration.printConfiguration?.takeIf { it.path.isNotEmpty() } |
| |
| @Input |
| override fun getOutJarFilters(): MutableList<Any?> = super.getOutJarFilters() |
| |
| @Input |
| override fun getInJarFilters(): MutableList<Any?> = super.getInJarFilters() |
| |
| @Input |
| override fun getLibraryJarFilters(): MutableList<Any?> = super.getLibraryJarFilters() |
| |
| @Internal |
| override fun getOutJarFiles(): MutableList<Any?> = super.getOutJarFiles() |
| |
| @Internal |
| override fun getInJarFiles(): MutableList<Any?> = super.getInJarFiles() |
| |
| @Internal |
| override fun getInJarCounts(): MutableList<Any?> = super.getInJarCounts() |
| |
| @Internal |
| override fun getLibraryJarFiles(): MutableList<Any?> = super.getLibraryJarFiles() |
| |
| /* |
| * Inputs properly declared these methods so we don't override them |
| * |
| * configuration(configurationFiles: Any?) |
| * libraryjars(libraryJarFiles: Any?) |
| * libraryjars(filterArgs: MutableMap<Any?, Any?>?, libraryJarFiles: Any?) |
| * injars(inJarFiles: Any?) |
| * injars(filterArgs: MutableMap<Any?, Any?>?, inJarFiles: Any?) |
| * outjars(outJarFiles: Any?) |
| * outjars(filterArgs: MutableMap<Any?, Any?>?, outJarFiles: Any?) |
| * printconfiguration() |
| * printconfiguration(printConfiguration: Any?) |
| */ |
| |
| override fun renamesourcefileattribute() = throw NotImplementedError() |
| |
| override fun renamesourcefileattribute(newSourceFileAttribute: String?) = throw NotImplementedError() |
| |
| override fun dontshrink() = throw NotImplementedError() |
| |
| override fun assumenosideeffects(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun assumenosideeffects(classSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun keepnames(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepnames(keepArgs: MutableMap<Any?, Any?>?, classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepnames(keepClassSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun keepnames(keepClassSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun printmapping() = throw NotImplementedError() |
| |
| override fun printmapping(printMapping: Any?) = throw NotImplementedError() |
| |
| override fun keep(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keep(keepArgs: MutableMap<Any?, Any?>?, classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keep(keepClassSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun keep(keepClassSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun keepdirectories() = throw NotImplementedError() |
| |
| override fun keepdirectories(filter: String?) = throw NotImplementedError() |
| |
| override fun dontpreverify() = throw NotImplementedError() |
| |
| override fun dontnote() = throw NotImplementedError() |
| |
| override fun dontnote(filter: String?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getrenamesourcefileattribute(): Any? = throw NotImplementedError() |
| |
| override fun useuniqueclassmembernames() = throw NotImplementedError() |
| |
| override fun overloadaggressively() = throw NotImplementedError() |
| |
| @Internal |
| override fun getprintusage(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getforceprocessing(): Any? = throw NotImplementedError() |
| |
| override fun whyareyoukeeping(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun whyareyoukeeping(classSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun whyareyoukeeping(classSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun obfuscationdictionary(obfuscationDictionary: Any?) = throw NotImplementedError() |
| |
| override fun adaptclassstrings() = throw NotImplementedError() |
| |
| override fun adaptclassstrings(filter: String?) = throw NotImplementedError() |
| |
| override fun applymapping(applyMapping: Any?) = throw NotImplementedError() |
| |
| override fun mergeinterfacesaggressively() = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontwarn(): Any? = throw NotImplementedError() |
| |
| override fun ignorewarnings() = throw NotImplementedError() |
| |
| @Internal |
| override fun getaddconfigurationdebugging(): Any? = throw NotImplementedError() |
| |
| override fun field(memberSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getallowaccessmodification(): Any? = throw NotImplementedError() |
| |
| override fun constructor(memberSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun dontusemixedcaseclassnames() = throw NotImplementedError() |
| |
| @Internal |
| override fun getignorewarnings(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getkeepdirectories(): Any? = throw NotImplementedError() |
| |
| override fun classobfuscationdictionary(classObfuscationDictionary: Any?) = throw NotImplementedError() |
| |
| override fun verbose() = throw NotImplementedError() |
| |
| override fun optimizations(filter: String?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getuseuniqueclassmembernames(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getmicroedition(): Any? = throw NotImplementedError() |
| |
| override fun assumenoescapingparameters(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun assumenoescapingparameters(classSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getandroid(): Any? = throw NotImplementedError() |
| |
| override fun keeppackagenames() = throw NotImplementedError() |
| |
| override fun keeppackagenames(filter: String?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getoverloadaggressively(): Any? = throw NotImplementedError() |
| |
| override fun skipnonpubliclibraryclasses() = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontusemixedcaseclassnames(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontnote(): Any? = throw NotImplementedError() |
| |
| override fun assumenoexternalreturnvalues(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun assumenoexternalreturnvalues(classSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun target(targetClassVersion: String?) = throw NotImplementedError() |
| |
| override fun keepattributes() = throw NotImplementedError() |
| |
| override fun keepattributes(filter: String?) = throw NotImplementedError() |
| |
| override fun keepclassmembernames(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclassmembernames(keepArgs: MutableMap<Any?, Any?>?, classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclassmembernames(keepClassSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun keepclassmembernames(keepClassSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontpreverify(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getverbose(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getskipnonpubliclibraryclasses(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontoptimize(): Any? = throw NotImplementedError() |
| |
| override fun keepclasseswithmembernames(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclasseswithmembernames(keepArgs: MutableMap<Any?, Any?>?, classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclasseswithmembernames(keepClassSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun keepclasseswithmembernames(keepClassSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun keepclasseswithmembers(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclasseswithmembers(keepArgs: MutableMap<Any?, Any?>?, classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclasseswithmembers(keepClassSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun keepclasseswithmembers(keepClassSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getdump(): Any? = throw NotImplementedError() |
| |
| override fun printseeds() = throw NotImplementedError() |
| |
| override fun printseeds(printSeeds: Any?) = throw NotImplementedError() |
| |
| override fun dontoptimize() = throw NotImplementedError() |
| |
| override fun dontobfuscate() = throw NotImplementedError() |
| |
| override fun extendClassSpecifications( |
| classSpecifications: MutableList<Any?>?, |
| classSpecification: ClassSpecification? |
| ): MutableList<Any?> = throw NotImplementedError() |
| |
| override fun allowaccessmodification() = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontobfuscate(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getprintmapping(): Any? = throw NotImplementedError() |
| |
| override fun flattenpackagehierarchy() = throw NotImplementedError() |
| |
| override fun flattenpackagehierarchy(flattenPackageHierarchy: String?) = throw NotImplementedError() |
| |
| override fun android() = throw NotImplementedError() |
| |
| override fun dump() = throw NotImplementedError() |
| |
| override fun dump(dump: Any?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontshrink(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getkeepattributes(): Any? = throw NotImplementedError() |
| |
| override fun microedition() = throw NotImplementedError() |
| |
| override fun keepparameternames() = throw NotImplementedError() |
| |
| override fun addconfigurationdebugging() = throw NotImplementedError() |
| |
| override fun packageobfuscationdictionary(packageObfuscationDictionary: Any?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getdontskipnonpubliclibraryclassmembers(): Any? = throw NotImplementedError() |
| |
| override fun dontskipnonpubliclibraryclassmembers() = throw NotImplementedError() |
| |
| @Internal |
| override fun getprintconfiguration(): Any? = throw NotImplementedError() |
| |
| override fun forceprocessing() = throw NotImplementedError() |
| |
| override fun keepclassmembers(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclassmembers(keepArgs: MutableMap<Any?, Any?>?, classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun keepclassmembers(keepClassSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| override fun keepclassmembers(keepClassSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getmergeinterfacesaggressively(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getConfigurationFiles(): MutableList<Any?> = throw NotImplementedError() |
| |
| @Internal |
| override fun getkeeppackagenames(): Any? = throw NotImplementedError() |
| |
| override fun assumevalues(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun assumevalues(classSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun printusage() = throw NotImplementedError() |
| |
| override fun printusage(printUsage: Any?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getprintseeds(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getadaptresourcefilenames(): Any? = throw NotImplementedError() |
| |
| override fun assumenoexternalsideeffects(classSpecificationString: String?) = throw NotImplementedError() |
| |
| override fun assumenoexternalsideeffects(classSpecificationArgs: MutableMap<Any?, Any?>?, classMembersClosure: Closure<*>?) = throw NotImplementedError() |
| |
| override fun dontwarn() = throw NotImplementedError() |
| |
| override fun dontwarn(filter: String?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getrepackageclasses(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getadaptresourcefilecontents(): Any? = throw NotImplementedError() |
| |
| @Internal |
| override fun getflattenpackagehierarchy(): Any? = throw NotImplementedError() |
| |
| override fun optimizationpasses(optimizationPasses: Int) = throw NotImplementedError() |
| |
| override fun adaptresourcefilenames() = throw NotImplementedError() |
| |
| override fun adaptresourcefilenames(filter: String?) = throw NotImplementedError() |
| |
| override fun method(memberSpecificationArgs: MutableMap<Any?, Any?>?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getadaptclassstrings(): Any? = throw NotImplementedError() |
| |
| override fun repackageclasses() = throw NotImplementedError() |
| |
| override fun repackageclasses(repackageClasses: String?) = throw NotImplementedError() |
| |
| @Internal |
| override fun getkeepparameternames(): Any? = throw NotImplementedError() |
| |
| override fun adaptresourcefilecontents() = throw NotImplementedError() |
| |
| override fun adaptresourcefilecontents(filter: String?) = throw NotImplementedError() |
| } |