Add version to r8lib source file attributes.

Bug: 201269335
Change-Id: I51a7343c20a641b1dda5da57cb20a27e710b6a52
diff --git a/tools/create_r8lib.py b/tools/create_r8lib.py
index 21dd48c..db28c44 100755
--- a/tools/create_r8lib.py
+++ b/tools/create_r8lib.py
@@ -30,13 +30,34 @@
       help='Additional libraries (JDK 1.8 rt.jar already included)')
   return parser.parse_args()
 
+def get_r8_version(r8jar):
+  cmd = [
+    jdk.GetJavaExecutable(),
+    '-ea',
+    '-cp',
+    r8jar,
+    'com.android.tools.r8.R8',
+    '--version']
+  result = subprocess.check_output(cmd).decode('UTF-8')
+  if 'build engineering' in result:
+    return subprocess.check_output(
+        ['git', 'rev-parse', 'HEAD']).decode('UTF-8').strip()
+  else:
+    # --version format is 'R8 <version> (build <build-info>)'
+    return result.split(' ')[1]
+
 def main():
   args = parse_options()
+  version = get_r8_version(args.r8jar)
+  map_id_template = version
+  source_file_template = 'R8_%MAP_ID_%MAP_HASH'
   # TODO(b/139725780): See if we can remove or lower the heap size (-Xmx8g).
   cmd = [jdk.GetJavaExecutable(), '-Xmx8g', '-ea']
   cmd.extend(['-cp', 'build/libs/r8_with_deps.jar', 'com.android.tools.r8.R8'])
   cmd.append(args.r8jar)
   cmd.append('--classfile')
+  cmd.extend(['--map-id-template', map_id_template])
+  cmd.extend(['--source-file-template', source_file_template])
   cmd.extend(['--output', args.output])
   cmd.extend(['--pg-map-output', args.output + '.map'])
   cmd.extend(['--lib', 'third_party/openjdk/openjdk-rt-1.8/rt.jar'])