Incorrect path for additional_jar_files in compile_java template |
||
Issue description
I am trying to add resources into android unit tests here [1], in target `junit_binary("android_junit_tests")`.
If I try to specify it via absolute path:
additional_jar_files = [ [
"//sdk/android/tests/resources/robolectric.properties",
"robolectric.properties",
] ]
then I get an error invoking javac.py:
python ../../build/android/gyp/javac.py --depfile=gen/android_junit_tests__compile_java.d --generated-dir=gen/android_junit_tests/generated_java --jar-path=gen/android_junit_tests.javac.jar --java-srcjars=\[\"gen/android_junit_tests__prepare_resources.srcjar\",\ \"gen/base/base_build_config_gen.srcjar\"\] --java-version=1.8 --full-classpath=@FileArg\(gen/android_junit_tests.build_config:deps_info:javac_full_classpath\) --interface-classpath=@FileArg\(gen/android_junit_tests.build_config:deps_info:javac_full_interface_classpath\) --processorpath=@FileArg\(gen/android_junit_tests.build_config:javac:processor_classpath\) --processors=@FileArg\(gen/android_junit_tests.build_config:javac:processor_classes\) --chromium-code=1 --use-errorprone-path bin/errorprone --processorpath=\[\"lib.java/tools/android/errorprone_plugin/errorprone_plugin_java.jar\"\] --additional-jar-file=//sdk/android/tests/resources/robolectric.properties:robolectric.properties @gen/android_junit_tests.sources
...
IOError: [Errno 2] No such file or directory: '//sdk/android/tests/resources/robolectric.properties'
(notice `--additional-jar-file=//sdk/android/tests/resources/robolectric.properties:robolectric.properties` argument which is incorrect)
But if I try to use rebase_path (as in other usages of additional_jar_files, see [2]), then I get following error:
$ ninja -C out/android-Debug :android_junit_tests
ninja: error: '../../../../sdk/android/tests/resources/robolectric.properties', needed by 'gen/android_junit_tests.javac.jar', missing and no known rule to make it
Looks like there is something broken inside "compile_java" template, somewhere here: [3]
And current usages in [2] work only by coincidence, because they are all situated on 2-level directory depth.
IMO paths passed into `additional_jar_files` should not be rebased, they should be relative to current BUILD.gn file. And only inside "compile_java" template they should be rebased right before passing into `--additional-jar-file` arguments.
[1] https://cs.chromium.org/chromium/src/third_party/webrtc/BUILD.gn?l=623&rcl=d4a68bd932a1762b87b8630309ae4df8f6e7d9ff
[2] https://cs.chromium.org/search/?q=additional_jar_files+f:BUILD.gn&type=cs
[3] https://cs.chromium.org/chromium/src/build/config/android/internal_rules.gni?l=2755&rcl=8ad2ee9a838add8c5105b39c0e6414af89edad41
,
Nov 2
Perhaps I should underline that here in c#1:
> I am trying to add resources into android unit tests here [1], in target `junit_binary("android_junit_tests")`.
I mean WebRTC repository. That is why that BUILD.gn from [1] is not in third_party/webrtc directory, but right in /src.
,
Nov 6
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bcea5ed2d2242c3433dbeea8cabb354fa7397c43 commit bcea5ed2d2242c3433dbeea8cabb354fa7397c43 Author: Artem Titarenko <artit@chromium.org> Date: Tue Nov 06 16:29:03 2018 Fix rebasing path for additional_jar_files in android compile_java template Bug: 901324 Change-Id: Ib7efaefaecc54f72dc1a81559e195b20009fb0c1 Reviewed-on: https://chromium-review.googlesource.com/c/1314591 Commit-Queue: John Budorick <jbudorick@chromium.org> Reviewed-by: agrieve <agrieve@chromium.org> Reviewed-by: John Budorick <jbudorick@chromium.org> Cr-Commit-Position: refs/heads/master@{#605706} [modify] https://crrev.com/bcea5ed2d2242c3433dbeea8cabb354fa7397c43/build/config/android/internal_rules.gni [modify] https://crrev.com/bcea5ed2d2242c3433dbeea8cabb354fa7397c43/third_party/mockito/BUILD.gn [modify] https://crrev.com/bcea5ed2d2242c3433dbeea8cabb354fa7397c43/third_party/robolectric/BUILD.gn
,
Nov 7
|
||
►
Sign in to add a comment |
||
Comment 1 by artit@chromium.org
, Nov 2