aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Dorokhine <adorokhine@google.com>2020-07-13 15:18:50 -0700
committerAlexander Dorokhine <adorokhine@google.com>2020-07-13 15:18:50 -0700
commit5b9fa156ad1758e124519705f9215306abbfb299 (patch)
treed20564cc8502e65b4088e25b6eb5ceed607744e8
parentfc54f758341eac2a4a3c148f24a9a632927c5ecf (diff)
downloadicing-5b9fa156ad1758e124519705f9215306abbfb299.tar.gz
Build the external/icing project in a self-contained manner.
The jarjar+android lib implementation is based on camera2-pipe. This CL switches us away from AndroidXPlugin because that plugin enforces API tracking, visibility restrictions and specific lints which don't apply to an external project not exposed to 3p developers. Bug: 160643524 Test: Presubmit Change-Id: I46ac22bb600954e00b81287ce53bc86fa987c67b
-rw-r--r--java/build.gradle84
-rw-r--r--java/src/com/google/android/icing/IcingSearchEngine.java13
2 files changed, 52 insertions, 45 deletions
diff --git a/java/build.gradle b/java/build.gradle
index 206c74f..4505960 100644
--- a/java/build.gradle
+++ b/java/build.gradle
@@ -14,41 +14,55 @@
* limitations under the License.
*/
+import org.anarres.gradle.plugin.jarjar.JarjarTask
+
+import static androidx.build.SupportConfig.*
+import static androidx.build.dependencies.DependenciesKt.*
+
buildscript {
- boolean unbundleBuild = (new File('unbundled-build')).exists()
- repositories {
- maven { url '../../../prebuilts/androidx/external' }
- if (unbundleBuild) {
- jcenter()
- }
- }
dependencies {
classpath('gradle.plugin.com.google.protobuf:protobuf-gradle-plugin:0.8.8')
classpath('org.anarres.jarjar:jarjar-gradle:1.0.1')
}
}
-apply plugin: 'java-library'
-apply plugin: 'com.google.protobuf'
-apply plugin: 'org.anarres.jarjar'
-apply plugin: 'idea'
+plugins {
+ id('com.android.library')
+ id('com.google.protobuf')
+ id('org.anarres.jarjar')
+}
-sourceSets {
- main {
- proto {
- srcDir '../proto'
- include '**/*.proto'
+android {
+ buildToolsVersion BUILD_TOOLS_VERSION
+ compileSdkVersion COMPILE_SDK_VERSION
+ defaultConfig {
+ minSdkVersion DEFAULT_MIN_SDK_VERSION
+ targetSdkVersion TARGET_SDK_VERSION
+ testInstrumentationRunner INSTRUMENTATION_RUNNER
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+ sourceSets {
+ main {
+ java.srcDir 'src/'
+ manifest.srcFile '../AndroidManifest.xml'
+ proto.srcDir '../proto'
}
+ androidTest.java.srcDir 'tests/instrumentation'
}
}
-compileJava {
- sourceCompatibility = JavaVersion.VERSION_1_7
- targetCompatibility = JavaVersion.VERSION_1_7
-}
-
dependencies {
+ api('androidx.annotation:annotation:1.1.0')
+
+ implementation project(':icing:nativeLib')
implementation('com.google.protobuf:protobuf-javalite:3.10.0')
+
+ androidTestImplementation(ANDROIDX_TEST_CORE)
+ androidTestImplementation(ANDROIDX_TEST_RULES)
+ androidTestImplementation(TRUTH)
}
protobuf {
@@ -67,21 +81,21 @@ protobuf {
}
}
-jarjar.repackage('jarjarTask') {
- destinationName "icing-java-jarjar.jar"
- from 'com.google.protobuf:protobuf-javalite:3.10.0'
- from files(sourceSets.main.output.classesDirs)
- dependsOn sourceSets.main.output
- classRename 'com.google.protobuf.**', 'com.google.android.icing.protobuf.@1'
-}
-
-configurations {
- jarjarConf
-}
+// Create jarjar artifact for all variants (debug/release)
+android.libraryVariants.all { variant ->
+ def variantName = variant.name
+ def suffix = variantName.capitalize()
+ def jarjarTask = tasks.create("jarjar${suffix}", JarjarTask) {
+ destinationName "icing-java-${variantName}-jarjar.jar"
+ from 'com.google.protobuf:protobuf-javalite:3.10.0'
+ from files(variant.javaCompileProvider.get().destinationDir)
+ dependsOn variant.javaCompileProvider.get()
+ classRename 'com.google.protobuf.**', 'com.google.android.icing.protobuf.@1'
+ }
-artifacts {
- jarjarConf(jarjarTask.destinationPath) {
- name 'icing-java-jarjar'
+ def jarjarConf = configurations.register("jarjar${suffix}")
+ artifacts.add("${jarjarConf.name}", jarjarTask.destinationPath) {
+ name "icing-java-${variantName}-jarjar"
type 'jar'
builtBy jarjarTask
}
diff --git a/java/src/com/google/android/icing/IcingSearchEngine.java b/java/src/com/google/android/icing/IcingSearchEngine.java
index b221592..9e63b9f 100644
--- a/java/src/com/google/android/icing/IcingSearchEngine.java
+++ b/java/src/com/google/android/icing/IcingSearchEngine.java
@@ -16,8 +16,6 @@ package com.google.android.icing;
import android.util.Log;
import androidx.annotation.NonNull;
-import androidx.annotation.RestrictTo;
-
import com.google.android.icing.proto.DeleteByNamespaceResultProto;
import com.google.android.icing.proto.DeleteBySchemaTypeResultProto;
import com.google.android.icing.proto.DeleteResultProto;
@@ -39,14 +37,9 @@ import com.google.android.icing.proto.SearchResultProto;
import com.google.android.icing.proto.SearchSpecProto;
import com.google.android.icing.proto.SetSchemaResultProto;
import com.google.android.icing.proto.StatusProto;
-import com.google.android.icing.protobuf.InvalidProtocolBufferException;
-
-/**
- * Java wrapper to access native APIs in external/icing/icing/icing-search-engine.h
- *
- * @hide
- */
-@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+import com.google.protobuf.InvalidProtocolBufferException;
+
+/** Java wrapper to access native APIs in external/icing/icing/icing-search-engine.h */
public final class IcingSearchEngine {
private static final String TAG = "IcingSearchEngine";