| # |
| # Copyright 2020 The Android Open-Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| # |
| # This makefile exports |
| # |
| # NATIVE_BRIDGE_PRODUCT_PACKAGES: Add this to PRODUCT_PACKAGES for your project to facilitate |
| # native bridge support. |
| # |
| # NATIVE_BRIDGE_MODIFIED_GUEST_LIBS: List of modified guest libraries that require host counterpart. |
| # |
| |
| NATIVE_BRIDGE_PRODUCT_PACKAGES := \ |
| libnative_bridge_vdso.native_bridge \ |
| native_bridge_guest_app_process.native_bridge \ |
| native_bridge_guest_linker.native_bridge |
| |
| # TODO(b/141167717): using "bootstrap" to make APEX libraries compatible with native bridge: |
| # |
| # If library is APEX-enabled: |
| # |
| # Then "libraryname" is not installed in the /system/lib since it's |
| # supposed to be installed into APEX. |
| # |
| # However, "libraryname.bootstrap" goes into /system/lib/bootstrap. |
| # |
| # Native bridge isn't compatible with APEX yet thus "libraryname.native_bridge" |
| # is not installed anywhere at all. |
| # |
| # However, "libraryname.bootstrap.native_bridge" gets installed into |
| # /system/lib/$GUEST_ARCH/ - as we need for native bridge. |
| # |
| # Note: this doesn't affect native libraries at all. |
| |
| # Original guest libraries. |
| NATIVE_BRIDGE_ORIG_GUEST_LIBS := \ |
| libandroidicu.bootstrap \ |
| libcompiler_rt \ |
| libcrypto \ |
| libcutils \ |
| libdl.bootstrap \ |
| libdl_android.bootstrap \ |
| libicu.bootstrap \ |
| liblog \ |
| libm.bootstrap \ |
| libsqlite \ |
| libssl \ |
| libstdc++ \ |
| libsync \ |
| libutils \ |
| libz |
| |
| NATIVE_BRIDGE_PRODUCT_PACKAGES += \ |
| libclcore.bc \ |
| libclcore_neon.bc |
| |
| NATIVE_BRIDGE_ORIG_GUEST_LIBS += \ |
| libRS \ |
| libRSDriver \ |
| libnative_bridge_guest_libRSSupport |
| |
| # These native libraries are needed to pass CtsJniTestCases, we do not use them in any way and |
| # once/if build system allows us to build dummy arm libraries they can be replaced with empty ones. |
| #NATIVE_BRIDGE_ORIG_GUEST_LIBS += \ |
| # libart \ |
| # libvorbisidec |
| |
| # These libraries need special support on the native bridge implementation side. |
| NATIVE_BRIDGE_MODIFIED_GUEST_LIBS := \ |
| libaaudio \ |
| libamidi \ |
| libandroid \ |
| libandroid_runtime \ |
| libbinder_ndk \ |
| libc \ |
| libcamera2ndk \ |
| libEGL \ |
| libGLESv1_CM \ |
| libGLESv2 \ |
| libGLESv3 \ |
| libicui18n \ |
| libicuuc \ |
| libjnigraphics \ |
| libmediandk \ |
| libnativehelper \ |
| libnativewindow \ |
| libneuralnetworks \ |
| libOpenMAXAL \ |
| libOpenSLES \ |
| libvulkan \ |
| libwebviewchromium_plat_support |
| |
| # Original guest libraries are built for native_bridge |
| NATIVE_BRIDGE_PRODUCT_PACKAGES += \ |
| $(addsuffix .native_bridge,$(NATIVE_BRIDGE_ORIG_GUEST_LIBS)) |
| |
| # Modified guest libraries are built for native_bridge and |
| # have special build target prefix |
| NATIVE_BRIDGE_PRODUCT_PACKAGES += \ |
| $(addprefix libnative_bridge_guest_,$(addsuffix .native_bridge,$(NATIVE_BRIDGE_MODIFIED_GUEST_LIBS))) |
| |
| NATIVE_BRIDGE_ORIG_GUEST_LIBS := |