Add the ability to specify a target_os for gclient solutions

This ability is useful for versions of Chromium (i.e. Android) which want to
cross-compile to another platform that has a fixed set of custom dependencies.

Review URL: http://codereview.chromium.org/10127004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@134280 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient.py b/gclient.py
index 0ebd1e9..14da995 100644
--- a/gclient.py
+++ b/gclient.py
@@ -47,6 +47,14 @@
       { "pattern": "\\.(gif|jpe?g|pr0n|png)$",
         "action":  ["python", "image_indexer.py", "--all"]},
     ]
+
+Specifying a target OS
+  An optional key named "target_os" may be added to a gclient file to specify
+  one or more additional operating systems that should be considered when
+  processing the deps_os dict of a DEPS file.
+
+  Example:
+    target_os = [ "android" ]
 """
 
 __version__ = "0.6.4"
@@ -843,6 +851,10 @@
     except SyntaxError, e:
       gclient_utils.SyntaxErrorToError('.gclient', e)
 
+    # Append any target OS that is not already being enforced to the tuple.
+    target_os = config_dict.get('target_os', [])
+    self._enforced_os = tuple(set(self._enforced_os).union(target_os))
+
     deps_to_add = []
     for s in config_dict.get('solutions', []):
       try: