diff options
author | Risan <risan@google.com> | 2017-12-07 12:35:19 +0900 |
---|---|---|
committer | Risan <risan@google.com> | 2018-01-19 16:06:43 +0900 |
commit | edc20e2864aa41fe5b0a039e9f67443a83ce89b9 (patch) | |
tree | 81160e84ee694f4c20a840611e72389f9930754f | |
parent | cf86eeff81b51841769b5bb052878423ddb95951 (diff) | |
download | libmojo-edc20e2864aa41fe5b0a039e9f67443a83ce89b9.tar.gz |
Convert libmojo C++ to use Android.bp
Patches from lhchavez@'s ag/318044.
The Java generator is TODO.
Bug: 27569341
Test: mmma -j32 external/libmojo
Change-Id: Ifbbb7f2311a8877bc5d79ba45d98fc3e4da95d5c
-rw-r--r-- | Android.bp | 397 | ||||
-rw-r--r-- | build/Android.bp | 12 | ||||
-rw-r--r-- | build/android/Android.bp | 13 | ||||
-rw-r--r-- | build/android/gyp/Android.bp | 13 | ||||
-rw-r--r-- | mojo/public/tools/bindings/Android.bp | 27 | ||||
-rw-r--r-- | mojo/public/tools/bindings/pylib/Android.bp | 12 | ||||
-rwxr-xr-x | soong/jni_generator_helper.sh | 42 | ||||
-rwxr-xr-x | soong/mojom_source_generator.sh | 86 | ||||
-rw-r--r-- | third_party/Android.bp | 17 | ||||
-rw-r--r-- | third_party/catapult/devil/Android.bp | 12 |
10 files changed, 631 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..0b715dc --- /dev/null +++ b/Android.bp @@ -0,0 +1,397 @@ +// Copyright 2017 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. + +filegroup { + name: "libmojo_mojom_files", + srcs: [ + "ipc/ipc.mojom", + "mojo/common/file.mojom", + "mojo/common/string16.mojom", + "mojo/common/text_direction.mojom", + "mojo/common/time.mojom", + "mojo/common/unguessable_token.mojom", + "mojo/common/version.mojom", + "mojo/public/interfaces/bindings/interface_control_messages.mojom", + "mojo/public/interfaces/bindings/pipe_control_messages.mojom", + "ui/gfx/geometry/mojo/geometry.mojom", + "ui/gfx/range/mojo/range.mojom", + ], +} + +// TODO(risan): move this to third_party/catapult/Android.bp and enable embedded_launcher. +python_library_host { + name: "catapult", + srcs: [ + "third_party/catapult/devil/devil/**/*.py", + ], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} + +// TODO(risan): split this into python_libraries. +python_binary_host { + name: "jni_generator", + main: "base/android/jni_generator/jni_generator.py", + srcs: [ + "base/android/jni_generator/jni_generator.py", + "build/**/*.py", + ], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, + libs: [ + "catapult", + ], +} + +cc_prebuilt_binary { + name: "mojom_source_generator_sh", + srcs: ["soong/mojom_source_generator.sh"], + host_supported: true, +} + +// TODO(risan): Generate java out. +genrule { + name: "libmojo_mojom_headers", + cmd: "$(location mojom_source_generator_sh)" + + " --mojom_bindings_generator=$(location mojom_bindings_generator)" + + " --package=external/libmojo" + + " --output_dir=$(genDir)" + + " --bytecode_path=$(genDir)" + + " --typemap=$(location gen/mojo/common/common_custom_types__type_mappings)" + + " --generators=c++" + + " --use_new_wrapper_types" + + " $(in)", + + tools: [ + "mojom_bindings_generator", + "mojom_source_generator_sh", + ], + + tool_files: [ + // This file was copied from out/Release in a Chrome checkout. + // TODO(lhchavez): Generate this file instead of hardcoding it. + "gen/mojo/common/common_custom_types__type_mappings", + ], + + srcs: [":libmojo_mojom_files"], + + out: [ + "ipc/ipc.mojom.h", + "ipc/ipc.mojom-shared.h", + "ipc/ipc.mojom-shared-internal.h", + "mojo/common/file.mojom.h", + "mojo/common/file.mojom-shared.h", + "mojo/common/file.mojom-shared-internal.h", + "mojo/common/string16.mojom.h", + "mojo/common/string16.mojom-shared.h", + "mojo/common/string16.mojom-shared-internal.h", + "mojo/common/text_direction.mojom.h", + "mojo/common/text_direction.mojom-shared.h", + "mojo/common/text_direction.mojom-shared-internal.h", + "mojo/common/time.mojom.h", + "mojo/common/time.mojom-shared.h", + "mojo/common/time.mojom-shared-internal.h", + "mojo/common/unguessable_token.mojom.h", + "mojo/common/unguessable_token.mojom-shared.h", + "mojo/common/unguessable_token.mojom-shared-internal.h", + "mojo/common/version.mojom.h", + "mojo/common/version.mojom-shared.h", + "mojo/common/version.mojom-shared-internal.h", + "mojo/public/interfaces/bindings/interface_control_messages.mojom.h", + "mojo/public/interfaces/bindings/interface_control_messages.mojom-shared.h", + "mojo/public/interfaces/bindings/interface_control_messages.mojom-shared-internal.h", + "mojo/public/interfaces/bindings/pipe_control_messages.mojom.h", + "mojo/public/interfaces/bindings/pipe_control_messages.mojom-shared.h", + "mojo/public/interfaces/bindings/pipe_control_messages.mojom-shared-internal.h", + "ui/gfx/geometry/mojo/geometry.mojom.h", + "ui/gfx/geometry/mojo/geometry.mojom-shared.h", + "ui/gfx/geometry/mojo/geometry.mojom-shared-internal.h", + "ui/gfx/range/mojo/range.mojom.h", + "ui/gfx/range/mojo/range.mojom-shared.h", + "ui/gfx/range/mojo/range.mojom-shared-internal.h", + ], +} + +genrule { + name: "libmojo_mojom_srcs", + cmd: "$(location mojom_source_generator_sh)" + + " --mojom_bindings_generator=$(location mojom_bindings_generator)" + + " --package=external/libmojo" + + " --output_dir=$(genDir)" + + " --bytecode_path=$(genDir)" + + " --typemap=$(location gen/mojo/common/common_custom_types__type_mappings)" + + " --generators=c++" + + " --use_new_wrapper_types" + + " $(in)", + + tools: [ + "mojom_bindings_generator", + "mojom_source_generator_sh", + ], + + tool_files: [ + // This file was copied from out/Release in a Chrome checkout. + // TODO(lhchavez): Generate this file instead of hardcoding it. + "gen/mojo/common/common_custom_types__type_mappings", + "soong/mojom_source_generator.sh", + ], + + srcs: [":libmojo_mojom_files"], + + out: [ + "ipc/ipc.mojom.cc", + "ipc/ipc.mojom-shared.cc", + "mojo/common/file.mojom.cc", + "mojo/common/file.mojom-shared.cc", + "mojo/common/string16.mojom.cc", + "mojo/common/string16.mojom-shared.cc", + "mojo/common/text_direction.mojom.cc", + "mojo/common/text_direction.mojom-shared.cc", + "mojo/common/time.mojom.cc", + "mojo/common/time.mojom-shared.cc", + "mojo/common/unguessable_token.mojom.cc", + "mojo/common/unguessable_token.mojom-shared.cc", + "mojo/common/version.mojom.cc", + "mojo/common/version.mojom-shared.cc", + "mojo/public/interfaces/bindings/interface_control_messages.mojom.cc", + "mojo/public/interfaces/bindings/interface_control_messages.mojom-shared.cc", + "mojo/public/interfaces/bindings/pipe_control_messages.mojom.cc", + "mojo/public/interfaces/bindings/pipe_control_messages.mojom-shared.cc", + "ui/gfx/geometry/mojo/geometry.mojom.cc", + "ui/gfx/geometry/mojo/geometry.mojom-shared.cc", + "ui/gfx/range/mojo/range.mojom.cc", + "ui/gfx/range/mojo/range.mojom-shared.cc", + ], +} + +genrule { + name: "libmojo_jni_headers", + cmd: "$(location soong/jni_generator_helper.sh)" + + " --jni_generator=$(location jni_generator)" + + " --output_dir=$(genDir)/jni" + + " --includes=base/android/jni_generator/jni_generator_helper.h" + + " --ptr_type=long" + + " --native_exports_optional" + + " $(in)", + + tools: [ + "jni_generator", + ], + + tool_files: [ + "soong/jni_generator_helper.sh", + ], + + srcs: [ + "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", + // 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. + "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", + "mojo/android/system/src/org/chromium/mojo/system/impl/WatcherImpl.java", + ], + + out: [ + "jni/BuildInfo_jni.h", + "jni/ContentUriUtils_jni.h", + "jni/ContextUtils_jni.h", + "jni/PathUtils_jni.h", + "jni/SystemMessageHandler_jni.h", + "jni/Runtime_jni.h", + "jni/BaseRunLoop_jni.h", + "jni/CoreImpl_jni.h", + "jni/WatcherImpl_jni.h", + ], +} + +// TODO(risan): Change the name to libmojo once Android.mk is removed. +cc_library_shared { + name: "libmojo_bp", + + generated_headers: [ + "libmojo_jni_headers", + "libmojo_mojom_headers", + ], + + generated_sources: [ + "libmojo_mojom_srcs", + ], + + export_generated_headers: [ + "libmojo_jni_headers", + "libmojo_mojom_headers", + ], + + srcs: [ + "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/trace_event/java_heap_dump_provider_android.cc", + "base/trace_event/trace_event_android.cc", + "base/unguessable_token.cc", + "device/bluetooth/bluetooth_advertisement.cc", + "device/bluetooth/bluetooth_uuid.cc", + "device/bluetooth/bluez/bluetooth_service_attribute_value_bluez.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", + "mojo/android/system/base_run_loop.cc", + "mojo/android/system/core_impl.cc", + "mojo/android/system/watcher_impl.cc", + "mojo/common/common_custom_types_struct_traits.cc", + "mojo/edk/embedder/connection_params.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/embedder/pending_process_connection.cc", + "mojo/edk/embedder/test_embedder.cc", + "mojo/edk/system/awakable_list.cc", + "mojo/edk/system/broker_host.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/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/binding_state.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_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/pipe_control_message_handler.cc", + "mojo/public/cpp/bindings/lib/pipe_control_message_proxy.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/buffer.cc", + "mojo/public/cpp/system/platform_handle.cc", + "mojo/public/cpp/system/watcher.cc", + "ui/gfx/geometry/insets.cc", + "ui/gfx/geometry/insets_f.cc", + "ui/gfx/geometry/point.cc", + "ui/gfx/geometry/point_conversions.cc", + "ui/gfx/geometry/point_f.cc", + "ui/gfx/geometry/rect.cc", + "ui/gfx/geometry/rect_f.cc", + "ui/gfx/geometry/size.cc", + "ui/gfx/geometry/size_conversions.cc", + "ui/gfx/geometry/size_f.cc", + "ui/gfx/geometry/vector2d.cc", + "ui/gfx/geometry/vector2d_f.cc", + "ui/gfx/range/range.cc", + "ui/gfx/range/range_f.cc", + ], + + cflags: [ + "-Wall", + "-Werror", + "-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. + cppflags: [ + "-Wno-sign-promo", + "-Wno-non-virtual-dtor", + "-Wno-ignored-qualifiers", + "-Wno-extra", + "-DOS_POSIX", + "-DNO_ASHMEM", + "-DNO_TCMALLOC", + ], + + shared_libs: [ + "libevent", + "liblog", + "libchrome", + "libchrome-crypto", + ], + + export_include_dirs: ["."], +} diff --git a/build/Android.bp b/build/Android.bp new file mode 100644 index 0000000..afb4997 --- /dev/null +++ b/build/Android.bp @@ -0,0 +1,12 @@ +python_library_host { + name: "mojom_build", + srcs: ["gn_helpers.py"], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} diff --git a/build/android/Android.bp b/build/android/Android.bp new file mode 100644 index 0000000..d015454 --- /dev/null +++ b/build/android/Android.bp @@ -0,0 +1,13 @@ +python_library_host { + name: "mojom_build_android", + srcs: ["pylib/**/*.py"], + libs: ["mojom_build_android_gyp"], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} diff --git a/build/android/gyp/Android.bp b/build/android/gyp/Android.bp new file mode 100644 index 0000000..75d3238 --- /dev/null +++ b/build/android/gyp/Android.bp @@ -0,0 +1,13 @@ +python_library_host { + name: "mojom_build_android_gyp", + srcs: ["**/*.py"], + libs: ["mojom_build"], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} diff --git a/mojo/public/tools/bindings/Android.bp b/mojo/public/tools/bindings/Android.bp new file mode 100644 index 0000000..16af6b4 --- /dev/null +++ b/mojo/public/tools/bindings/Android.bp @@ -0,0 +1,27 @@ +python_binary_host { + name: "mojom_bindings_generator", + main: "mojom_bindings_generator.py", + libs: [ + "mojom_build_android", + "mojom_bindings_pylib", + "mojom_third_party", + ], + srcs: [ + "generators/*.py", + "*.py", + ], + data: [ + "generators/js_templates/*.tmpl", + "generators/java_templates/*.tmpl", + "generators/cpp_templates/*.tmpl", + ], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} + diff --git a/mojo/public/tools/bindings/pylib/Android.bp b/mojo/public/tools/bindings/pylib/Android.bp new file mode 100644 index 0000000..2dd4c58 --- /dev/null +++ b/mojo/public/tools/bindings/pylib/Android.bp @@ -0,0 +1,12 @@ +python_library_host { + name: "mojom_bindings_pylib", + srcs: ["**/*.py"], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} diff --git a/soong/jni_generator_helper.sh b/soong/jni_generator_helper.sh new file mode 100755 index 0000000..d610801 --- /dev/null +++ b/soong/jni_generator_helper.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# +# Copyright (C) 2017 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. +# +# Generates jni. + +set -e + +args=() +files=() + +jni_generator='' + +for arg in "$@"; do + case "${arg}" in + --jni_generator=*) + jni_generator=${arg#'--jni_generator='} + ;; + --*) + args=("${args[@]}" "${arg}") + ;; + *) + files=("${files[@]}" "${arg}") + ;; + esac +done + +for file in "${files[@]}"; do + "${jni_generator}" "${args[@]}" --input_file="${file}" +done diff --git a/soong/mojom_source_generator.sh b/soong/mojom_source_generator.sh new file mode 100755 index 0000000..24a34ee --- /dev/null +++ b/soong/mojom_source_generator.sh @@ -0,0 +1,86 @@ +#!/bin/bash +# +# Copyright (C) 2017 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. +# +# Generates mojo sources given a list of .mojom files and args. +# Usage: $0 --mojom_bindings_generator=<abs_path> --package=<package_directory> +# --output_dir=<output_directory> +# [<extra_args_for_bindings_generator>] <list_of_mojom_files> + +set -e + +args=() +files=() + +mojom_bindings_generator="" +package="" +output_dir="" + +# Given a path to directory or file, return the absolute path. +get_abs_path() { + if [[ -d $1 ]] ; then + cd "$1" + filename="" + else + filepath=$1 + dir="${filepath%/*}" + cd "${dir}" + filename="${filepath#${dir}/}" + fi + absdir=`pwd` + cd - > /dev/null + echo "${absdir}/${filename}" +} + +for arg in "$@"; do + case "${arg}" in + --mojom_bindings_generator=*) + mojom_bindings_generator="${arg#'--mojom_bindings_generator='}" + mojom_bindings_generator="$(get_abs_path ${mojom_bindings_generator})" + ;; + --package=*) + package="${arg#'--package='}" + ;; + --output_dir=*) + output_dir="${arg#'--output_dir='}" + output_dir="$(get_abs_path ${output_dir})" + ;; + --typemap=*) + typemap="${arg#'--typemap='}" + typemap="$(get_abs_path ${typemap})" + ;; + --bytecode_path=*) + bytecode_path="${arg#'--bytecode_path='}" + bytecode_path="$(get_abs_path ${bytecode_path})" + ;; + --*) + args=("${args[@]}" "${arg}") + ;; + *) + files=("${files[@]}" "$(get_abs_path ${arg})") + ;; + esac +done + +cd "${package}" +"${mojom_bindings_generator}" precompile -o "${output_dir}" + +for file in "${files[@]}"; do + "${mojom_bindings_generator}" generate -o "${output_dir}" "${args[@]}" \ + --typemap="${typemap}" --bytecode_path="${bytecode_path}" "${file}" + "${mojom_bindings_generator}" generate -o "${output_dir}" \ + --generate_non_variant_code "${args[@]}" --typemap="${typemap}" \ + --bytecode_path="${bytecode_path}" "${file}" +done diff --git a/third_party/Android.bp b/third_party/Android.bp new file mode 100644 index 0000000..9ea21c3 --- /dev/null +++ b/third_party/Android.bp @@ -0,0 +1,17 @@ +python_library_host { + name: "mojom_third_party", + srcs: [ + "jinja2/**/*.py", + "markupsafe/**/*.py", + "ply/**/*.py", + ], + libs: ["mojom_third_party_devil"], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} diff --git a/third_party/catapult/devil/Android.bp b/third_party/catapult/devil/Android.bp new file mode 100644 index 0000000..d466196 --- /dev/null +++ b/third_party/catapult/devil/Android.bp @@ -0,0 +1,12 @@ +python_library_host { + name: "mojom_third_party_devil", + srcs: ["devil/**/*.py"], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} |