Index: build/android/gyp_devil_jinja_processor.py |
diff --git a/build/android/gyp_devil_jinja_processor.py b/build/android/gyp_devil_jinja_processor.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..0c65cfcb351d0250e6473a027d26c3d33ad5ec20 |
--- /dev/null |
+++ b/build/android/gyp_devil_jinja_processor.py |
@@ -0,0 +1,66 @@ |
+#!/usr/bin/env python |
+# Copyright 2016 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+"""Special script for processing the devil config jinja file. |
+ |
+This script is needed because the PRODUCT_DIR is not known at gyp time. Many of |
+the jinja variables for the devil template are directories relative to the |
+PRODUCT_DIR. These paths cannot be computed at gyp time and need a separate |
+script. |
+""" |
+ |
+# TODO(mikecase): Delete this script once GYP is removed. |
+ |
+import argparse |
+import os |
+import subprocess |
+import sys |
+ |
+JINJA_TEMPLATE_SCRIPT = os.path.join(os.path.dirname(__file__), |
+ 'gyp', 'jinja_template.py') |
+ |
+def DevilJinjaProcessor(args): |
+ |
+ gen_dir = os.path.join(args.product_dir, 'gen') |
+ |
+ rebased_android_sdk_root = os.path.relpath(args.android_sdk_root, gen_dir) |
+ rebased_product_dir = os.path.relpath(args.product_dir, gen_dir) |
+ |
+ variables = ['android_app_abi=%s' % args.android_abi, |
+ 'android_sdk_root=%s' % rebased_android_sdk_root, |
+ 'build_tools_version=%s' % args.build_tools_version, |
+ 'output_dir=%s' % rebased_product_dir] |
+ |
+ output_file = os.path.join(gen_dir, 'devil_chromium.json') |
+ |
+ cmd = [JINJA_TEMPLATE_SCRIPT, |
+ '--inputs', args.input_file_path, |
+ '--output', output_file, |
+ '--variables', ' '.join(variables)] |
+ |
+ subprocess.call(cmd) |
+ |
+def main(): |
+ parser = argparse.ArgumentParser() |
+ |
+ parser.add_argument('--android-abi', required=True, |
+ help='Android app abi, e.g. armeabi-v7a.') |
+ parser.add_argument('--android-sdk-root', required=True, |
+ help='Path to the android sdk root.') |
+ parser.add_argument('--build-tools-version', required=True, |
+ help='Android build tools version.') |
+ parser.add_argument('--input-file-path', required=True, |
+ help='Path to input template file.') |
+ parser.add_argument('--output-file-name', required=True, |
+ help='Name of generated file. Will be put in gen/ ' |
+ 'under product directory.') |
+ parser.add_argument('--product-dir', required=True, |
+ help='Path to product directory.') |
+ |
+ args = parser.parse_args() |
+ DevilJinjaProcessor(args) |
+ |
+if __name__ == '__main__': |
+ sys.exit(main()) |