Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(910)

Unified Diff: platform_tools/android/bin/android_framework_gyp.py

Issue 140503007: Scripts to generate Android.mk for framework Skia. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Respond to Elliot's comments in patch set 20. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | platform_tools/android/bin/gyp_to_android.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: platform_tools/android/bin/android_framework_gyp.py
diff --git a/platform_tools/android/bin/android_framework_gyp.py b/platform_tools/android/bin/android_framework_gyp.py
new file mode 100644
index 0000000000000000000000000000000000000000..7654492f0710f0ec1ff62c995a96cfc46d31f068
--- /dev/null
+++ b/platform_tools/android/bin/android_framework_gyp.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python
+
+# Copyright 2014 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""
+Modified version of gyp_skia, used by gyp_to_android.py to generate Android.mk
+"""
+
+import os
+import sys
+
+SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
+
+# Unlike gyp_skia, this file is nested deep inside Skia. Find Skia's trunk dir.
+# This line depends on the fact that the script is three levels deep
+# (specifically, it is in platform_tools/android/bin).
+SKIA_DIR = os.path.normpath(os.path.join(SCRIPT_DIR, os.pardir, os.pardir,
+ os.pardir))
+dir_contents = os.listdir(SKIA_DIR)
+assert 'third_party' in dir_contents and 'gyp' in dir_contents
+
+# Directory within which we can find the gyp source.
+GYP_SOURCE_DIR = os.path.join(SKIA_DIR, 'third_party', 'externals', 'gyp')
+
+# Ensure we import our current gyp source's module, not any version
+# pre-installed in your PYTHONPATH.
+sys.path.insert(0, os.path.join(GYP_SOURCE_DIR, 'pylib'))
+
+import gyp
+
+def main(target_dir, target_file, skia_arch_type, have_neon):
+ """
+ Create gypd files based on target_file.
+ @param target_dir Directory containing all gyp files, including common.gypi
+ @param target_file Gyp file to start on. Other files within target_dir will
+ be read if target_file depends on them.
+ @param skia_arch_type Target architecture to pass to gyp.
+ @param have_neon Whether to generate files including neon optimizations.
+ Only meaningful if skia_arch_type is 'arm'.
+ @return path Path to root gypd file created by running gyp.
+ """
+ # Set GYP_DEFINES for building for the android framework.
+ gyp_defines = ('skia_android_framework=1 OS=android skia_arch_type=%s '
+ % skia_arch_type)
+ if skia_arch_type == 'arm':
+ # Always use thumb and version 7 for arm
+ gyp_defines += 'arm_thumb=1 arm_version=7 '
+ if have_neon:
+ gyp_defines += 'arm_neon=1 '
+ else:
+ gyp_defines += 'arm_neon=0 '
+
+ os.environ['GYP_DEFINES'] = gyp_defines
+
+ args = []
+ args.extend(['--depth', '.'])
+ full_path = os.path.join(target_dir, target_file)
+ args.extend([full_path])
+ # Common conditions
+ args.extend(['-I', os.path.join(target_dir, 'common.gypi')])
+ # Use the debugging format. We'll use these to create one master make file.
+ args.extend(['-f', 'gypd'])
+
+ # Off we go...
+ ret = gyp.main(args)
+
+ if ret != 0:
+ raise Exception("gyp failed!")
+
+ # Running gyp should have created a gypd file, with the same name as
+ # full_path but with a 'd' on the end.
+ gypd_file = full_path + 'd'
+ if not os.path.exists(gypd_file):
+ raise Exception("gyp failed to produce gypd file!")
+
+ return gypd_file
« no previous file with comments | « no previous file | platform_tools/android/bin/gyp_to_android.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698