diff options
author | nyquist <nyquist@chromium.org> | 2015-05-08 21:18:03 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-09 04:18:26 +0000 |
commit | e94fb8bb82056ce3a255691a9326fd12707cf0cb (patch) | |
tree | 657fcc11ec0df970d875e69141282578cc92a034 | |
parent | 3084798c3631e7c254920702269060d3992a0adb (diff) | |
download | chromium_src-e94fb8bb82056ce3a255691a9326fd12707cf0cb.zip chromium_src-e94fb8bb82056ce3a255691a9326fd12707cf0cb.tar.gz chromium_src-e94fb8bb82056ce3a255691a9326fd12707cf0cb.tar.bz2 |
Add support for escaped target names in isolate driver (3rd try)
Currently the isolate_driver.py which creates the dependency files
used by the isolate system, does a simple split on all spaces when
trying to identify targets.
This can fail if the target name contains a space in the name. In
ninja, spaces are escaped with a $-prefix. An example would be
'Content$ Shell$ Helper.app'.
This CL adds support for such target names and ensures that they
stay as one item. Doing this uncovered a few missing dependencies
and a missing file in some .isolate-files for the component build
on Mac.
1st try: https://codereview.chromium.org/970203003/
1st revert: https://codereview.chromium.org/985753002/
2nd try: https://codereview.chromium.org/1103793002/
2nd revert: https://codereview.chromium.org/1129493003/
BUG=462248
Review URL: https://codereview.chromium.org/1130523003
Cr-Commit-Position: refs/heads/master@{#329038}
-rw-r--r-- | chrome/chrome.isolate | 7 | ||||
-rw-r--r-- | chrome/chrome_tests.gypi | 3 | ||||
-rw-r--r-- | chrome/interactive_ui_tests.isolate | 1 | ||||
-rw-r--r-- | chrome/sync_integration_tests.isolate | 1 | ||||
-rwxr-xr-x | tools/isolate_driver.py | 5 |
5 files changed, 16 insertions, 1 deletions
diff --git a/chrome/chrome.isolate b/chrome/chrome.isolate index e4dd9ef..c628c30 100644 --- a/chrome/chrome.isolate +++ b/chrome/chrome.isolate @@ -77,6 +77,13 @@ ], }, }], + ['OS=="mac" and component=="shared_library"', { + 'variables': { + 'files': [ + '<(PRODUCT_DIR)/libchrome_main_dll.dylib', + ], + }, + }], ['OS=="mac" and asan==1 and fastbuild==0', { 'variables': { 'files': [ diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 7d0c082..9971155 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -2758,6 +2758,9 @@ 'browser/sync/test/integration/single_client_dictionary_sync_test.cc', 'browser/sync/test/integration/two_client_dictionary_sync_test.cc', ], + 'dependencies': [ + 'chrome', + ], }], ['OS=="win"', { 'sources': [ diff --git a/chrome/interactive_ui_tests.isolate b/chrome/interactive_ui_tests.isolate index 0e37609..86cfe90 100644 --- a/chrome/interactive_ui_tests.isolate +++ b/chrome/interactive_ui_tests.isolate @@ -145,5 +145,6 @@ 'includes': [ '../base/base.isolate', '../gin/v8.isolate', + 'chrome.isolate', ], } diff --git a/chrome/sync_integration_tests.isolate b/chrome/sync_integration_tests.isolate index 3ff1056..0c01741 100644 --- a/chrome/sync_integration_tests.isolate +++ b/chrome/sync_integration_tests.isolate @@ -116,5 +116,6 @@ '../base/base.isolate', '../gin/v8.isolate', '../third_party/angle/angle.isolate', + 'chrome.isolate', ], } diff --git a/tools/isolate_driver.py b/tools/isolate_driver.py index 6c9f118..f51b824 100755 --- a/tools/isolate_driver.py +++ b/tools/isolate_driver.py @@ -24,6 +24,7 @@ import json import logging import os import posixpath +import re import StringIO import subprocess import sys @@ -141,7 +142,9 @@ def raw_build_to_deps(item): # TODO(maruel): Use a whitelist instead? .stamp, .so.TOC, .dylib.TOC, # .dll.lib, .exe and empty. # The first item is the build rule, e.g. 'link', 'cxx', 'phony', etc. - return filter(using_blacklist, item.split(' ')[1:]) + # In ninja build files, spaces in targets are escaped with a $-prefix. + # Use a negative lookbehind to not split on '$ '. + return filter(using_blacklist, re.split('(?<!\$) ', item)[1:]) def collect_deps(target, build_steps, dependencies_added, rules_seen): |