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 17import javax.tools.ToolProvider 18 19apply plugin: 'java' 20apply plugin: 'maven' 21 22group = 'com.android' 23version = '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 */ 32if (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 */ 50File m2repo = file('../../prebuilts/tools/common/m2/repository') 51boolean unbundleBuild = (new File("unbundled-build")).exists() 52 53if (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 77dependencies { 78 testCompile 'junit:junit:4.12' 79 80 // tools.jar required for com.sun.javadoc 81 compile files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()) 82} 83 84sourceSets { 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 95uploadArchives { 96 repositories { 97 mavenDeployer { 98 repository(url: uri("${buildDir}/repo")) 99 } 100 } 101} 102 103task 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