blob: a3e2083b8801cb8d112aaca83ceb24732b85e21d [file] [log] [blame]
# 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/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/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)