1use_relative_paths = True
2
3vars = {
4  # By default, we should check out everything needed to run on the main
5  # chromium waterfalls. This var can be also be set to "small", in order
6  # to skip things are not strictly needed to build chromium for development
7  # purposes.
8  'checkout_configuration': 'default',
9
10  # TODO(dpranke): change to != "small" once != is supported.
11  'checkout_instrumented_libraries': 'checkout_linux and checkout_configuration == "default"',
12
13  'chromium_git': 'https://chromium.googlesource.com',
14  'pdfium_git': 'https://pdfium.googlesource.com',
15
16  'android_ndk_revision': 'd57523210239b867fa4fb9d05c2aacc3f1802fe0',
17  'binutils_revision': 'e146228c20af6af922887d0be2d3641cbffb33c5',
18  'build_revision': '097c79babc9b2ce40b61c3e33da1c6681acf837c',
19  'buildtools_revision': 'b36c7b60ed73919b157c7d23ec5fce2aa69ab05e',
20  'catapult_revision': 'd624b3ced2c81d4fb4ea98a8dbb4532272cc1e0a',
21  'clang_revision': 'ac1e5f78c39dc2a262af149404dd36c140eecdc1',
22  'cygwin_revision': 'c89e446b273697fadf3a10ff1007a97c0b7de6df',
23  'depot_tools_revision': '2e8d8348b8574f06c26dbf3ef959b5df11ba5148',
24  'freetype_revision': '2c048a8a622e9f44f255aa3316026f124ac9ecbc',
25  'gmock_revision': '29763965ab52f24565299976b936d1265cb6a271',
26  'gtest_revision': '8245545b6dc9c4703e6496d1efd19e975ad2b038',
27  'icu_revision': 'e3b480d3be4446ea17011c0cdc9c4cd380a5c58f',
28  'instrumented_lib_revision': '28417458ac4dc79f68915079d0f283f682504cc0',
29  'jinja2_revision': 'd34383206fa42d52faa10bb9931d6d538f3a57e0',
30  'jpeg_turbo_revision': '7260e4d8b8e1e40b17f03fafdf1cd83296900f76',
31  'markupsafe_revision': '8f45f5cfa0009d2a70589bcda0349b8cb2b72783',
32  'pdfium_tests_revision': '3d6228da656a3974d72223a702e6804df494703e',
33  'skia_revision': '40ca2087ef0752d78fd2e0995471102fe96fe9fe',
34  'tools_memory_revision': '427f10475e1a8d72424c29d00bf689122b738e5d',
35  'trace_event_revision': '0e9a47d74970bee1bbfc063c47215406f8918699',
36  'v8_revision': '0c287882ea233f299a91f6b72b56d8faaecf52c0',
37  'yasm_source_revision': 'b98114e18d8b9b84586b10d24353ab8616d4c5fc',
38  'zlib_revision': '91155b5d0737713fc7f0499cf0ba2c4f2af24014',
39}
40
41deps = {
42  "base/trace_event/common":
43    Var('chromium_git') + "/chromium/src/base/trace_event/common.git@" +
44        Var('trace_event_revision'),
45
46  "build":
47    Var('chromium_git') + "/chromium/src/build.git@" + Var('build_revision'),
48
49  "buildtools":
50    Var('chromium_git') + "/chromium/buildtools.git@" +
51        Var('buildtools_revision'),
52
53  "testing/corpus":
54    Var('pdfium_git') + "/pdfium_tests@" + Var('pdfium_tests_revision'),
55
56  "testing/gmock":
57    Var('chromium_git') + "/external/googlemock.git@" + Var('gmock_revision'),
58
59  "testing/gtest":
60    Var('chromium_git') + "/external/googletest.git@" + Var('gtest_revision'),
61
62  "third_party/binutils":
63    Var('chromium_git') + "/chromium/src/third_party/binutils.git@" +
64        Var('binutils_revision'),
65
66  'third_party/depot_tools':
67    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' +
68        Var('depot_tools_revision'),
69
70  "third_party/freetype/src":
71    Var('chromium_git') + '/chromium/src/third_party/freetype2.git@' +
72        Var('freetype_revision'),
73
74  "third_party/icu":
75    Var('chromium_git') + "/chromium/deps/icu.git@" + Var('icu_revision'),
76
77  "third_party/instrumented_libraries":
78    Var('chromium_git') +
79        "/chromium/src/third_party/instrumented_libraries.git@" +
80        Var('instrumented_lib_revision'),
81
82  "third_party/jinja2":
83    Var('chromium_git') + "/chromium/src/third_party/jinja2.git@" +
84        Var('jinja2_revision'),
85
86  "third_party/markupsafe":
87    Var('chromium_git') + "/chromium/src/third_party/markupsafe.git@" +
88        Var('markupsafe_revision'),
89
90  "third_party/libjpeg_turbo":
91    Var('chromium_git') + "/chromium/deps/libjpeg_turbo.git@" +
92        Var('jpeg_turbo_revision'),
93
94  "third_party/skia":
95    Var('chromium_git') + '/skia.git@' +  Var('skia_revision'),
96
97  "third_party/zlib":
98    Var('chromium_git') + "/chromium/src/third_party/zlib.git@" +
99        Var('zlib_revision'),
100
101  'third_party/yasm/source/patched-yasm':
102    Var('chromium_git') + '/chromium/deps/yasm/patched-yasm.git@' +
103        Var('yasm_source_revision'),
104
105  "tools/clang":
106    Var('chromium_git') + "/chromium/src/tools/clang@" +  Var('clang_revision'),
107
108  # TODO(GYP): Remove this when no tools rely on GYP anymore.
109  "tools/gyp":
110    Var('chromium_git') + '/external/gyp.git@' +
111        'eb296f67da078ec01f5e3a9ea9cdc6d26d680161',
112
113  "tools/memory":
114    Var('chromium_git') + "/chromium/src/tools/memory@" +
115        Var('tools_memory_revision'),
116
117  "v8":
118    Var('chromium_git') + "/v8/v8.git@" + Var('v8_revision'),
119}
120
121deps_os = {
122  "android": {
123    "third_party/android_ndk":
124      Var('chromium_git') + "/android_ndk.git@" + Var('android_ndk_revision'),
125    "third_party/catapult":
126      Var('chromium_git') +
127          "/external/github.com/catapult-project/catapult.git@" +
128          Var('catapult_revision'),
129  },
130  "win": {
131    "v8/third_party/cygwin":
132      Var('chromium_git') + "/chromium/deps/cygwin@" + Var('cygwin_revision'),
133  },
134}
135
136recursedeps = [
137  # buildtools provides clang_format, libc++, and libc++abi
138  'buildtools',
139]
140
141include_rules = [
142  # Basic stuff that everyone can use.
143  # Note: public is not here because core cannot depend on public.
144  '+testing',
145  '+third_party/base',
146]
147
148specific_include_rules = {
149  # Allow embedder tests to use public APIs.
150  "(.*embeddertest\.cpp)": [
151      "+public",
152  ]
153}
154
155hooks = [
156  {
157    'name': 'gn_win',
158    'action': [ 'download_from_google_storage',
159                '--no_resume',
160                '--platform=win32',
161                '--no_auth',
162                '--bucket', 'chromium-gn',
163                '-s', 'pdfium/buildtools/win/gn.exe.sha1',
164    ],
165  },
166  {
167    'name': 'gn_mac',
168    'pattern': '.',
169    'action': [ 'download_from_google_storage',
170                '--no_resume',
171                '--platform=darwin',
172                '--no_auth',
173                '--bucket', 'chromium-gn',
174                '-s', 'pdfium/buildtools/mac/gn.sha1',
175    ],
176  },
177  {
178    'name': 'gn_linux64',
179    'pattern': '.',
180    'action': [ 'download_from_google_storage',
181                '--no_resume',
182                '--platform=linux*',
183                '--no_auth',
184                '--bucket', 'chromium-gn',
185                '-s', 'pdfium/buildtools/linux64/gn.sha1',
186    ],
187  },
188  # Pull clang-format binaries using checked-in hashes.
189  {
190    'name': 'clang_format_win',
191    'pattern': '.',
192    'action': [ 'download_from_google_storage',
193                '--no_resume',
194                '--platform=win32',
195                '--no_auth',
196                '--bucket', 'chromium-clang-format',
197                '-s', 'pdfium/buildtools/win/clang-format.exe.sha1',
198    ],
199  },
200  {
201    'name': 'clang_format_mac',
202    'pattern': '.',
203    'action': [ 'download_from_google_storage',
204                '--no_resume',
205                '--platform=darwin',
206                '--no_auth',
207                '--bucket', 'chromium-clang-format',
208                '-s', 'pdfium/buildtools/mac/clang-format.sha1',
209    ],
210  },
211  {
212    'name': 'clang_format_linux',
213    'pattern': '.',
214    'action': [ 'download_from_google_storage',
215                '--no_resume',
216                '--platform=linux*',
217                '--no_auth',
218                '--bucket', 'chromium-clang-format',
219                '-s', 'pdfium/buildtools/linux64/clang-format.sha1',
220    ],
221  },
222  {
223    # Pull clang
224    'name': 'clang',
225    'pattern': '.',
226    'action': ['python',
227               'pdfium/tools/clang/scripts/update.py'
228    ],
229  },
230  {
231    'name': 'binutils',
232    'pattern': 'src/third_party/binutils',
233    'condition': 'host_os == "linux"',
234    'action': [
235        'python',
236        'pdfium/third_party/binutils/download.py',
237    ],
238  },
239  {
240    # Downloads the current stable linux sysroot to build/linux/ if needed.
241    # This sysroot updates at about the same rate that the chrome build deps
242    # change.
243    'name': 'sysroot',
244    'pattern': '.',
245    'action': ['python', 'pdfium/build/linux/sysroot_scripts/install-sysroot.py',
246               '--running-as-hook'],
247  },
248  {
249    # Update the Windows toolchain if necessary.
250    'name': 'win_toolchain',
251    'pattern': '.',
252    'condition': 'checkout_win',
253    'action': ['vpython', 'pdfium/build/vs_toolchain.py', 'update', '--force'],
254  },
255  {
256    # Update the Mac toolchain if necessary.
257    'name': 'mac_toolchain',
258    'pattern': '.',
259    'action': ['python', 'pdfium/build/mac_toolchain.py'],
260  },
261  {
262    'name': 'msan_chained_origins',
263    'pattern': '.',
264    'condition': 'checkout_instrumented_libraries',
265    'action': [ 'python',
266                'pdfium/third_party/depot_tools/download_from_google_storage.py',
267                "--no_resume",
268                "--no_auth",
269                "--bucket", "chromium-instrumented-libraries",
270                "-s", "pdfium/third_party/instrumented_libraries/binaries/msan-chained-origins-trusty.tgz.sha1",
271              ],
272  },
273  {
274    'name': 'msan_no_origins',
275    'pattern': '.',
276    'condition': 'checkout_instrumented_libraries',
277    'action': [ 'python',
278                'pdfium/third_party/depot_tools/download_from_google_storage.py',
279                "--no_resume",
280                "--no_auth",
281                "--bucket", "chromium-instrumented-libraries",
282                "-s", "pdfium/third_party/instrumented_libraries/binaries/msan-no-origins-trusty.tgz.sha1",
283              ],
284  },
285]
286