diff options
author | Risan <risan@google.com> | 2017-12-13 15:27:58 +0900 |
---|---|---|
committer | Risan <risan@google.com> | 2018-01-19 16:07:24 +0900 |
commit | d3b0199c8314c0eb7df422731833077efce9521d (patch) | |
tree | 976b7e8dcefe409e49855e1d7d02932c55502e02 | |
parent | edc20e2864aa41fe5b0a039e9f67443a83ce89b9 (diff) | |
download | libmojo-d3b0199c8314c0eb7df422731833077efce9521d.tar.gz |
Convert libmojo Java from Android.mk to use Android.bp
Bug: 27569341
Test: mmma -j32 external/libmojo
Change-Id: I71a9cf98c210ddcc2cce53945ff0ebd2a608aaf6
-rw-r--r-- | Android.bp | 92 | ||||
-rwxr-xr-x | soong/mojom_source_generator.sh | 26 |
2 files changed, 113 insertions, 5 deletions
@@ -62,7 +62,6 @@ cc_prebuilt_binary { host_supported: true, } -// TODO(risan): Generate java out. genrule { name: "libmojo_mojom_headers", cmd: "$(location mojom_source_generator_sh)" + @@ -395,3 +394,94 @@ cc_library_shared { export_include_dirs: ["."], } + +genrule { + name: "libmojo_mojom_java_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=java" + + " --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: [ + "src/org/chromium/gfx/mojom/InsetsF.java", + "src/org/chromium/gfx/mojom/Insets.java", + "src/org/chromium/gfx/mojom/PointF.java", + "src/org/chromium/gfx/mojom/Point.java", + "src/org/chromium/gfx/mojom/RangeF.java", + "src/org/chromium/gfx/mojom/Range.java", + "src/org/chromium/gfx/mojom/RectF.java", + "src/org/chromium/gfx/mojom/Rect.java", + "src/org/chromium/gfx/mojom/SizeF.java", + "src/org/chromium/gfx/mojom/Size.java", + "src/org/chromium/gfx/mojom/Vector2dF.java", + "src/org/chromium/gfx/mojom/Vector2d.java", + "src/org/chromium/IPC/mojom/ChannelBootstrap_Internal.java", + "src/org/chromium/IPC/mojom/ChannelBootstrap.java", + "src/org/chromium/IPC/mojom/Channel_Internal.java", + "src/org/chromium/IPC/mojom/Channel.java", + "src/org/chromium/IPC/mojom/GenericInterface_Internal.java", + "src/org/chromium/IPC/mojom/GenericInterface.java", + "src/org/chromium/IPC/mojom/IpcConstants.java", + "src/org/chromium/IPC/mojom/SerializedHandle.java", + "src/org/chromium/mojo/bindings/interfacecontrol/FlushForTesting.java", + "src/org/chromium/mojo/bindings/interfacecontrol/InterfaceControlMessagesConstants.java", + "src/org/chromium/mojo/bindings/interfacecontrol/QueryVersion.java", + "src/org/chromium/mojo/bindings/interfacecontrol/QueryVersionResult.java", + "src/org/chromium/mojo/bindings/interfacecontrol/RequireVersion.java", + "src/org/chromium/mojo/bindings/interfacecontrol/RunInput.java", + "src/org/chromium/mojo/bindings/interfacecontrol/RunMessageParams.java", + "src/org/chromium/mojo/bindings/interfacecontrol/RunOrClosePipeInput.java", + "src/org/chromium/mojo/bindings/interfacecontrol/RunOrClosePipeMessageParams.java", + "src/org/chromium/mojo/bindings/interfacecontrol/RunOutput.java", + "src/org/chromium/mojo/bindings/interfacecontrol/RunResponseMessageParams.java", + "src/org/chromium/mojo/bindings/pipecontrol/DisconnectReason.java", + "src/org/chromium/mojo/bindings/pipecontrol/PeerAssociatedEndpointClosedEvent.java", + "src/org/chromium/mojo/bindings/pipecontrol/PipeControlMessagesConstants.java", + "src/org/chromium/mojo/bindings/pipecontrol/RunOrClosePipeInput.java", + "src/org/chromium/mojo/bindings/pipecontrol/RunOrClosePipeMessageParams.java", + "src/org/chromium/mojo/common/mojom/File.java", + "src/org/chromium/mojo/common/mojom/String16.java", + "src/org/chromium/mojo/common/mojom/TextDirection.java", + "src/org/chromium/mojo/common/mojom/TimeDelta.java", + "src/org/chromium/mojo/common/mojom/Time.java", + "src/org/chromium/mojo/common/mojom/TimeTicks.java", + "src/org/chromium/mojo/common/mojom/UnguessableToken.java", + "src/org/chromium/mojo/common/mojom/Version.java", + ], +} + +// TODO(risan): Rename this after Android.mk is removed. +java_library { + name: "android.mojo_bp", + + srcs: [ + ":libmojo_mojom_java_srcs", + "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/Log.java", + "base/android/java/src/org/chromium/base/PackageUtils.java", + "base/android/java/src/org/chromium/base/VisibleForTesting.java", + "mojo/android/system/src/**/*.java", + "mojo/public/java/system/src/**/*.java", + "mojo/public/java/bindings/src/**/*.java", + "base/android/java/src/org/chromium/base/annotations/**/*.java", + ], +} diff --git a/soong/mojom_source_generator.sh b/soong/mojom_source_generator.sh index 24a34ee..66b684c 100755 --- a/soong/mojom_source_generator.sh +++ b/soong/mojom_source_generator.sh @@ -27,6 +27,7 @@ files=() mojom_bindings_generator="" package="" output_dir="" +generators="" # Given a path to directory or file, return the absolute path. get_abs_path() { @@ -65,6 +66,9 @@ for arg in "$@"; do bytecode_path="${arg#'--bytecode_path='}" bytecode_path="$(get_abs_path ${bytecode_path})" ;; + --generators=*) + generators="${arg#'--generators='}" + ;; --*) args=("${args[@]}" "${arg}") ;; @@ -78,9 +82,23 @@ cd "${package}" "${mojom_bindings_generator}" precompile -o "${output_dir}" for file in "${files[@]}"; do + # Java source generations depends on zipfile that assumes the output directory + # already exists. So, we need to create the directory beforehand. + rel_path="${file#`pwd`/}" + rel_dir="${rel_path%/*}" + + mkdir -p "${output_dir}/${rel_dir}" + "${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}" + --typemap="${typemap}" --bytecode_path="${bytecode_path}" \ + --generators=${generators} "${file}" + if [[ "${generators}" =~ .*c++.* ]] ; then + "${mojom_bindings_generator}" generate -o "${output_dir}" \ + --generate_non_variant_code "${args[@]}" --typemap="${typemap}" \ + --bytecode_path="${bytecode_path}" --generators=${generators} \ + "${file}" + fi + if [[ "${generators}" =~ .*java.* ]] ; then + unzip -qo -d "${output_dir}"/src "${output_dir}/${rel_path}".srcjar + fi done |