普通文本  |  80行  |  2.53 KB

/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.SupportLibraryExtension
import androidx.build.SupportConfig

apply plugin: androidx.build.SupportKotlinLibraryPlugin
apply plugin: 'java-gradle-plugin'

ext.generatedResources = "$buildDir/generated/resources"

sourceSets {
    test.java.srcDirs += 'src/tests/kotlin'
    test.resources.srcDirs += generatedResources
}

dependencies {
    compile build_libs.gradle
    compile project(":navigation:navigation-safe-args-generator")
    compile gradleApi()
    compile(GSON)
    testCompile gradleTestKit()
    testCompile(JUNIT)
}

task generateSdkResource() {
    inputs.property("compileSdkVersion", SupportConfig.CURRENT_SDK_VERSION)
    inputs.property("buildToolsVersion", SupportConfig.BUILD_TOOLS_VERSION)
    outputs.dir(generatedResources)
    doLast {
        // Properties.write will have a timestamp, that invalidates the task,
        // so we don't use it and write a file manually
        new File(generatedResources, "sdk.prop").withWriter('UTF-8') { writer ->
            writer.write("compileSdkVersion=$SupportConfig.CURRENT_SDK_VERSION\n")
            writer.write("buildToolsVersion=$SupportConfig.BUILD_TOOLS_VERSION\n")
        }
    }
}

test {
    testLogging { showStandardStreams = true }
}

tasks["compileTestJava"].dependsOn generateSdkResource

gradlePlugin {
    plugins {
        safeargs {
            id = "androidx.navigation.safeargs"
            implementationClass = "androidx.navigation.safeargs.gradle.SafeArgsPlugin"
        }
    }
}

supportLibrary {
    name = "Android Navigation TypeSafe Arguments Gradle Plugin"
    publish = true
    mavenVersion = LibraryVersions.NAVIGATION
    mavenGroup = LibraryGroups.NAVIGATION
    inceptionYear = "2017"
    description = "Android Navigation TypeSafe Arguments Gradle Plugin"
    url = SupportLibraryExtension.ARCHITECTURE_URL
}