Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/994 After building yoga aar, we found several issues: 1. More dynamic so files. This is bad as lower-end Android devices cannot load that many sos. 2. Size increase. 3. (Minor) The libs are stored in asset folder rather than "libs/". We apply the following optimizations: 1. Remove dependency on memalign16 (this is brought in by a pure header dependency jni-hack); 2. Enable native relinker to remove unused symbols in the so files. 3. Link yogacore statically to reduce size churn. Reviewed By: SidharthGuglani Differential Revision: D20808623 fbshipit-source-id: 6c6bbd4f71b6bf6ad272ec05dd56696ddb14a8e0
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
load("//tools/build_defs/oss:yoga_defs.bzl", "ANDROID", "FBJNI_TARGET", "LIBRARY_COMPILER_FLAGS", "SOLOADER_TARGET", "subdir_glob", "yoga_cxx_library", "yoga_dep", "yoga_java_library")
|
|
|
|
yoga_cxx_library(
|
|
name = "testutil",
|
|
srcs = ["src/main/cpp/testutil/testutil.cpp"],
|
|
header_namespace = "",
|
|
exported_headers = subdir_glob([("src/main/cpp/include", "yoga/testutil/testutil.h")]),
|
|
compiler_flags = LIBRARY_COMPILER_FLAGS,
|
|
soname = "libyoga_testutil.$(ext)",
|
|
visibility = ["PUBLIC"],
|
|
deps = [yoga_dep(":yoga")],
|
|
)
|
|
|
|
yoga_cxx_library(
|
|
name = "testutil-jni",
|
|
srcs = ["src/main/cpp/testutil/testutil.cpp"],
|
|
header_namespace = "",
|
|
exported_headers = subdir_glob([("src/main/cpp/include", "yoga/testutil/testutil.h")]),
|
|
compiler_flags = LIBRARY_COMPILER_FLAGS,
|
|
platforms = ANDROID,
|
|
soname = "libyoga_testutil.$(ext)",
|
|
visibility = ["PUBLIC"],
|
|
deps = [yoga_dep("java:jni")],
|
|
)
|
|
|
|
yoga_java_library(
|
|
name = "java",
|
|
srcs = ["src/main/java/com/facebook/yoga/TestUtil.java"],
|
|
source = "1.7",
|
|
target = "1.7",
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
":jni",
|
|
SOLOADER_TARGET,
|
|
],
|
|
)
|
|
|
|
yoga_cxx_library(
|
|
name = "jni",
|
|
srcs = ["src/main/cpp/jni/jni.cpp"],
|
|
allow_jni_merging = False,
|
|
compiler_flags = LIBRARY_COMPILER_FLAGS,
|
|
platforms = ANDROID,
|
|
soname = "libyoga_testutil_jni.$(ext)",
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
":testutil-jni",
|
|
FBJNI_TARGET,
|
|
],
|
|
)
|