Android Java SDK: use relative file paths in GN files.

Tested:
tools/gen_android_bp # no-op for this change
tools/gen_bazel # no-op for this change

Bug: b/386353531
Change-Id: I40c9a54aa2eb568a8ec7307af8166f722623e6bc
diff --git a/gn/perfetto_android_sdk.gni b/gn/perfetto_android_sdk.gni
index c509ae1..3ffc73e 100644
--- a/gn/perfetto_android_sdk.gni
+++ b/gn/perfetto_android_sdk.gni
@@ -58,7 +58,7 @@
     metadata = {
       perfetto_action_type_for_generator = [ "perfetto_android_library" ]
       if (defined(manifest)) {
-        perfetto_android_manifest = [ manifest ]
+        perfetto_android_manifest = [ get_path_info(manifest, "abspath") ]
       }
     }
   }
@@ -86,9 +86,10 @@
     outputs = [ out_path ]
     metadata = {
       perfetto_action_type_for_generator = [ "perfetto_android_app" ]
-      perfetto_android_manifest = [ manifest ]
+      perfetto_android_manifest = [ get_path_info(manifest, "abspath") ]
       if (defined(resource_files_glob)) {
-        perfetto_android_resource_files_glob = [ resource_files_glob ]
+        perfetto_android_resource_files_glob =
+            [ get_path_info(resource_files_glob, "abspath") ]
       }
     }
   }
diff --git a/src/java_sdk/main/BUILD.gn b/src/java_sdk/main/BUILD.gn
index ab9df0b..8e6d5c8 100644
--- a/src/java_sdk/main/BUILD.gn
+++ b/src/java_sdk/main/BUILD.gn
@@ -20,14 +20,14 @@
 perfetto_android_library("perfetto_lib") {
   sources = [ "java/com/google/perfetto/sdk/PerfettoExampleWrapper.java" ]
   deps = [ "cpp:perfetto_example_jni_lib" ]
-  manifest = "src/java_sdk/main/LibraryAndroidManifest.xml"
+  manifest = "LibraryAndroidManifest.xml"
   testonly = true
 }
 
 perfetto_android_app("perfetto_java_sdk_app") {
   sources = [ "java/com/google/perfetto/sdk/MainActivity.java" ]
-  manifest = "src/java_sdk/main/AndroidManifest.xml"
-  resource_files_glob = "src/java_sdk/main/res/**/*"
+  manifest = "AndroidManifest.xml"
+  resource_files_glob = "res/**/*"
   deps = [ ":perfetto_lib" ]
   testonly = true
 }
diff --git a/src/java_sdk/test/BUILD.gn b/src/java_sdk/test/BUILD.gn
index dba3db0..503ad6b 100644
--- a/src/java_sdk/test/BUILD.gn
+++ b/src/java_sdk/test/BUILD.gn
@@ -29,7 +29,7 @@
 
 perfetto_android_app("perfetto_java_sdk_test_app") {
   deps = [ ":perfetto_test_lib" ]
-  manifest = "src/java_sdk/test/AndroidTestManifest.xml"
+  manifest = "AndroidTestManifest.xml"
   testonly = true
 }
 
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index cc48224..e1f34cc 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -1088,8 +1088,9 @@
     module.jni_libs = [android_jni_lib_custom_target_name(target)
                        for target in jni_lib_targets]
 
-    module.manifest = target.manifest
-    module.resource_dirs = [target.resource_files.rstrip('/**/*')]
+    module.manifest = gn_utils.label_to_path(target.manifest)
+    module.resource_dirs = [
+        gn_utils.label_to_path(target.resource_files.rstrip('/**/*'))]
     module.jni_uses_platform_apis = True
     module.sdk_version = 30
     self.blueprint.add_module(module)
@@ -1107,7 +1108,7 @@
     module.static_libs = [self._bp_module_name_from_gn_target(dep)
                           for dep in non_jni_lib_deps]
 
-    module.manifest = target.manifest
+    module.manifest = gn_utils.label_to_path(target.manifest)
     module.sdk_version = 30
     self.blueprint.add_module(module)
     return module
diff --git a/tools/gen_bazel b/tools/gen_bazel
index 42290fc..8efd9f7 100755
--- a/tools/gen_bazel
+++ b/tools/gen_bazel
@@ -707,7 +707,7 @@
   label.srcs += (gn_utils.label_to_path(x) for x in target.sources)
   _populate_android_library_or_binary_deps(target, label)
   if target.manifest:
-    label.manifest = target.manifest
+    label.manifest = gn_utils.label_to_path(target.manifest)
   return [label]
 
 def gen_perfetto_android_binary(target: GnParser.Target):
@@ -717,9 +717,10 @@
   label.srcs += (gn_utils.label_to_path(x) for x in target.sources)
   _populate_android_library_or_binary_deps(target, label)
   if target.manifest:
-    label.manifest = target.manifest
+    label.manifest = gn_utils.label_to_path(target.manifest)
   if target.resource_files:
-    label.resource_files = 'glob(["%s"])' % target.resource_files
+    label.resource_files = 'glob(["%s"])' % gn_utils.label_to_path(
+      target.resource_files)
   if target.instruments:
     label.instruments = ':' + get_bazel_label_name(target.instruments)
   return [label]
diff --git a/tools/gn_utils.py b/tools/gn_utils.py
index 85a69a4..baf0f0c 100644
--- a/tools/gn_utils.py
+++ b/tools/gn_utils.py
@@ -504,12 +504,10 @@
       manifest = target.metadata.get('perfetto_android_manifest')
       if manifest:
         target.manifest = manifest[0]
-        assert (target.manifest.startswith('src/'))
       resource_files = target.metadata.get(
           'perfetto_android_resource_files_glob')
       if resource_files:
         target.resource_files = resource_files[0]
-        assert (target.resource_files.startswith('src/'))
         assert (target.resource_files.endswith('/**/*'))
       a_i_t_app = target.metadata.get('perfetto_android_a_i_t_app')
       target.a_i_t_app = a_i_t_app[0] if a_i_t_app else None