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

Side by Side Diff: tools/grab_deps.py

Issue 191133005: git-sync-deps tool (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: AnotherPatchSet Created 6 years, 9 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 unified diff | Download patch
« docs/quickstart.md ('K') | « docs/quickstart.md ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/python
2 # Copyright 2014 Google Inc.
3 #
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
6
7
8 import sys
9 import os
10 import subprocess
11 import git_utils
12 import subprocess
13 import misc_utils
14
15
16 deps = {
borenet 2014/03/10 18:36:12 We should definitely be reading the DEPS file inst
hal.canary 2014/03/10 20:03:08 Why write a parser?
epoger 2014/03/10 20:11:39 Because certain important users of Skia use DEPS f
borenet 2014/03/10 20:13:30 No parser is needed; we can do something like: env
17 "ALL" : {
18 "third_party/externals/depot_tools" : (
tfarina 2014/03/10 19:00:21 Then why we need an 'extra' copy of depot_tools. W
19 'https://chromium.googlesource.com/chromium/tools/depot_tools.git',
20 None # None means 'track origin/master'
21 ),
22 "third_party/externals/angle" : (
23 "https://chromium.googlesource.com/external/angleproject.git",
24 None
25 ),
26 "third_party/externals/fontconfig" : (
27 "https://skia.googlesource.com/third_party/fontconfig.git",
28 "2.11.0"
29 ),
30 "third_party/externals/freetype" : (
31 "https://skia.googlesource.com/third_party/freetype2.git",
32 "VER-2-5-0-1"
33 ),
34 "third_party/externals/gyp" : (
35 "https://chromium.googlesource.com/external/gyp.git",
36 "5917c6a6b77c9e97a0cbb66847194381bd36ec4c"
37 ),
38 "third_party/externals/iconv" : (
39 "https://skia.googlesource.com/third_party/libiconv.git",
40 "v1.14"
41 ),
42 "third_party/externals/libjpeg" : (
43 "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git",
44 "82ce8a6d4ebe12a177c0c3597192f2b4f09e81c3"
45 ),
46 "third_party/externals/jsoncpp" : (
47 "https://chromium.googlesource.com/external/jsoncpp/jsoncpp.git",
48 "ab1e40f3bce061ea6f9bdc60351d6cde2a4f872b",
49 ),
50 "third_party/externals/jsoncpp-chromium" : (
51 "https://chromium.googlesource.com/chromium/src/third_party/jsoncpp.git",
52 "41239939c0c60481f34887d52c038facf05f5533"
53 ),
54 "third_party/externals/libwebp" : (
55 "https://chromium.googlesource.com/webm/libwebp.git",
56 "3fe91635df8734b23f3c1b9d1f0c4fa8cfaf4e39"
57 ),
58 "third_party/externals/poppler" : (
59 "https://skia.googlesource.com/third_party/poppler.git",
60 "poppler-0.22.5",
61 ),
62 },
63 "android" : {
64 "platform_tools/android/third_party/externals/expat" : (
65 "https://android.googlesource.com/platform/external/expat.git",
66 "android-4.2.2_r1.2",
67 ),
68 "platform_tools/android/third_party/externals/gif" : (
69 "https://android.googlesource.com/platform/external/giflib.git",
70 "android-4.2.2_r1.2",
71 ),
72 "platform_tools/android/third_party/externals/png" : (
73 "https://android.googlesource.com/platform/external/libpng.git",
74 "android-4.2.2_r1.2",
75 ),
76 "platform_tools/android/third_party/externals/jpeg" : (
77 "https://android.googlesource.com/platform/external/jpeg.git",
78 "android-4.2.2_r1.2",
79 ),
80 },
81 "chromeos" : {
82 "platform_tools/chromeos/third_party/externals/gif" : (
83 "https://android.googlesource.com/platform/external/giflib.git",
84 "android-4.2.2_r1.2",
85 ),
86 "platform_tools/chromeos/toolchain/src/third_party/chromite" : (
87 "https://chromium.googlesource.com/chromiumos/chromite.git",
88 "d6a4c7e0ee4d53ddc5238dbddfc0417796a70e54",
89 ),
90 "platform_tools/chromeos/toolchain/src/third_party/pyelftools" : (
91 "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git",
92 "bdc1d380acd88d4bfaf47265008091483b0d614e",
93 ),
94 },
95 # barelinux is a DEPS target that has no shared libraries to link
96 # to, similar to android or chromeos.
97 "barelinux" : {
98 "third_party/externals/giflib" : (
99 "https://android.googlesource.com/platform/external/giflib.git",
100 "android-4.2.2_r1.2",
101 ),
102 "third_party/externals/libpng" : (
103 "https://android.googlesource.com/platform/external/libpng.git",
104 "android-4.2.2_r1.2",
105 ),
106 "third_party/externals/zlib" : (
107 "https://android.googlesource.com/platform/external/zlib.git",
108 "android-4.2.2_r1.2",
109 ),
110 }
111 }
112
113
114 def git_checkout_to_directory(repo, checkout, directory):
115 """TODO(halcanary): document this function.
116 """
117 git = git_utils.git_executable()
118 assert git
119 git_path = os.path.join(directory, '.git')
120 if os.path.exists(directory) and not os.path.isdir(git_path):
121 if os.path.isdir(directory) and not os.path.islink(directory):
122 shutil.rmtree(directory)
123 elif os.path.isdir(directory) and not os.path.islink(directory):
124 os.remove(directory)
125 if not os.path.isdir(directory):
126 subprocess.check_call([git, 'clone', repo, directory])
127 subprocess.check_call([git, 'fetch'])
128 with misc_utils.ChangeDir(directory):
129 if not checkout:
130 checkout = 'origin/master'
131 print '>>>>', repo
132 print '>>>>', checkout
133 subprocess.check_call([git, 'checkout', '--quiet', checkout])
134 print
borenet 2014/03/10 18:36:12 I'd like to simplify this logic. I think we can m
hal.canary 2014/03/10 20:03:08 Your logic is fine, but I prefer git-checkout to g
borenet 2014/03/10 20:13:30 Why? Just curious. IMO reset is nice because it
135
136
137 def main(argv):
138 dependencies = deps["ALL"].copy()
139 for arg in argv:
140 if arg not in deps:
141 print arg, '?'
142 exit(1)
143 for dep in deps[arg]:
144 dependencies[dep] = deps[arg][dep]
145 for directory in dependencies:
146 repo, checkout = dependencies[directory]
147 git_checkout_to_directory(repo, checkout, directory)
148
149
150 if __name__ == '__main__':
151 main(sys.argv[1:])
152
OLDNEW
« docs/quickstart.md ('K') | « docs/quickstart.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698