• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
<lambda>null2  * Copyright 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package androidx.build
17 
18 import androidx.build.license.CheckExternalDependencyLicensesTask
19 import org.gradle.api.JavaVersion
20 import org.gradle.api.Plugin
21 import org.gradle.api.Project
22 import org.gradle.api.plugins.JavaPluginConvention
23 import org.gradle.api.tasks.bundling.Jar
24 
25 class SupportKotlinLibraryPlugin : Plugin<Project> {
26     override fun apply(project: Project) {
27         val supportLibraryExtension = project.extensions.create("supportLibrary",
28                 SupportLibraryExtension::class.java, project)
29         apply(project, supportLibraryExtension)
30         project.apply(mapOf("plugin" to "kotlin"))
31         project.apply(mapOf("plugin" to "kotlin-kapt"))
32 
33         project.afterEvaluate {
34             val convention = project.convention.getPlugin(JavaPluginConvention::class.java)
35             if (supportLibraryExtension.java8Library) {
36                 convention.sourceCompatibility = JavaVersion.VERSION_1_8
37                 convention.targetCompatibility = JavaVersion.VERSION_1_8
38             } else {
39                 convention.sourceCompatibility = JavaVersion.VERSION_1_7
40                 convention.targetCompatibility = JavaVersion.VERSION_1_7
41             }
42 
43             project.tasks.withType(Jar::class.java) { jarTask ->
44                 jarTask.setReproducibleFileOrder(true)
45                 jarTask.setPreserveFileTimestamps(false)
46             }
47 
48         }
49 
50         CheckExternalDependencyLicensesTask.configure(project)
51     }
52 }
53