Skip to content

Commit fd907e5

Browse files
committed
Merge branch 'master' into mila/BloomFilter
2 parents 1b0b3ed + ff558a4 commit fd907e5

File tree

3 files changed

+430
-328
lines changed

3 files changed

+430
-328
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/plugins/FireEscapeArtifactPlugin.java

Lines changed: 0 additions & 132 deletions
This file was deleted.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
// Copyright 2023 Google LLC
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
package com.google.firebase.gradle.plugins
16+
17+
import org.gradle.api.Plugin
18+
import org.gradle.api.Project
19+
import org.gradle.api.Task
20+
import org.gradle.api.publish.PublishingExtension
21+
import org.gradle.api.publish.maven.MavenPublication
22+
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
23+
import org.gradle.api.tasks.TaskProvider
24+
import org.gradle.api.tasks.bundling.Jar
25+
import org.gradle.api.tasks.bundling.Zip
26+
import org.gradle.kotlin.dsl.configure
27+
import org.gradle.kotlin.dsl.getByName
28+
import org.gradle.kotlin.dsl.register
29+
30+
class FireEscapeArtifactPlugin : Plugin<Project> {
31+
32+
override fun apply(target: Project) {
33+
target.afterEvaluate {
34+
if (supportsMavenPublishing(target)) {
35+
val apiTxtFile = registerApiTxtFileTask(project)
36+
val proguardMappingFile = registerProguardMappingFileTask(project)
37+
val javadoc = registerJavadocTask(project)
38+
39+
val zippedArtifact =
40+
project.tasks.register<Zip>("maven") {
41+
from(apiTxtFile)
42+
if (project.isAndroid()) {
43+
from(proguardMappingFile)
44+
}
45+
}
46+
47+
extensions.configure<PublishingExtension> {
48+
publications.getByName<MavenPublication>("mavenAar") {
49+
artifact(zippedArtifact)
50+
artifact(javadoc)
51+
}
52+
}
53+
}
54+
}
55+
}
56+
private fun supportsMavenPublishing(project: Project): Boolean =
57+
project.plugins.hasPlugin(MavenPublishPlugin::class.java)
58+
59+
private fun registerProguardMappingFileTask(project: Project): TaskProvider<Task> =
60+
project.tasks.register("fireEscapeProguardMapping") {
61+
outputs.file(project.fileFromBuildDir("outputs/mapping/release/mapping.txt"))
62+
}
63+
64+
private fun registerApiTxtFileTask(project: Project): TaskProvider<Task> =
65+
project.tasks.register("fireEscapeApiText") {
66+
dependsOn(JAVADOC_TASK_NAME)
67+
outputs.file(project.fileFromBuildDir("tmp/javadoc/api.txt"))
68+
}
69+
70+
private fun registerJavadocTask(project: Project): TaskProvider<Jar> =
71+
project.tasks.register<Jar>("fireescapeJavadocJar") {
72+
dependsOn(JAVADOC_TASK_NAME)
73+
project.fileFromBuildDir("/docs/javadoc/reference")
74+
include("**/*")
75+
archiveFileName.set("fireescape-javadoc.jar")
76+
archiveClassifier.set("javadoc")
77+
}
78+
}

0 commit comments

Comments
 (0)