Replace "facebook.proguard.annotations" with "facebook.yoga.annotations" (#35841)
Summary: X-link: https://github.com/facebook/react-native/pull/35841 X-link: https://github.com/facebook/litho/pull/928 Pull Request resolved: https://github.com/facebook/yoga/pull/1216 The Yoga JNI bindings use Reflection, so we need to let ProGuard know not to strip certain annotated fields. This is done internally using a single copy of `com.facebook.proguard.annotations` from fbandroid (sometimes), which is then repackaged externally, and published as its own whole Yoga specific package. We never actually inform the stock Gradle project of the rules for the annotations though, so apps must add these manually. This simplifies the setup, where Yoga has its own self-contained annotations/rules. The rules are exposed for Gradle/Buck dependencies, but RN and Litho both consume Yoga via dirsync + custom Gradle logic, so we need to duplicate the proguard rules to them instead of them being propagated automatically. Changelog: [Internal] Reviewed By: rshest Differential Revision: D42406641 fbshipit-source-id: c2b12fd498f93f144e5651917ca878d2a5050e08
This commit is contained in:
committed by
Facebook GitHub Bot
parent
83c6997f29
commit
65c57d6a01
@@ -9,7 +9,7 @@
|
||||
|
||||
package com.facebook.yoga;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.yoga.annotations.DoNotStrip;
|
||||
|
||||
@DoNotStrip
|
||||
public enum YogaLogLevel {
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
package com.facebook.yoga;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.yoga.annotations.DoNotStrip;
|
||||
|
||||
/**
|
||||
* Interface for receiving logs from native layer. Use by setting YogaNode.setLogger(myLogger);
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
package com.facebook.yoga;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.yoga.annotations.DoNotStrip;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
|
||||
@DoNotStrip
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
package com.facebook.yoga;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.yoga.annotations.DoNotStrip;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.annotation.Nullable;
|
||||
|
18
java/com/facebook/yoga/annotations/DoNotStrip.java
Normal file
18
java/com/facebook/yoga/annotations/DoNotStrip.java
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and 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.yoga.annotations;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import static java.lang.annotation.RetentionPolicy.CLASS;
|
||||
|
||||
@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR })
|
||||
@Retention(CLASS)
|
||||
public @interface DoNotStrip { }
|
Reference in New Issue
Block a user