1 /* 2 * Copyright (C) 2017 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 17 import javax.tools.ToolProvider 18 19 apply plugin: 'java' 20 apply plugin: 'maven' 21 22 group = 'com.android' 23 version = '1.0.6' 24 25 /* 26 * With the build server you are given two env variables: 27 * 1. The OUT_DIR is a temporary directory you can use to put things during the build. 28 * 2. The DIST_DIR is where you want to save things from the build. 29 * 30 * The build server will copy the contents of DIST_DIR to somewhere and make it available. 31 */ 32 if (System.env.DIST_DIR != null && System.env.OUT_DIR != null) { 33 buildDir = file("${System.env.OUT_DIR}/gradle/external/jdiff/build").getCanonicalFile() 34 ext.distDir = file(System.env.DIST_DIR).getCanonicalFile() 35 36 // The distDir is conveniently named after the build ID. 37 version = "${version}.${ext.distDir.name}" 38 } else { 39 buildDir = file('../../out/host/gradle/external/jdiff/build') 40 ext.distDir = file('../../out/dist') 41 42 // Local builds are not public release candidates. 43 version = "${version}-SNAPSHOT" 44 } 45 46 /* 47 * If prebuilts are available, use them. Else, if this is unbundled build use jcenter(). 48 * Finally, if none of that is true, attempt to compile against the full source trees. 49 */ 50 File m2repo = file('../../prebuilts/tools/common/m2/repository') 51 boolean unbundleBuild = (new File("unbundled-build")).exists() 52 53 if (m2repo.exists() || unbundleBuild) { 54 repositories { 55 maven { url m2repo.absolutePath } 56 if (unbundleBuild) { 57 jcenter() 58 } 59 } 60 61 dependencies { 62 compile 'org.antlr:antlr:3.5.2' 63 compile 'com.google.jsilver:jsilver:1.0.0' 64 compile 'org.ccil.cowan.tagsoup:tagsoup:1.2.1' 65 // Transitive dependency required by jsilver. 66 compile 'com.google.guava:guava:15.0' 67 } 68 } else { 69 dependencies { 70 compile project(path: ':antlr', configuration: 'antlrRuntime') 71 compile project(':jsilver') 72 compile project(':tagsoup') 73 } 74 } 75 76 77 dependencies { 78 testCompile 'junit:junit:4.12' 79 80 // tools.jar required for com.sun.javadoc 81 compile files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()) 82 } 83 84 sourceSets { 85 main { 86 java.srcDirs = ['src/'] 87 resources.srcDirs = ['res/'] 88 } 89 test { 90 java.srcDirs = ['test/'] 91 resources.srcDirs = ['test/api'] 92 } 93 } 94 95 uploadArchives { 96 repositories { 97 mavenDeployer { 98 repository(url: uri("${buildDir}/repo")) 99 } 100 } 101 } 102 103 task dist(type: Zip, dependsOn: uploadArchives) { 104 group = BasePlugin.BUILD_GROUP 105 description 'Builds distribution artifacts.' 106 107 from uploadArchives.artifacts 108 destinationDir distDir 109 110 doLast { 111 logger.lifecycle "Compressed maven artifacts to ${archivePath}" 112 } 113 } 114