mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Merge pull request #73 from abarth/improve_roll_tools
Improve roll.py to work with HEAD Chromium
This commit is contained in:
commit
d1789ee820
33
sky/tools/roll/android_build.patch
Normal file
33
sky/tools/roll/android_build.patch
Normal file
@ -0,0 +1,33 @@
|
||||
--- a/build/android/pylib/constants/__init__.py
|
||||
+++ b/build/android/pylib/constants/__init__.py
|
||||
@@ -184,7 +184,7 @@ class ANDROID_SDK_VERSION_CODES(object):
|
||||
LOLLIPOP_MR1 = 22
|
||||
|
||||
ANDROID_SDK_VERSION = ANDROID_SDK_VERSION_CODES.LOLLIPOP_MR1
|
||||
-ANDROID_SDK_BUILD_TOOLS_VERSION = '22.0.0'
|
||||
+ANDROID_SDK_BUILD_TOOLS_VERSION = '22.0.1'
|
||||
ANDROID_SDK_ROOT = os.path.join(DIR_SOURCE_ROOT,
|
||||
'third_party/android_tools/sdk')
|
||||
ANDROID_SDK_TOOLS = os.path.join(ANDROID_SDK_ROOT,
|
||||
--- a/build/common.gypi
|
||||
+++ b/build/common.gypi
|
||||
@@ -1682,7 +1682,7 @@
|
||||
'android_host_arch%': '<!(uname -m)',
|
||||
# Android API-level of the SDK used for compilation.
|
||||
'android_sdk_version%': '22',
|
||||
- 'android_sdk_build_tools_version%': '22.0.0',
|
||||
+ 'android_sdk_build_tools_version%': '22.0.1',
|
||||
'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')",
|
||||
},
|
||||
# Copy conditionally-set variables out one scope.
|
||||
--- a/build/config/android/config.gni
|
||||
+++ b/build/config/android/config.gni
|
||||
@@ -17,7 +17,7 @@ if (is_android) {
|
||||
if (!defined(default_android_sdk_root)) {
|
||||
default_android_sdk_root = "//third_party/android_tools/sdk"
|
||||
default_android_sdk_version = "22"
|
||||
- default_android_sdk_build_tools_version = "22.0.0"
|
||||
+ default_android_sdk_build_tools_version = "22.0.1"
|
||||
}
|
||||
|
||||
if (!defined(google_play_services_library)) {
|
||||
43
sky/tools/roll/patch.py
Executable file
43
sky/tools/roll/patch.py
Executable file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright 2014 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.
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import utils
|
||||
|
||||
def patch_and_filter():
|
||||
"""Applies the *.patch files in the current dir and some hardcoded filters."""
|
||||
os.chdir(utils.mojo_root_dir)
|
||||
|
||||
utils.filter_file("build/landmines.py",
|
||||
lambda line: not "gyp_environment" in line)
|
||||
utils.commit("filter gyp_environment out of build/landmines.py")
|
||||
|
||||
patch()
|
||||
|
||||
|
||||
def patch(relative_patches_dir=os.curdir):
|
||||
"""Applies the *.patch files in |relative_patches_dir|.
|
||||
|
||||
Args:
|
||||
relative_patches_dir: A directory path relative to the current directory.
|
||||
Defaults to the directory of this file.
|
||||
|
||||
Raises:
|
||||
subprocess.CalledProcessError if the patch couldn't be applied.
|
||||
"""
|
||||
patches_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)),
|
||||
relative_patches_dir)
|
||||
assert os.path.isdir(patches_dir)
|
||||
|
||||
os.chdir(utils.mojo_root_dir)
|
||||
for p in utils.find(["*.patch"], patches_dir):
|
||||
print "applying patch %s" % os.path.basename(p)
|
||||
try:
|
||||
utils.system(["git", "apply", p])
|
||||
utils.commit("applied patch %s" % os.path.basename(p))
|
||||
except subprocess.CalledProcessError:
|
||||
print "ERROR: patch %s failed to apply" % os.path.basename(p)
|
||||
raise
|
||||
@ -11,6 +11,7 @@ import sys
|
||||
import urllib2
|
||||
from utils import commit
|
||||
from utils import system
|
||||
import patch
|
||||
|
||||
# //base and its dependencies
|
||||
_base_deps = [
|
||||
@ -95,33 +96,39 @@ files_not_to_roll = [
|
||||
'build/config/ui.gni',
|
||||
'build/ls.py',
|
||||
'build/module_args/mojo.gni',
|
||||
'build/symlink.py',
|
||||
'tools/android/VERSION_LINUX_NDK',
|
||||
'tools/android/VERSION_LINUX_SDK',
|
||||
'tools/android/VERSION_MACOSX_NDK',
|
||||
'tools/android/VERSION_MACOSX_SDK',
|
||||
'tools/android/download_android_tools.py',
|
||||
]
|
||||
|
||||
|
||||
def rev(source_dir, dest_dir, dirs_to_rev):
|
||||
for d in dirs_to_rev:
|
||||
print "removing directory %s" % d
|
||||
try:
|
||||
system(["git", "rm", "-r", d], cwd=dest_dir)
|
||||
except subprocess.CalledProcessError:
|
||||
print "Could not remove %s" % d
|
||||
print "cloning directory %s" % d
|
||||
files = system(["git", "ls-files", d], cwd=source_dir)
|
||||
for f in files.splitlines():
|
||||
source_path = os.path.join(source_dir, f)
|
||||
if not os.path.isfile(source_path):
|
||||
continue
|
||||
dest_path = os.path.join(dest_dir, f)
|
||||
system(["mkdir", "-p", os.path.dirname(dest_path)], cwd=source_dir)
|
||||
system(["cp", source_path, dest_path], cwd=source_dir)
|
||||
system(["git", "add", d], cwd=dest_dir)
|
||||
def rev(source_dir, dest_dir, dirs_to_rev, name):
|
||||
for d in dirs_to_rev:
|
||||
print "removing directory %s" % d
|
||||
try:
|
||||
system(["git", "rm", "-r", d], cwd=dest_dir)
|
||||
except subprocess.CalledProcessError:
|
||||
print "Could not remove %s" % d
|
||||
print "cloning directory %s" % d
|
||||
files = system(["git", "ls-files", d], cwd=source_dir)
|
||||
for f in files.splitlines():
|
||||
source_path = os.path.join(source_dir, f)
|
||||
if not os.path.isfile(source_path):
|
||||
continue
|
||||
dest_path = os.path.join(dest_dir, f)
|
||||
system(["mkdir", "-p", os.path.dirname(dest_path)], cwd=source_dir)
|
||||
system(["cp", source_path, dest_path], cwd=source_dir)
|
||||
system(["git", "add", d], cwd=dest_dir)
|
||||
|
||||
for f in files_not_to_roll:
|
||||
system(["git", "checkout", "HEAD", f], cwd=dest_dir)
|
||||
for f in files_not_to_roll:
|
||||
system(["git", "checkout", "HEAD", f], cwd=dest_dir)
|
||||
|
||||
system(["git", "add", "."], cwd=dest_dir)
|
||||
src_commit = system(["git", "rev-parse", "HEAD"], cwd=source_dir).strip()
|
||||
commit("Update to mojo %s" % src_commit, cwd=dest_dir)
|
||||
system(["git", "add", "."], cwd=dest_dir)
|
||||
src_commit = system(["git", "rev-parse", "HEAD"], cwd=source_dir).strip()
|
||||
commit("Update to %s %s" % (name, src_commit), cwd=dest_dir)
|
||||
|
||||
|
||||
def main():
|
||||
@ -134,10 +141,17 @@ def main():
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.mojo_dir:
|
||||
rev(args.mojo_dir, args.dest_dir, dirs_from_mojo)
|
||||
rev(args.mojo_dir, args.dest_dir, dirs_from_mojo, 'mojo')
|
||||
|
||||
if args.chromium_dir:
|
||||
rev(args.chromium_dir, args.dest_dir, dirs_from_chromium)
|
||||
rev(args.chromium_dir, args.dest_dir, dirs_from_chromium, 'chromium')
|
||||
|
||||
try:
|
||||
patch.patch_and_filter()
|
||||
except subprocess.CalledProcessError:
|
||||
print "ERROR: Roll failed due to a patch not applying"
|
||||
print "Fix the patch to apply, commit the result, and re-run this script"
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user