build: pass explicitly --changelog to write_version_header.py

This will be needed for SoonG genrule sandboxing.
See aosp/1501004.

Test: m trace_processor_shell
Change-Id: If27f16b92e8acba3f472d024ff2b22ba3b04acb7
diff --git a/Android.bp b/Android.bp
index ba600ad..3f1cd6e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -6274,7 +6274,7 @@
   srcs: [
     "CHANGELOG",
   ],
-  cmd: "python3 $(location tools/write_version_header.py) --no_git --cpp_out=$(out)",
+  cmd: "python3 $(location tools/write_version_header.py) --no_git --changelog=$(location CHANGELOG) --cpp_out=$(out)",
   out: [
     "perfetto_version.gen.h",
   ],
diff --git a/BUILD b/BUILD
index 4dd68d7..da6b0ae 100644
--- a/BUILD
+++ b/BUILD
@@ -597,7 +597,7 @@
     outs = [
         "perfetto_version.gen.h",
     ],
-    cmd = "$(location gen_version_header_py) --cpp_out=$@",
+    cmd = "$(location gen_version_header_py) --cpp_out=$@ --changelog=CHANGELOG",
     exec_tools = [
         ":gen_version_header_py",
     ],
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 9ccc4b6..c090e85 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -25,7 +25,7 @@
         files_to_check='.*',
         files_to_skip=[
             'Android[.]bp', '.*[.]json$', '.*[.]sql$', '.*[.]out$',
-            'test/trace_processor/.*/index$', '.*\bBUILD$', 'WORKSPACE',
+            'test/trace_processor/.*/index$', '(.*/)?BUILD$', 'WORKSPACE',
             '.*/Makefile$', '/perfetto_build_flags.h$'
         ])
 
diff --git a/gn/gen_perfetto_version_header.gni b/gn/gen_perfetto_version_header.gni
index 6845eb6..29e02e9 100644
--- a/gn/gen_perfetto_version_header.gni
+++ b/gn/gen_perfetto_version_header.gni
@@ -24,7 +24,8 @@
 template("gen_perfetto_version_header") {
   action(target_name) {
     script = "${perfetto_root_path}tools/write_version_header.py"
-    inputs = [ "${perfetto_root_path}CHANGELOG" ]
+    changelog = "${perfetto_root_path}CHANGELOG"
+    inputs = [ changelog ]
     outputs = []
     args = []
     if (perfetto_build_standalone && !is_perfetto_build_generator) {
@@ -33,6 +34,8 @@
 
     if (defined(invoker.cpp_out)) {
       args += [
+        "--changelog",
+        rebase_path(changelog, root_build_dir),
         "--cpp_out",
         rebase_path(invoker.cpp_out, root_build_dir),
       ]
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index 098fdac..911973c 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -757,6 +757,7 @@
   module.cmd = ' '.join([
         'python3 $(location %s)' % script_path,
         '--no_git',
+        '--changelog=$(location CHANGELOG)',
         '--cpp_out=$(out)'
   ])
   blueprint.add_module(module)
diff --git a/tools/gen_bazel b/tools/gen_bazel
index 6a9fd40..61627ac 100755
--- a/tools/gen_bazel
+++ b/tools/gen_bazel
@@ -123,7 +123,8 @@
   label = BazelLabel(get_bazel_label_name(target.name), 'genrule')
   label.srcs += [re.sub('^//', '', x) for x in sorted(target.inputs)]
   label.outs += target.outputs
-  label.cmd = r'$(location gen_version_header_py) --cpp_out=$@'
+  label.cmd = r'$(location gen_version_header_py)'
+  label.cmd += r' --cpp_out=$@ --changelog=CHANGELOG'
   label.exec_tools += [':gen_version_header_py']
   return [label]
 
diff --git a/tools/write_version_header.py b/tools/write_version_header.py
index 7982f50..88dcb30 100755
--- a/tools/write_version_header.py
+++ b/tools/write_version_header.py
@@ -39,14 +39,15 @@
 SCM_REV_NOT_AVAILABLE = 'N/A'
 
 
-def get_latest_release():
+def get_latest_release(changelog_path):
   """Returns a string like 'v9.0'.
 
   It does so by searching the latest version mentioned in the CHANGELOG."""
-  if os.path.exists('CHANGELOG'):
-    changelog_path = 'CHANGELOG'
-  else:
-    changelog_path = os.path.join(PROJECT_ROOT, 'CHANGELOG')
+  if not changelog_path:
+    if os.path.exists('CHANGELOG'):
+      changelog_path = 'CHANGELOG'
+    else:
+      changelog_path = os.path.join(PROJECT_ROOT, 'CHANGELOG')
   with open(changelog_path) as f:
     for line in f.readlines():
       m = re.match('^(v\d+[.]\d+)\s.*$', line)
@@ -100,9 +101,10 @@
       help='Skips running git rev-parse, emits only the version from CHANGELOG')
   parser.add_argument('--cpp_out', help='Path of the generated .h file.')
   parser.add_argument('--ts_out', help='Path of the generated .ts file.')
+  parser.add_argument('--changelog', help='Path to CHANGELOG.')
   args = parser.parse_args()
 
-  release = get_latest_release()
+  release = get_latest_release(args.changelog)
   if args.no_git:
     git_sha1, commits_since_release = (SCM_REV_NOT_AVAILABLE, '')
   else: