From 094ebcc447efd2ad3f5dea9e0a3264aae7b53649 Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Thu, 15 Aug 2019 10:19:40 +0100 Subject: [PATCH] Remove vendored proguard annotation Summary: There have been multiple complaints about combining RN with various other FB libraries, including Litho, because of bundled dependencies that can't be deduplicated by Gradle. This is one of three current conflicts: 1) Proguard annotations (this PR) 2) Yoga 3) fbjni While the Yoga group name doesn't make a massive amount of sense it was the easiest existing package to use and since we don't have a better namespace for this, we might as well use this. A similar change to Litho is landing right now. Test Plan: ``` yarn ./gradlew :RNTester:android:app:assembleDebug ``` --- ReactAndroid/build.gradle | 1 + .../proguard/annotations/DoNotStrip.java | 22 ------------------- 2 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 ReactAndroid/src/main/java/com/facebook/proguard/annotations/DoNotStrip.java diff --git a/ReactAndroid/build.gradle b/ReactAndroid/build.gradle index 1ef2f605c46e97..47f6c74a07acfb 100644 --- a/ReactAndroid/build.gradle +++ b/ReactAndroid/build.gradle @@ -356,6 +356,7 @@ android { dependencies { api("com.facebook.infer.annotation:infer-annotation:0.11.2") + api("com.facebook.yoga:proguard-annotations:1.14.1") api("javax.inject:javax.inject:1") api("androidx.appcompat:appcompat:1.0.2") api("com.facebook.fresco:fresco:${FRESCO_VERSION}") diff --git a/ReactAndroid/src/main/java/com/facebook/proguard/annotations/DoNotStrip.java b/ReactAndroid/src/main/java/com/facebook/proguard/annotations/DoNotStrip.java deleted file mode 100644 index 0af1b790f1326a..00000000000000 --- a/ReactAndroid/src/main/java/com/facebook/proguard/annotations/DoNotStrip.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package com.facebook.proguard.annotations; - -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Add this annotation to a class, method, or field to instruct Proguard to not strip it out. - * - *

This is useful for methods called via reflection that could appear as unused to Proguard. - */ -@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR}) -@Retention(CLASS) -public @interface DoNotStrip {}