# Copyright 2015 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # TODO(lhchavez): Convert this to Android.bp LOCAL_PATH:= $(call my-dir) # Build native shared library. include $(CLEAR_VARS) LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_MODULE := libmojo LOCAL_MODULE_TAGS := optional LOCAL_CPP_EXTENSION := .cc LOCAL_MOJOM_FILES := \ mojo/common/common_custom_types.mojom \ mojo/common/string16.mojom \ mojo/public/interfaces/bindings/interface_control_messages.mojom \ mojo/public/interfaces/bindings/pipe_control_messages.mojom \ # This file was copied from out/Release in a Chrome checkout. # TODO(lhchavez): Generate this file instead of hardcoding it. LOCAL_MOJOM_TYPE_MAPPINGS := \ gen/mojo/common/common_custom_types__type_mappings \ LOCAL_MOJOM_BINDINGS_GENERATOR_FLAGS := --use_new_wrapper_types # Prepares all necessary templates. include $(LOCAL_PATH)/build_mojom_templates.mk # Compiles all local mojom files. include $(LOCAL_PATH)/build_mojom.mk # Runtime.class is added (instead of Runtime.java that lives in libcore) since # the script that generates the JNI files does not handle compiling it well. LOCAL_JAVA_JNI_FILES := \ base/android/java/src/org/chromium/base/BuildInfo.java \ base/android/java/src/org/chromium/base/ContentUriUtils.java \ base/android/java/src/org/chromium/base/ContextUtils.java \ base/android/java/src/org/chromium/base/PathUtils.java \ base/android/java/src/org/chromium/base/SystemMessageHandler.java \ jni/java/lang/Runtime.class \ mojo/android/system/src/org/chromium/mojo/system/impl/BaseRunLoop.java \ mojo/android/system/src/org/chromium/mojo/system/impl/CoreImpl.java \ # Generate all JNI header files. include $(LOCAL_PATH)/build_generated_jni.mk LOCAL_SRC_FILES := \ base/android/build_info.cc \ base/android/content_uri_utils.cc \ base/android/context_utils.cc \ base/android/java_runtime.cc \ base/android/jni_android.cc \ base/android/jni_string.cc \ base/android/path_utils.cc \ base/android/scoped_java_ref.cc \ base/base_paths.cc \ base/base_paths_android.cc \ base/debug/proc_maps_linux.cc \ base/debug/stack_trace_android.cc \ base/files/file_util_android.cc \ base/message_loop/message_pump_android.cc \ base/path_service.cc \ base/threading/thread_local_android.cc \ base/trace_event/java_heap_dump_provider_android.cc \ base/trace_event/trace_event_android.cc \ ipc/brokerable_attachment.cc \ ipc/ipc_message.cc \ ipc/ipc_message_attachment.cc \ ipc/ipc_message_attachment_set.cc \ ipc/ipc_message_utils.cc \ ipc/ipc_mojo_handle_attachment.cc \ ipc/ipc_mojo_message_helper.cc \ ipc/ipc_mojo_param_traits.cc \ ipc/ipc_platform_file_attachment_posix.cc \ ipc/placeholder_brokerable_attachment.cc \ mojo/android/system/base_run_loop.cc \ mojo/android/system/core_impl.cc \ mojo/edk/embedder/embedder.cc \ mojo/common/common_custom_types_struct_traits.cc \ mojo/edk/embedder/entrypoints.cc \ mojo/edk/embedder/platform_channel_pair.cc \ mojo/edk/embedder/platform_channel_pair_posix.cc \ mojo/edk/embedder/platform_channel_utils_posix.cc \ mojo/edk/embedder/platform_handle.cc \ mojo/edk/embedder/platform_handle_utils_posix.cc \ mojo/edk/embedder/platform_shared_buffer.cc \ mojo/edk/system/awakable_list.cc \ mojo/edk/system/broker_host_posix.cc \ mojo/edk/system/broker_posix.cc \ mojo/edk/system/channel.cc \ mojo/edk/system/channel_posix.cc \ mojo/edk/system/configuration.cc \ mojo/edk/system/core.cc \ mojo/edk/system/data_pipe_consumer_dispatcher.cc \ mojo/edk/system/data_pipe_control_message.cc \ mojo/edk/system/data_pipe_producer_dispatcher.cc \ mojo/edk/system/dispatcher.cc \ mojo/edk/system/handle_table.cc \ mojo/edk/system/mapping_table.cc \ mojo/edk/system/message_for_transit.cc \ mojo/edk/system/message_pipe_dispatcher.cc \ mojo/edk/system/node_channel.cc \ mojo/edk/system/node_controller.cc \ mojo/edk/system/platform_handle_dispatcher.cc \ mojo/edk/system/ports/event.cc \ mojo/edk/system/ports/message.cc \ mojo/edk/system/ports/message_queue.cc \ mojo/edk/system/ports/name.cc \ mojo/edk/system/ports/node.cc \ mojo/edk/system/ports/port.cc \ mojo/edk/system/ports/port_ref.cc \ mojo/edk/system/ports_message.cc \ mojo/edk/system/request_context.cc \ mojo/edk/system/shared_buffer_dispatcher.cc \ mojo/edk/system/wait_set_dispatcher.cc \ mojo/edk/system/waiter.cc \ mojo/edk/system/watcher.cc \ mojo/edk/system/watcher_set.cc \ mojo/message_pump/handle_watcher.cc \ mojo/message_pump/message_pump_mojo.cc \ mojo/message_pump/time_helper.cc \ mojo/public/c/system/thunks.cc \ mojo/public/cpp/bindings/lib/array_internal.cc \ mojo/public/cpp/bindings/lib/associated_group.cc \ mojo/public/cpp/bindings/lib/associated_group_controller.cc \ mojo/public/cpp/bindings/lib/bindings_internal.cc \ mojo/public/cpp/bindings/lib/connector.cc \ mojo/public/cpp/bindings/lib/control_message_handler.cc \ mojo/public/cpp/bindings/lib/control_message_proxy.cc \ mojo/public/cpp/bindings/lib/filter_chain.cc \ mojo/public/cpp/bindings/lib/fixed_buffer.cc \ mojo/public/cpp/bindings/lib/interface_endpoint_client.cc \ mojo/public/cpp/bindings/lib/message.cc \ mojo/public/cpp/bindings/lib/message_buffer.cc \ mojo/public/cpp/bindings/lib/message_builder.cc \ mojo/public/cpp/bindings/lib/message_filter.cc \ mojo/public/cpp/bindings/lib/message_header_validator.cc \ mojo/public/cpp/bindings/lib/multiplex_router.cc \ mojo/public/cpp/bindings/lib/native_struct.cc \ mojo/public/cpp/bindings/lib/native_struct_data.cc \ mojo/public/cpp/bindings/lib/native_struct_serialization.cc \ mojo/public/cpp/bindings/lib/no_interface.cc \ mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc \ mojo/public/cpp/bindings/lib/pipe_control_message_proxy.cc \ mojo/public/cpp/bindings/lib/router.cc \ mojo/public/cpp/bindings/lib/scoped_interface_endpoint_handle.cc \ mojo/public/cpp/bindings/lib/serialization_context.cc \ mojo/public/cpp/bindings/lib/sync_handle_registry.cc \ mojo/public/cpp/bindings/lib/sync_handle_watcher.cc \ mojo/public/cpp/bindings/lib/validation_context.cc \ mojo/public/cpp/bindings/lib/validation_errors.cc \ mojo/public/cpp/bindings/lib/validation_util.cc \ mojo/public/cpp/system/watcher.cc \ LOCAL_CFLAGS := \ -Wno-unused-parameter \ -Wno-missing-field-initializers \ -DMOJO_EDK_LEGACY_PROTOCOL \ # We use OS_POSIX since we need to communicate with Chrome. # We also pass NO_ASHMEM to make base::SharedMemory avoid using it and prefer # the POSIX versions. LOCAL_CPPFLAGS := \ -Wno-sign-promo \ -Wno-non-virtual-dtor \ -Wno-ignored-qualifiers \ -Wno-extra \ -DOS_POSIX \ -DNO_ASHMEM \ -DNO_TCMALLOC \ LOCAL_SHARED_LIBRARIES := libevent liblog libchrome libchrome-crypto LOCAL_C_INCLUDES := \ external/gtest/include \ LOCAL_EXPORT_C_INCLUDE_DIRS += \ external/gtest/include \ $(LOCAL_PATH) \ include $(BUILD_SHARED_LIBRARY) # Build Java library. include $(CLEAR_VARS) LOCAL_MODULE := android.mojo LOCAL_MODULE_CLASS := JAVA_LIBRARIES # We manually add a few classes explicitly rather than using the # |all-java-files-under| macro because base/ includes some stuff that we don't # want to compile since it requires a lot of extra gyp-generated files LOCAL_SRC_FILES := \ base/android/java/src/org/chromium/base/BuildInfo.java \ base/android/java/src/org/chromium/base/ContextUtils.java \ base/android/java/src/org/chromium/base/PackageUtils.java \ base/android/java/src/org/chromium/base/VisibleForTesting.java \ $(call all-java-files-under, mojo/android/system/src) \ $(call all-java-files-under, mojo/public/java/system/src) \ $(call all-java-files-under, mojo/public/java/bindings/src) \ $(call all-java-files-under, base/android/java/src/org/chromium/base/annotations) \ # Adds all .mojom files Java sources to compilation. original_module_class := SHARED_LIBRARIES original_module := libmojo include $(LOCAL_PATH)/build_mojom_jar.mk include $(BUILD_STATIC_JAVA_LIBRARY)