Home | History | Annotate | Download | only in libmojo
      1 # Copyright 2015 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 # TODO(lhchavez): Convert this to Android.bp
      6 LOCAL_PATH:= $(call my-dir)
      7 
      8 # Build native shared library.
      9 include $(CLEAR_VARS)
     10 
     11 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
     12 LOCAL_MODULE := libmojo
     13 LOCAL_MODULE_TAGS := optional
     14 LOCAL_CPP_EXTENSION := .cc
     15 
     16 LOCAL_MOJOM_FILES := \
     17 	mojo/common/common_custom_types.mojom \
     18 	mojo/common/string16.mojom \
     19 	mojo/public/interfaces/bindings/interface_control_messages.mojom \
     20 	mojo/public/interfaces/bindings/pipe_control_messages.mojom \
     21 
     22 # This file was copied from out/Release in a Chrome checkout.
     23 # TODO(lhchavez): Generate this file instead of hardcoding it.
     24 LOCAL_MOJOM_TYPE_MAPPINGS := \
     25 	gen/mojo/common/common_custom_types__type_mappings \
     26 
     27 LOCAL_MOJOM_BINDINGS_GENERATOR_FLAGS := --use_new_wrapper_types
     28 
     29 # Prepares all necessary templates.
     30 include $(LOCAL_PATH)/build_mojom_templates.mk
     31 
     32 # Compiles all local mojom files.
     33 include $(LOCAL_PATH)/build_mojom.mk
     34 
     35 # Runtime.class is added (instead of Runtime.java that lives in libcore) since
     36 # the script that generates the JNI files does not handle compiling it well.
     37 LOCAL_JAVA_JNI_FILES := \
     38 	base/android/java/src/org/chromium/base/BuildInfo.java \
     39 	base/android/java/src/org/chromium/base/ContentUriUtils.java \
     40 	base/android/java/src/org/chromium/base/ContextUtils.java \
     41 	base/android/java/src/org/chromium/base/PathUtils.java \
     42 	base/android/java/src/org/chromium/base/SystemMessageHandler.java \
     43 	jni/java/lang/Runtime.class \
     44 	mojo/android/system/src/org/chromium/mojo/system/impl/BaseRunLoop.java \
     45 	mojo/android/system/src/org/chromium/mojo/system/impl/CoreImpl.java \
     46 
     47 # Generate all JNI header files.
     48 include $(LOCAL_PATH)/build_generated_jni.mk
     49 
     50 LOCAL_SRC_FILES := \
     51 	base/android/build_info.cc \
     52 	base/android/content_uri_utils.cc \
     53 	base/android/context_utils.cc \
     54 	base/android/java_runtime.cc \
     55 	base/android/jni_android.cc \
     56 	base/android/jni_string.cc \
     57 	base/android/path_utils.cc \
     58 	base/android/scoped_java_ref.cc \
     59 	base/base_paths.cc \
     60 	base/base_paths_android.cc \
     61 	base/debug/proc_maps_linux.cc \
     62 	base/debug/stack_trace_android.cc \
     63 	base/files/file_util_android.cc \
     64 	base/message_loop/message_pump_android.cc \
     65 	base/path_service.cc \
     66 	base/threading/thread_local_android.cc \
     67 	base/trace_event/java_heap_dump_provider_android.cc \
     68 	base/trace_event/trace_event_android.cc \
     69 	ipc/brokerable_attachment.cc \
     70 	ipc/ipc_message.cc \
     71 	ipc/ipc_message_attachment.cc \
     72 	ipc/ipc_message_attachment_set.cc \
     73 	ipc/ipc_message_utils.cc \
     74 	ipc/ipc_mojo_handle_attachment.cc \
     75 	ipc/ipc_mojo_message_helper.cc \
     76 	ipc/ipc_mojo_param_traits.cc \
     77 	ipc/ipc_platform_file_attachment_posix.cc \
     78 	ipc/placeholder_brokerable_attachment.cc \
     79 	mojo/android/system/base_run_loop.cc \
     80 	mojo/android/system/core_impl.cc \
     81 	mojo/edk/embedder/embedder.cc \
     82 	mojo/common/common_custom_types_struct_traits.cc \
     83 	mojo/edk/embedder/entrypoints.cc \
     84 	mojo/edk/embedder/platform_channel_pair.cc \
     85 	mojo/edk/embedder/platform_channel_pair_posix.cc \
     86 	mojo/edk/embedder/platform_channel_utils_posix.cc \
     87 	mojo/edk/embedder/platform_handle.cc \
     88 	mojo/edk/embedder/platform_handle_utils_posix.cc \
     89 	mojo/edk/embedder/platform_shared_buffer.cc \
     90 	mojo/edk/system/awakable_list.cc \
     91 	mojo/edk/system/broker_host_posix.cc \
     92 	mojo/edk/system/broker_posix.cc \
     93 	mojo/edk/system/channel.cc \
     94 	mojo/edk/system/channel_posix.cc \
     95 	mojo/edk/system/configuration.cc \
     96 	mojo/edk/system/core.cc \
     97 	mojo/edk/system/data_pipe_consumer_dispatcher.cc \
     98 	mojo/edk/system/data_pipe_control_message.cc \
     99 	mojo/edk/system/data_pipe_producer_dispatcher.cc \
    100 	mojo/edk/system/dispatcher.cc \
    101 	mojo/edk/system/handle_table.cc \
    102 	mojo/edk/system/mapping_table.cc \
    103 	mojo/edk/system/message_for_transit.cc \
    104 	mojo/edk/system/message_pipe_dispatcher.cc \
    105 	mojo/edk/system/node_channel.cc \
    106 	mojo/edk/system/node_controller.cc \
    107 	mojo/edk/system/platform_handle_dispatcher.cc \
    108 	mojo/edk/system/ports/event.cc \
    109 	mojo/edk/system/ports/message.cc \
    110 	mojo/edk/system/ports/message_queue.cc \
    111 	mojo/edk/system/ports/name.cc \
    112 	mojo/edk/system/ports/node.cc \
    113 	mojo/edk/system/ports/port.cc \
    114 	mojo/edk/system/ports/port_ref.cc \
    115 	mojo/edk/system/ports_message.cc \
    116 	mojo/edk/system/request_context.cc \
    117 	mojo/edk/system/shared_buffer_dispatcher.cc \
    118 	mojo/edk/system/wait_set_dispatcher.cc \
    119 	mojo/edk/system/waiter.cc \
    120 	mojo/edk/system/watcher.cc \
    121 	mojo/edk/system/watcher_set.cc \
    122 	mojo/message_pump/handle_watcher.cc \
    123 	mojo/message_pump/message_pump_mojo.cc \
    124 	mojo/message_pump/time_helper.cc \
    125 	mojo/public/c/system/thunks.cc \
    126 	mojo/public/cpp/bindings/lib/array_internal.cc \
    127 	mojo/public/cpp/bindings/lib/associated_group.cc \
    128 	mojo/public/cpp/bindings/lib/associated_group_controller.cc \
    129 	mojo/public/cpp/bindings/lib/bindings_internal.cc \
    130 	mojo/public/cpp/bindings/lib/connector.cc \
    131 	mojo/public/cpp/bindings/lib/control_message_handler.cc \
    132 	mojo/public/cpp/bindings/lib/control_message_proxy.cc \
    133 	mojo/public/cpp/bindings/lib/filter_chain.cc \
    134 	mojo/public/cpp/bindings/lib/fixed_buffer.cc \
    135 	mojo/public/cpp/bindings/lib/interface_endpoint_client.cc \
    136 	mojo/public/cpp/bindings/lib/message.cc \
    137 	mojo/public/cpp/bindings/lib/message_buffer.cc \
    138 	mojo/public/cpp/bindings/lib/message_builder.cc \
    139 	mojo/public/cpp/bindings/lib/message_filter.cc \
    140 	mojo/public/cpp/bindings/lib/message_header_validator.cc \
    141 	mojo/public/cpp/bindings/lib/multiplex_router.cc \
    142 	mojo/public/cpp/bindings/lib/native_struct.cc \
    143 	mojo/public/cpp/bindings/lib/native_struct_data.cc \
    144 	mojo/public/cpp/bindings/lib/native_struct_serialization.cc \
    145 	mojo/public/cpp/bindings/lib/no_interface.cc \
    146 	mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc \
    147 	mojo/public/cpp/bindings/lib/pipe_control_message_proxy.cc \
    148 	mojo/public/cpp/bindings/lib/router.cc \
    149 	mojo/public/cpp/bindings/lib/scoped_interface_endpoint_handle.cc \
    150 	mojo/public/cpp/bindings/lib/serialization_context.cc \
    151 	mojo/public/cpp/bindings/lib/sync_handle_registry.cc \
    152 	mojo/public/cpp/bindings/lib/sync_handle_watcher.cc \
    153 	mojo/public/cpp/bindings/lib/validation_context.cc \
    154 	mojo/public/cpp/bindings/lib/validation_errors.cc \
    155 	mojo/public/cpp/bindings/lib/validation_util.cc \
    156 	mojo/public/cpp/system/watcher.cc \
    157 
    158 LOCAL_CFLAGS := \
    159 	-Wno-unused-parameter \
    160 	-Wno-missing-field-initializers \
    161 	-DMOJO_EDK_LEGACY_PROTOCOL \
    162 
    163 # We use OS_POSIX since we need to communicate with Chrome.
    164 # We also pass NO_ASHMEM to make base::SharedMemory avoid using it and prefer
    165 # the POSIX versions.
    166 LOCAL_CPPFLAGS := \
    167 	-Wno-sign-promo \
    168 	-Wno-non-virtual-dtor \
    169 	-Wno-ignored-qualifiers \
    170 	-Wno-extra \
    171 	-DOS_POSIX \
    172 	-DNO_ASHMEM \
    173 	-DNO_TCMALLOC \
    174 
    175 LOCAL_SHARED_LIBRARIES := libevent liblog libchrome libchrome-crypto
    176 
    177 LOCAL_C_INCLUDES := \
    178 	external/gtest/include \
    179 
    180 LOCAL_EXPORT_C_INCLUDE_DIRS += \
    181 	external/gtest/include \
    182 	$(LOCAL_PATH) \
    183 
    184 include $(BUILD_SHARED_LIBRARY)
    185 
    186 # Build Java library.
    187 include $(CLEAR_VARS)
    188 
    189 LOCAL_MODULE := android.mojo
    190 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
    191 
    192 # We manually add a few classes explicitly rather than using the
    193 # |all-java-files-under| macro because base/ includes some stuff that we don't
    194 # want to compile since it requires a lot of extra gyp-generated files
    195 LOCAL_SRC_FILES := \
    196 	base/android/java/src/org/chromium/base/BuildInfo.java \
    197 	base/android/java/src/org/chromium/base/ContextUtils.java \
    198 	base/android/java/src/org/chromium/base/PackageUtils.java \
    199 	base/android/java/src/org/chromium/base/VisibleForTesting.java \
    200 	$(call all-java-files-under, mojo/android/system/src) \
    201 	$(call all-java-files-under, mojo/public/java/system/src) \
    202 	$(call all-java-files-under, mojo/public/java/bindings/src) \
    203 	$(call all-java-files-under, base/android/java/src/org/chromium/base/annotations) \
    204 
    205 # Adds all .mojom files Java sources to compilation.
    206 original_module_class := SHARED_LIBRARIES
    207 original_module := libmojo
    208 include $(LOCAL_PATH)/build_mojom_jar.mk
    209 
    210 include $(BUILD_STATIC_JAVA_LIBRARY)
    211