• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright 2020 The Android Open-Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17#
18# This makefile exports
19#
20# NATIVE_BRIDGE_PRODUCT_PACKAGES: Add this to PRODUCT_PACKAGES for your project to facilitate
21# native bridge support.
22#
23# NATIVE_BRIDGE_MODIFIED_GUEST_LIBS: List of modified guest libraries that require host counterpart.
24#
25
26NATIVE_BRIDGE_PRODUCT_PACKAGES := \
27    libnative_bridge_vdso.native_bridge \
28    native_bridge_guest_app_process.native_bridge \
29    native_bridge_guest_linker.native_bridge
30
31# Original guest libraries.
32NATIVE_BRIDGE_ORIG_GUEST_LIBS := \
33    libcompiler_rt \
34    libcrypto \
35    libcutils \
36    libdl.bootstrap \
37    libdl_android.bootstrap \
38    liblog \
39    libm.bootstrap \
40    libsqlite \
41    libssl \
42    libstdc++ \
43    libsync \
44    libutils \
45    libz
46
47# TODO(b/141167717): hack to make libandroidicu compatible with APEX.
48#
49# If library is APEX-enabled:
50#
51#   Then "libraryname" is not installed in the  /system/lib since it's
52#   supposed to be installed into APEX.
53#
54#   However, "libraryname.bootstrap" goes into /system/lib/bootstrap.
55#
56#   Native bridge isn't compatible with APEX yet thus "libraryname.native_bridge"
57#   is not installed anywhere at all.
58#
59#   However, "libraryname.bootstrap.native_bridge" gets installed into
60#   /system/lib/$GUEST_ARCH/ - as we need for native bridge.
61#
62# Note: this doesn't affect native libraries at all.
63NATIVE_BRIDGE_ORIG_GUEST_LIBS += \
64    libandroidicu.bootstrap
65
66NATIVE_BRIDGE_PRODUCT_PACKAGES += \
67    libclcore.bc \
68    libclcore_neon.bc
69
70NATIVE_BRIDGE_ORIG_GUEST_LIBS += \
71    libRS \
72    libRSDriver \
73    libnative_bridge_guest_libRSSupport
74
75# These native libraries are needed to pass CtsJniTestCases, we do not use them in any way and
76# once/if build system allows us to build dummy arm libraries they can be replaced with empty ones.
77#NATIVE_BRIDGE_ORIG_GUEST_LIBS += \
78#    libart \
79#    libvorbisidec
80
81# These libraries need special support on the native bridge implementation side.
82NATIVE_BRIDGE_MODIFIED_GUEST_LIBS := \
83    libaaudio \
84    libamidi \
85    libandroid \
86    libandroid_runtime \
87    libbinder_ndk \
88    libc \
89    libcamera2ndk \
90    libEGL \
91    libGLESv1_CM \
92    libGLESv2 \
93    libGLESv3 \
94    libicui18n \
95    libicuuc \
96    libjnigraphics \
97    libmediandk \
98    libnativehelper \
99    libnativewindow \
100    libneuralnetworks \
101    libOpenMAXAL \
102    libOpenSLES \
103    libvulkan \
104    libwebviewchromium_plat_support
105
106# Original guest libraries are built for native_bridge
107NATIVE_BRIDGE_PRODUCT_PACKAGES += \
108    $(addsuffix .native_bridge,$(NATIVE_BRIDGE_ORIG_GUEST_LIBS))
109
110# Modified guest libraries are built for native_bridge and
111# have special build target prefix
112NATIVE_BRIDGE_PRODUCT_PACKAGES += \
113    $(addprefix libnative_bridge_guest_,$(addsuffix .native_bridge,$(NATIVE_BRIDGE_MODIFIED_GUEST_LIBS)))
114
115NATIVE_BRIDGE_ORIG_GUEST_LIBS :=
116