Index: platform_tools/android/gyp_gen/generate_user_config.py |
diff --git a/platform_tools/android/gyp_gen/generate_user_config.py b/platform_tools/android/gyp_gen/generate_user_config.py |
index 1fafc1d9799b2d79c214f31440d9f6f295ac9a85..957c363f0256eaf5d59709a78e20e64b637b2eb2 100644 |
--- a/platform_tools/android/gyp_gen/generate_user_config.py |
+++ b/platform_tools/android/gyp_gen/generate_user_config.py |
@@ -8,6 +8,7 @@ |
"""Function for generating the SkUserConfig file, customized for Android.""" |
import os |
+import shutil |
AUTOGEN_WARNING = ( |
@@ -27,7 +28,8 @@ AUTOGEN_WARNING = ( |
BUILD_GUARD = 'SkUserConfig_Android_DEFINED' |
-def generate_user_config(original_sk_user_config, target_dir, ordered_set): |
+def generate_user_config(original_sk_user_config, require_sk_user_config, |
+ target_dir, ordered_set): |
"""Generate the SkUserConfig file specific to the Android framework. |
Android needs its #defines in its skia/include/core directory, so that other |
@@ -39,6 +41,9 @@ def generate_user_config(original_sk_user_config, target_dir, ordered_set): |
Args: |
original_sk_user_config: Path to original SkUserConfig.h |
+ require_sk_user_config: If True, raise an AssertionError if |
+ SkUserConfig.h does not exist. Either way, if it does exist, copy it |
+ into the new file. |
target_dir: Directory within which the modified SkUserConfig.h will be |
written. Its name will be the same basename as |
original_sk_user_config. If None, the new file will be written to the |
@@ -50,7 +55,9 @@ def generate_user_config(original_sk_user_config, target_dir, ordered_set): |
AssertionError: If original_sk_user_config does not exist. |
""" |
- assert os.path.exists(original_sk_user_config) |
+ sk_user_config_exists = os.path.exists(original_sk_user_config) |
+ if require_sk_user_config: |
+ assert sk_user_config_exists |
dst_filename = os.path.basename(original_sk_user_config) |
if target_dir: |
@@ -62,9 +69,9 @@ def generate_user_config(original_sk_user_config, target_dir, ordered_set): |
# Copy the original exactly. This is merely for reference. Many of the |
# defines written to the file below, either manually or generated from the |
# gyp files, have explanations in the original SkUserConfig.h |
- with open(original_sk_user_config, 'r') as original: |
- for line in original: |
- dst.write(line) |
+ if sk_user_config_exists: |
+ with open(original_sk_user_config, 'r') as original: |
+ shutil.copyfileobj(original, dst) |
# Now add the defines specific to Android. Write a custom build guard to |
# ensure they don't get defined more than once. |