| // Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import com.google.protobuf.gradle.proto |
| import com.google.protobuf.gradle.ProtobufExtension |
| import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform |
| |
| plugins { |
| `kotlin-dsl` |
| id("dependencies-plugin") |
| } |
| |
| // It seems like the use of a local maven repo does not allow adding the plugin with the id+version |
| // syntax. Also, for some reason the 'protobuf' extension object cannot be directly referenced. |
| // This configures the plugin "old style" and pulls out the extension object manually. |
| buildscript { |
| dependencies { |
| classpath("com.google.protobuf:protobuf-gradle-plugin:0.9.4") |
| } |
| } |
| apply(plugin = "com.google.protobuf") |
| var os = DefaultNativePlatform.getCurrentOperatingSystem() |
| var protobuf = project.extensions.getByName("protobuf") as ProtobufExtension |
| protobuf.protoc { |
| if (os.isLinux) { |
| path = getRoot().resolveAll("third_party", "protoc", "linux-x86_64", "bin", "protoc").path |
| } else if (os.isMacOsX) { |
| path = getRoot().resolveAll("third_party", "protoc", "osx-x86_64", "bin", "protoc").path |
| } else { |
| assert(os.isWindows); |
| path = getRoot().resolveAll("third_party", "protoc", "win64", "bin", "protoc.exe").path |
| } |
| } |
| |
| java { |
| sourceSets.main.configure { |
| java.srcDir(getRoot().resolveAll("src", "keepanno", "java")) |
| proto { |
| srcDir(getRoot().resolveAll("src", "keepanno", "proto")) |
| } |
| } |
| sourceCompatibility = JvmCompatibility.sourceCompatibility |
| targetCompatibility = JvmCompatibility.targetCompatibility |
| toolchain { |
| languageVersion = JavaLanguageVersion.of(JvmCompatibility.release) |
| } |
| withSourcesJar() |
| } |
| |
| dependencies { |
| compileOnly(Deps.asm) |
| compileOnly(Deps.guava) |
| compileOnly(Deps.protobuf) |
| } |
| |
| tasks { |
| val keepAnnoAnnotationsJar by registering(Jar::class) { |
| dependsOn(gradle.includedBuild("shared").task(":downloadDeps")) |
| from(sourceSets.main.get().output) |
| include("com/android/tools/r8/keepanno/annotations/*") |
| destinationDirectory.set(getRoot().resolveAll("build", "libs")) |
| archiveFileName.set("keepanno-annotations.jar") |
| } |
| |
| val keepAnnoJar by registering(Jar::class) { |
| dependsOn(gradle.includedBuild("shared").task(":downloadDeps")) |
| from(sourceSets.main.get().output) |
| } |
| |
| val keepAnnoAnnotationsDoc by registering(Javadoc::class) { |
| source = sourceSets.main.get().allJava |
| include("com/android/tools/r8/keepanno/annotations/*") |
| } |
| } |