Skip to content
Snippets Groups Projects
Commit ea729d32 authored by Motomu Utsumi's avatar Motomu Utsumi
Browse files

gn2bp: Added java group name to java_sources/actions

Test: ./update_results.sh
Change-Id: Ibc2b3152ab68c5b46acff7d19d2c853889fa887c
parent 940cc564
No related branches found
No related tags found
No related merge requests found
......@@ -1476,10 +1476,22 @@ def create_java_jni_preprocessor(blueprint):
blueprint.add_module(module)
return module
def get_java_sources(gn):
java_sources = set()
for sources in gn.java_sources.values():
java_sources.update(sources)
return java_sources
def get_java_actions(gn):
java_actions = set()
for actions in gn.java_actions.values():
java_actions.update(actions)
return java_actions
def create_java_module(blueprint, gn):
bp_module_name = module_prefix + 'java'
module = Module('java_library', bp_module_name, '//gn:java')
module.srcs.update([gn_utils.label_to_path(source) for source in gn.java_sources])
module.srcs.update([gn_utils.label_to_path(source) for source in get_java_sources(gn)])
module.libs = {
"androidx.annotation_annotation",
"jsr305",
......@@ -1505,7 +1517,7 @@ def create_java_module(blueprint, gn):
module.javacflags.add("-Aorg.chromium.chrome.skipGenJni")
# TODO: remove following workaround required to make this module visible to make (b/203203405)
module.apex_available.add("//apex_available:platform")
for dep in gn.java_actions:
for dep in get_java_actions(gn):
target = gn.get_target(dep)
if target.script == '//build/android/gyp/gcc_preprocess.py':
module.srcs.add(':' + create_gcc_preprocess_modules(blueprint, target).name)
......@@ -1518,7 +1530,7 @@ def create_java_module(blueprint, gn):
def update_jni_registration_module(module, gn):
# TODO: java_sources might not contain all the required java files
module.srcs.update([gn_utils.label_to_path(source)
for source in gn.java_sources
for source in get_java_sources(gn)
if source.endswith('.java')])
def create_blueprint_for_targets(gn, targets):
......
......@@ -20,6 +20,7 @@ import json
import logging as log
import os
import re
import collections
BUILDFLAGS_TARGET = '//gn:gen_buildflags'
GEN_VERSION_TARGET = '//src/base:version_gen_h'
......@@ -260,8 +261,8 @@ class GnParser(object):
self.source_sets = {}
self.actions = {}
self.proto_libs = {}
self.java_sources = set()
self.java_actions = set()
self.java_sources = collections.defaultdict(set)
self.java_actions = collections.defaultdict(set)
def _get_response_file_contents(self, action_desc):
# response_file_contents are formatted as:
......@@ -448,15 +449,15 @@ class GnParser(object):
if dep.name.endswith('__compile_java'):
log.debug('Adding java sources for %s', dep.name)
java_srcs = [src for src in dep.inputs if _is_java_source(src)]
self.java_sources.update(java_srcs)
self.java_sources[java_group_name].update(java_srcs)
if dep.type in ["action"] and target.type == "java_group":
# //base:base_java_aidl generates srcjar from .aidl files. But java_library in soong can
# directly have .aidl files in srcs. So adding .aidl files to the java_sources.
# TODO: Find a better way/place to do this.
if dep.name == '//base:base_java_aidl':
self.java_sources.update(dep.arch[arch].sources)
self.java_sources[java_group_name].update(dep.arch[arch].sources)
else:
self.java_actions.add(dep.name)
self.java_actions[java_group_name].add(dep.name)
return target
def get_proto_exports(self, proto_desc):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment