diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-11 04:29:51 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-11 04:29:51 +0000 |
commit | 76d122ab77b3a56d0ad6cc2eab27edd46240e751 (patch) | |
tree | 427272a89a408109fe7548bd6edd49138be05e6f /build/java_apk.gypi | |
parent | 476def123cf46dd6d241231a45abe875723f47f3 (diff) | |
download | chromium_src-76d122ab77b3a56d0ad6cc2eab27edd46240e751.zip chromium_src-76d122ab77b3a56d0ad6cc2eab27edd46240e751.tar.gz chromium_src-76d122ab77b3a56d0ad6cc2eab27edd46240e751.tar.bz2 |
Revert 256097 "android: Pass (non-generated) .java files via a g..."
Breaks target device_extras_apk on the upstream bot, due to the src/ issue
mentioned on the review: A java target contains another java target in a
subdirectory, and due to the missing src/ the java files in the subtarget
get picked up twice.
> android: Pass (non-generated) .java files via a gyp filelist to javac.py
>
> Before this CL, the javac action rules called `find javadir -name "*.java"` to
> compute the action's inputs, and passed javadir to javac.py. The script then
> again looked for all .java files in that directory. One issue with that approach
> is that if a java file gets removed, the javac.py action didn't get executed again
> since actions are only run if their commandline changes or an input file is newer
> than an output file – a disappearing input doesn't mark an action dirty. (As
> workaround, the md5 hash of all .java files is currently passed in an
> --ignore parameter, so removal of a java file will lead to a changing
> commandline, which _will_ cause a rebuild.)
>
> After this CL, the result of `find javadir -name "*.java"` is written to a gyp
> filelist (see https://codereview.chromium.org/27418008/), and the filelist
> is passed to javac.py. gyp writes filelists exactly if their contents would
> change, so removal of java file will change the mtime of the filelist, which will
> cause a rebuild. Another advantage is that the list of java files is computed in
> only one place.
>
> This CL doesn't yet remove the md5 hack, but it makes it possible to do so
> in a follow-up change.
>
> (This approach doesn't work for generated java files, because these might
> not yet exist at gyp time. Rename --src-dirs to --src-gendirs and keep it in
> use for generated files. The dependency handling of generated java files is
> done through stamp files, so the md5 hack isn't needed for them.)
>
> No intended behavior change.
>
> BUG=177552
> R=cjhopman@chromium.org
>
> Review URL: https://codereview.chromium.org/193693002
TBR=thakis@chromium.org
Review URL: https://codereview.chromium.org/194293002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256127 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build/java_apk.gypi')
-rw-r--r-- | build/java_apk.gypi | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/build/java_apk.gypi b/build/java_apk.gypi index 78c7180..f9387cd2 100644 --- a/build/java_apk.gypi +++ b/build/java_apk.gypi @@ -513,19 +513,19 @@ 'action_name': 'javac_<(_target_name)', 'message': 'Compiling java for <(_target_name)', 'variables': { - 'gen_src_dirs': [ + 'all_src_dirs': [ + '<(java_in_dir)/src', '<(intermediate_dir)/gen', + '>@(additional_src_dirs)', '>@(generated_src_dirs)', ], - # If there is a separate find for additional_src_dirs, it will find the - # wrong .java files when additional_src_dirs is empty. - 'java_source_list': '>|(javasources.<(_target_name).gypcmd >!@(find >(java_in_dir) >(additional_src_dirs) -name "*.java"))', - }, 'inputs': [ '<(DEPTH)/build/android/gyp/util/build_utils.py', '<(DEPTH)/build/android/gyp/javac.py', - '>(java_source_list)', + # If there is a separate find for additional_src_dirs, it will find the + # wrong .java files when additional_src_dirs is empty. + '>!@(find >(java_in_dir) >(additional_src_dirs) -name "*.java")', '>@(input_jars_paths)', '<(codegen_stamp)', '>@(compile_input_paths)', @@ -537,8 +537,7 @@ 'python', '<(DEPTH)/build/android/gyp/javac.py', '--output-dir=<(classes_dir)', '--classpath=>(input_jars_paths) <(android_sdk_jar)', - '--src-filelist=>(java_source_list)', - '--src-gendirs=>(gen_src_dirs)', + '--src-dirs=>(all_src_dirs)', '--javac-includes=<(javac_includes)', '--chromium-code=<(chromium_code)', '--stamp=<(compile_stamp)', |