119b41105359a52aeb80070dec40247241231f05dYigit Boyar/*
219b41105359a52aeb80070dec40247241231f05dYigit Boyar * Copyright (C) 2016 The Android Open Source Project
319b41105359a52aeb80070dec40247241231f05dYigit Boyar *
419b41105359a52aeb80070dec40247241231f05dYigit Boyar * Licensed under the Apache License, Version 2.0 (the "License");
519b41105359a52aeb80070dec40247241231f05dYigit Boyar * you may not use this file except in compliance with the License.
619b41105359a52aeb80070dec40247241231f05dYigit Boyar * You may obtain a copy of the License at
719b41105359a52aeb80070dec40247241231f05dYigit Boyar *
819b41105359a52aeb80070dec40247241231f05dYigit Boyar *      http://www.apache.org/licenses/LICENSE-2.0
919b41105359a52aeb80070dec40247241231f05dYigit Boyar *
1019b41105359a52aeb80070dec40247241231f05dYigit Boyar * Unless required by applicable law or agreed to in writing, software
1119b41105359a52aeb80070dec40247241231f05dYigit Boyar * distributed under the License is distributed on an "AS IS" BASIS,
1219b41105359a52aeb80070dec40247241231f05dYigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1319b41105359a52aeb80070dec40247241231f05dYigit Boyar * See the License for the specific language governing permissions and
1419b41105359a52aeb80070dec40247241231f05dYigit Boyar * limitations under the License.
1519b41105359a52aeb80070dec40247241231f05dYigit Boyar */
16d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyarimport android.support.LibraryVersions
178fe7624039b42a6ae9477334ac86a12267113a3bYigit Boyarimport android.support.SupportLibraryExtension
188fe7624039b42a6ae9477334ac86a12267113a3bYigit Boyar
19d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyarapply plugin: android.support.SupportKotlinLibraryPlugin
2019b41105359a52aeb80070dec40247241231f05dYigit Boyar
2119b41105359a52aeb80070dec40247241231f05dYigit Boyardef antlrOut = "$buildDir/generated/antlr/grammar-gen/"
2219b41105359a52aeb80070dec40247241231f05dYigit BoyarsourceSets {
2319b41105359a52aeb80070dec40247241231f05dYigit Boyar    main.java.srcDirs += 'src/main/grammar-gen'
2419b41105359a52aeb80070dec40247241231f05dYigit Boyar    test.java.srcDirs += 'src/tests/kotlin'
2519b41105359a52aeb80070dec40247241231f05dYigit Boyar    main.java.srcDirs += antlrOut
2619b41105359a52aeb80070dec40247241231f05dYigit Boyar}
27e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinetsproject.ext.noDocs = true
28d38298284cef36dfa8b0749c675fc653b3ea7935Yigit Boyarversion = LibraryVersions.ROOM.toString()
290af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinets
300af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinets// Temporary hack to stop AS to adding two guavas into test's classpath
310af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinetsconfigurations.all {
320af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinets    resolutionStrategy {
330af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinets        force libs.guava
340af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinets    }
350af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinets}
360af2c3fe23515ba1b51095e331cd354ecf970010Sergey Vasilinets
3719b41105359a52aeb80070dec40247241231f05dYigit Boyardependencies {
389c3bbb729d54b8a80595dc30ae8d0c7a2b8df0faYigit Boyar    // taken from ButterKnife
392259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar    def logger = new com.android.build.gradle.internal.LoggerWrapper(project.logger)
402259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar    def sdkHandler = new com.android.build.gradle.internal.SdkHandler(project, logger)
412eb51995b418b034f58416876b6d27c74e19e4c7Yigit Boyar    compile project(":room:common")
42a64756a18111a7312b3fa03b76d13381a8907176Yigit Boyar    compile project(":room:migration")
43450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    compile libs.kotlin.stdlib
44450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    compile libs.auto_common
45450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    compile libs.javapoet
46450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    compile libs.antlr
47450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    compile libs.xerial
48fa3905934508aa143d899cb9b62b3b074748c9e9Yigit Boyar    compile libs.apache.commons.codec
49450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    testCompile libs.google_compile_testing
509fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik    testCompile project(":paging:common")
51450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    testCompile libs.junit
52450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    testCompile libs.ij_annotations
533738847ee36fbb5d5c4786199268a89d3a4681a3shepshapard    testCompile libs.jsr250
54450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    testCompile libs.mockito_core
55450ed382339544eaf6b7886bc765522fc3446148Yigit Boyar    testCompile fileTree(dir: "${sdkHandler.sdkFolder}/platforms/android-$tools.current_sdk/",
56efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar            include : "android.jar")
572eb51995b418b034f58416876b6d27c74e19e4c7Yigit Boyar    testCompile fileTree(dir: "${new File(project(":room:runtime").buildDir, "libJar")}",
582eb51995b418b034f58416876b6d27c74e19e4c7Yigit Boyar            include : "*.jar")
598fe7624039b42a6ae9477334ac86a12267113a3bYigit Boyar    testCompile fileTree(dir: "${new File(project(":persistence:db").buildDir, "libJar")}",
602eb51995b418b034f58416876b6d27c74e19e4c7Yigit Boyar            include : "*.jar")
61efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar    testCompile files(org.gradle.internal.jvm.Jvm.current().getToolsJar())
6219b41105359a52aeb80070dec40247241231f05dYigit Boyar}
6319b41105359a52aeb80070dec40247241231f05dYigit Boyar
6419b41105359a52aeb80070dec40247241231f05dYigit Boyardef generateAntlrTask = task('generateAntlrGrammar', type: JavaExec) {
6519b41105359a52aeb80070dec40247241231f05dYigit Boyar    def outFolder = file(antlrOut)
6619b41105359a52aeb80070dec40247241231f05dYigit Boyar    outputs.dir(outFolder)
6719b41105359a52aeb80070dec40247241231f05dYigit Boyar    inputs.dir("$projectDir/SQLite.g4")
6819b41105359a52aeb80070dec40247241231f05dYigit Boyar    classpath configurations.runtime
6919b41105359a52aeb80070dec40247241231f05dYigit Boyar    main "org.antlr.v4.Tool"
7064db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar    args "SQLite.g4", "-visitor", "-o", new File(outFolder, "android/arch/persistence/room/parser").path,
7164db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar            "-package", "android.arch.persistence.room.parser"
7219b41105359a52aeb80070dec40247241231f05dYigit Boyar}
7319b41105359a52aeb80070dec40247241231f05dYigit Boyar
7419b41105359a52aeb80070dec40247241231f05dYigit Boyartasks.findByName("compileKotlin").dependsOn(generateAntlrTask)
752eb51995b418b034f58416876b6d27c74e19e4c7Yigit Boyartasks.findByName("compileKotlin").dependsOn(":room:runtime:jarDebug")
768fe7624039b42a6ae9477334ac86a12267113a3bYigit Boyartasks.findByName("compileKotlin").dependsOn(":persistence:db:jarDebug")
7719b41105359a52aeb80070dec40247241231f05dYigit Boyar
7819b41105359a52aeb80070dec40247241231f05dYigit BoyarcreateKotlinCheckstyle(project)
7919b41105359a52aeb80070dec40247241231f05dYigit Boyar
80d809f486ce6260186b103cdcda158ff919b4e15eYigit BoyarsupportLibrary {
81d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyar    name 'Android Room Compiler'
82d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyar    publish true
83d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyar    inceptionYear '2017'
84d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyar    description "Android Room annotation processor"
85d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyar    url SupportLibraryExtension.ARCHITECTURE_URL
86d809f486ce6260186b103cdcda158ff919b4e15eYigit Boyar}
87