Fix issue with browser action toolbar putting all extension icons in overflow once...
[chromium-blink-merge.git] / third_party / instrumented_libraries / instrumented_libraries.gyp
blob935693a9b097ed71e2d0eb590ddd25f8132a7175
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   # Default value for all libraries.
7   'extra_configure_flags': '',
8   'extra_cflags': '',
9   'extra_cxxflags': '',
10   'extra_ldflags': '',
11   'run_before_build': '',
12   'build_method': 'destdir',
14   'variables': {
15     'verbose_libraries_build%': 0,
16     'instrumented_libraries_jobs%': 1,
17   },
19   'jobs': '<(instrumented_libraries_jobs)',
21   'conditions': [
22     ['asan==1', {
23       'sanitizer_type': 'asan',
24       'sanitizer_blacklist': '',
25     }],
26     ['msan==1', {
27       'sanitizer_type': 'msan',
28       'sanitizer_blacklist': '<(msan_blacklist)',
29     }],
30     ['tsan==1', {
31       'sanitizer_type': 'tsan',
32       'sanitizer_blacklist': '<(tsan_blacklist)',
33     }],
34     ['use_goma==1', {
35       'cc': '<(gomadir)/gomacc <!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang',
36       'cxx': '<(gomadir)/gomacc <!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang++',
37     }, {
38       'cc': '<!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang',
39       'cxx': '<!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang++',
40     }],
41   ],
42   'targets': [
43     {
44       'target_name': 'instrumented_libraries',
45       'type': 'none',
46       'variables': {
47         'prune_self_dependency': 1,
48         # Don't add this target to the dependencies of targets with type=none.
49         'link_dependency': 1,
50       },
51       'dependencies': [
52         '<(_sanitizer_type)-libcairo2',
53         '<(_sanitizer_type)-libexpat1',
54         '<(_sanitizer_type)-libffi6',
55         '<(_sanitizer_type)-libgcrypt11',
56         '<(_sanitizer_type)-libgpg-error0',
57         '<(_sanitizer_type)-libnspr4',
58         '<(_sanitizer_type)-libp11-kit0',
59         '<(_sanitizer_type)-libpcre3',
60         '<(_sanitizer_type)-libpng12-0',
61         '<(_sanitizer_type)-libx11-6',
62         '<(_sanitizer_type)-libxau6',
63         '<(_sanitizer_type)-libxcb1',
64         '<(_sanitizer_type)-libxcomposite1',
65         '<(_sanitizer_type)-libxcursor1',
66         '<(_sanitizer_type)-libxdamage1',
67         '<(_sanitizer_type)-libxdmcp6',
68         '<(_sanitizer_type)-libxext6',
69         '<(_sanitizer_type)-libxfixes3',
70         '<(_sanitizer_type)-libxi6',
71         '<(_sanitizer_type)-libxinerama1',
72         '<(_sanitizer_type)-libxrandr2',
73         '<(_sanitizer_type)-libxrender1',
74         '<(_sanitizer_type)-libxss1',
75         '<(_sanitizer_type)-libxtst6',
76         '<(_sanitizer_type)-zlib1g',
77         '<(_sanitizer_type)-libglib2.0-0',
78         '<(_sanitizer_type)-libdbus-1-3',
79         '<(_sanitizer_type)-libdbus-glib-1-2',
80         '<(_sanitizer_type)-nss',
81         '<(_sanitizer_type)-libfontconfig1',
82         '<(_sanitizer_type)-pulseaudio',
83         '<(_sanitizer_type)-libasound2',
84         '<(_sanitizer_type)-pango1.0',
85         '<(_sanitizer_type)-libcap2',
86         '<(_sanitizer_type)-libudev0',
87         '<(_sanitizer_type)-libtasn1-3',
88         '<(_sanitizer_type)-libgnome-keyring0',
89         '<(_sanitizer_type)-libgtk2.0-0',
90         '<(_sanitizer_type)-libgdk-pixbuf2.0-0',
91         '<(_sanitizer_type)-libpci3',
92         '<(_sanitizer_type)-libdbusmenu-glib4',
93         '<(_sanitizer_type)-liboverlay-scrollbar-0.2-0',
94         '<(_sanitizer_type)-libgconf-2-4',
95       ],
96       'conditions': [
97         ['asan==1', {
98           'dependencies': [
99             '<(_sanitizer_type)-libpixman-1-0',
100           ],
101         }],
102         ['msan==1', {
103           'dependencies': [
104             '<(_sanitizer_type)-libcups2',
105           ],
106         }],
107         ['tsan==1', {
108           'dependencies!': [
109             '<(_sanitizer_type)-libpng12-0',
110           ],
111         }],
112       ],
113       'actions': [
114         {
115           'action_name': 'fix_rpaths',
116           'inputs': [
117             'fix_rpaths.sh',
118           ],
119           'outputs': [
120             '<(PRODUCT_DIR)/instrumented_libraries/<(_sanitizer_type)/rpaths.fixed.txt',
121           ],
122           'action': [
123             '<(DEPTH)/third_party/instrumented_libraries/fix_rpaths.sh',
124             '<(PRODUCT_DIR)/instrumented_libraries/<(_sanitizer_type)'
125           ],
126         },
127       ],
128       'direct_dependent_settings': {
129         'target_conditions': [
130           ['_toolset=="target"', {
131             'ldflags': [
132               # Add RPATH to result binary to make it linking instrumented libraries ($ORIGIN means relative RPATH)
133               '-Wl,-R,\$$ORIGIN/instrumented_libraries/<(_sanitizer_type)/lib/:\$$ORIGIN/instrumented_libraries/<(_sanitizer_type)/usr/lib/x86_64-linux-gnu/',
134               '-Wl,-z,origin',
135             ],
136           }],
137         ],
138       },
139     },
140     {
141       'library_name': 'freetype',
142       'dependencies=': [],
143       'run_before_build': 'freetype.sh',
144       'includes': ['standard_instrumented_library_target.gypi'],
145     },
146     {
147       'library_name': 'libcairo2',
148       'dependencies=': [],
149       'extra_configure_flags': '--disable-gtk-doc',
150       'includes': ['standard_instrumented_library_target.gypi'],
151     },
152     {
153       'library_name': 'libdbus-1-3',
154       'dependencies=': [
155         '<(_sanitizer_type)-libglib2.0-0',
156       ],
157       'includes': ['standard_instrumented_library_target.gypi'],
158     },
159     {
160       'library_name': 'libdbus-glib-1-2',
161       'dependencies=': [
162         '<(_sanitizer_type)-libglib2.0-0',
163       ],
164       # Use system dbus-binding-tool. The just-built one is instrumented but
165       # doesn't have the correct RPATH, and will crash.
166       'extra_configure_flags': '--with-dbus-binding-tool=dbus-binding-tool',
167       'includes': ['standard_instrumented_library_target.gypi'],
168     },
169     {
170       'library_name': 'libexpat1',
171       'dependencies=': [],
172       'includes': ['standard_instrumented_library_target.gypi'],
173     },
174     {
175       'library_name': 'libffi6',
176       'dependencies=': [],
177       'includes': ['standard_instrumented_library_target.gypi'],
178     },
179     {
180       'library_name': 'libfontconfig1',
181       'dependencies=': [
182         '<(_sanitizer_type)-freetype',
183       ],
184       'extra_configure_flags': [
185         '--disable-docs',
186         '--sysconfdir=/etc/',
187         # From debian/rules.
188         '--with-add-fonts=/usr/X11R6/lib/X11/fonts,/usr/local/share/fonts',
189       ],
190       'run_before_build': 'libfontconfig.sh',
191       'includes': ['standard_instrumented_library_target.gypi'],
192     },
193     {
194       'library_name': 'libgcrypt11',
195       'dependencies=': [],
196       'extra_ldflags': '-Wl,-z,muldefs',
197       'includes': ['standard_instrumented_library_target.gypi'],
198     },
199     {
200       'library_name': 'libglib2.0-0',
201       'dependencies=': [],
202       'extra_configure_flags': [
203         '--disable-gtk-doc',
204         '--disable-gtk-doc-html',
205         '--disable-gtk-doc-pdf',
206       ],
207       'includes': ['standard_instrumented_library_target.gypi'],
208     },
209     {
210       'library_name': 'libgpg-error0',
211       'dependencies=': [],
212       'includes': ['standard_instrumented_library_target.gypi'],
213     },
214     {
215       'library_name': 'libnspr4',
216       'dependencies=': [],
217       'extra_configure_flags': [
218         '--enable-64bit',
219         # TSan reports data races on debug variables.
220         '--disable-debug',
221       ],
222       'run_before_build': 'libnspr4.sh',
223       'includes': ['standard_instrumented_library_target.gypi'],
224     },
225     {
226       'library_name': 'libp11-kit0',
227       'dependencies=': [],
228       'includes': ['standard_instrumented_library_target.gypi'],
229     },
230     {
231       'library_name': 'libpcre3',
232       'dependencies=': [],
233       'extra_configure_flags': [
234         '--enable-utf8',
235         '--enable-unicode-properties',
236       ],
237       'includes': ['standard_instrumented_library_target.gypi'],
238     },
239     {
240       'library_name': 'libpixman-1-0',
241       'dependencies=': [
242         '<(_sanitizer_type)-libglib2.0-0',
243       ],
244       'includes': ['standard_instrumented_library_target.gypi'],
245     },
246     {
247       'library_name': 'libpng12-0',
248       'dependencies=': [],
249       'includes': ['standard_instrumented_library_target.gypi'],
250     },
251     {
252       'library_name': 'libx11-6',
253       'dependencies=': [],
254       'extra_configure_flags': '--disable-specs',
255       'includes': ['standard_instrumented_library_target.gypi'],
256     },
257     {
258       'library_name': 'libxau6',
259       'dependencies=': [],
260       'includes': ['standard_instrumented_library_target.gypi'],
261     },
262     {
263       'library_name': 'libxcb1',
264       'dependencies=': [],
265       'extra_configure_flags': '--disable-build-docs',
266       'includes': ['standard_instrumented_library_target.gypi'],
267     },
268     {
269       'library_name': 'libxcomposite1',
270       'dependencies=': [],
271       'includes': ['standard_instrumented_library_target.gypi'],
272     },
273     {
274       'library_name': 'libxcursor1',
275       'dependencies=': [],
276       'includes': ['standard_instrumented_library_target.gypi'],
277     },
278     {
279       'library_name': 'libxdamage1',
280       'dependencies=': [],
281       'includes': ['standard_instrumented_library_target.gypi'],
282     },
283     {
284       'library_name': 'libxdmcp6',
285       'dependencies=': [],
286       'extra_configure_flags': '--disable-docs',
287       'includes': ['standard_instrumented_library_target.gypi'],
288     },
289     {
290       'library_name': 'libxext6',
291       'dependencies=': [],
292       'extra_configure_flags': '--disable-specs',
293       'includes': ['standard_instrumented_library_target.gypi'],
294     },
295     {
296       'library_name': 'libxfixes3',
297       'dependencies=': [],
298       'includes': ['standard_instrumented_library_target.gypi'],
299     },
300     {
301       'library_name': 'libxi6',
302       'dependencies=': [],
303       'extra_configure_flags': [
304         '--disable-specs',
305         '--disable-docs',
306       ],
307       'includes': ['standard_instrumented_library_target.gypi'],
308     },
309     {
310       'library_name': 'libxinerama1',
311       'dependencies=': [],
312       'includes': ['standard_instrumented_library_target.gypi'],
313     },
314     {
315       'library_name': 'libxrandr2',
316       'dependencies=': [],
317       'includes': ['standard_instrumented_library_target.gypi'],
318     },
319     {
320       'library_name': 'libxrender1',
321       'dependencies=': [],
322       'includes': ['standard_instrumented_library_target.gypi'],
323     },
324     {
325       'library_name': 'libxss1',
326       'dependencies=': [],
327       'includes': ['standard_instrumented_library_target.gypi'],
328     },
329     {
330       'library_name': 'libxtst6',
331       'dependencies=': [],
332       'extra_configure_flags': '--disable-specs',
333       'includes': ['standard_instrumented_library_target.gypi'],
334     },
335     {
336       'library_name': 'zlib1g',
337       'dependencies=': [],
338       'includes': ['standard_instrumented_library_target.gypi'],
339     },
340     {
341       'library_name': 'nss',
342       'dependencies=': [
343         '<(_sanitizer_type)-libnspr4',
344       ],
345       'run_before_build': 'nss.sh',
346       'build_method': 'custom_nss',
347       'includes': ['standard_instrumented_library_target.gypi'],
348     },
349     {
350       'library_name': 'pulseaudio',
351       'dependencies=': [
352         '<(_sanitizer_type)-libdbus-1-3',
353       ],
354       'run_before_build': 'pulseaudio.sh',
355       'jobs': 1,
356       'includes': ['standard_instrumented_library_target.gypi'],
357     },
358     {
359       'library_name': 'libasound2',
360       'dependencies=': [],
361       'run_before_build': 'libasound2.sh',
362       'includes': ['standard_instrumented_library_target.gypi'],
363     },
364     {
365       'library_name': 'libcups2',
366       'dependencies=': [],
367       'run_before_build': 'libcups2.sh',
368       'jobs': 1,
369       'extra_configure_flags': [
370         # All from debian/rules.
371         '--localedir=/usr/share/cups/locale',
372         '--enable-slp',
373         '--enable-libpaper',
374         '--enable-ssl',
375         '--enable-gnutls',
376         '--disable-openssl',
377         '--enable-threads',
378         '--enable-static',
379         '--enable-debug',
380         '--enable-dbus',
381         '--with-dbusdir=/etc/dbus-1',
382         '--enable-gssapi',
383         '--enable-avahi',
384         '--with-pdftops=/usr/bin/gs',
385         '--disable-launchd',
386         '--with-cups-group=lp',
387         '--with-system-groups=lpadmin',
388         '--with-printcap=/var/run/cups/printcap',
389         '--with-log-file-perm=0640',
390         '--with-local_protocols="CUPS dnssd"',
391         '--with-remote_protocols="CUPS dnssd"',
392         '--enable-libusb',
393       ],
394       'includes': ['standard_instrumented_library_target.gypi'],
395     },
396     {
397       'library_name': 'pango1.0',
398       'dependencies=': [
399         '<(_sanitizer_type)-libglib2.0-0',
400       ],
401       'extra_configure_flags': [
402         # Avoid https://bugs.gentoo.org/show_bug.cgi?id=425620
403         '--enable-introspection=no',
404       ],
405       'build_method': 'custom_pango',
406       'includes': ['standard_instrumented_library_target.gypi'],
407     },
408     {
409       'library_name': 'libcap2',
410       'dependencies=': [],
411       'build_method': 'custom_libcap',
412       'includes': ['standard_instrumented_library_target.gypi'],
413     },
414     {
415       'library_name': 'libudev0',
416       'dependencies=': [],
417       'extra_configure_flags': [
418           # Without this flag there's a linking step that doesn't honor LDFLAGS
419           # and fails.
420           # TODO(earthdok): find a better fix.
421           '--disable-gudev'
422       ],
423       'includes': ['standard_instrumented_library_target.gypi'],
424     },
425     {
426       'library_name': 'libtasn1-3',
427       'dependencies=': [],
428       'includes': ['standard_instrumented_library_target.gypi'],
429     },
430     {
431       'library_name': 'libgnome-keyring0',
432       'extra_configure_flags': [
433           # Build static libs (from debian/rules).
434           '--enable-static',
435           '--enable-tests=no',
436       ],
437       'extra_ldflags': '-Wl,--as-needed',
438       'dependencies=': [],
439       'includes': ['standard_instrumented_library_target.gypi'],
440     },
441     {
442       'library_name': 'libgtk2.0-0',
443       'extra_cflags': '-Wno-return-type',
444       'extra_configure_flags': [
445           # From debian/rules.
446           '--prefix=/usr',
447           '--sysconfdir=/etc',
448           '--enable-test-print-backend',
449           '--enable-introspection=no',
450           '--with-xinput=yes',
451       ],
452       'dependencies=': [],
453       'run_before_build': 'libgtk2.0-0.sh',
454       'includes': ['standard_instrumented_library_target.gypi'],
455     },
456     {
457       'library_name': 'libgdk-pixbuf2.0-0',
458       'extra_configure_flags': [
459           # From debian/rules.
460           '--with-libjasper',
461           '--with-x11',
462           # Make the build less problematic.
463           '--disable-introspection',
464       ],
465       'dependencies=': [],
466       'run_before_build': 'libgdk-pixbuf2.0-0.sh',
467       'includes': ['standard_instrumented_library_target.gypi'],
468     },
469     {
470       'library_name': 'libpci3',
471       'dependencies=': [],
472       'build_method': 'custom_libpci3',
473       'jobs': 1,
474       'includes': ['standard_instrumented_library_target.gypi'],
475     },
476     {
477       'library_name': 'libdbusmenu-glib4',
478       'extra_configure_flags': [
479           # From debian/rules.
480           '--disable-scrollkeeper',
481           '--enable-gtk-doc',
482           # --enable-introspection introduces a build step that attempts to run
483           # a just-built binary and crashes. Vala requires introspection.
484           # TODO(earthdok): find a better fix.
485           '--disable-introspection',
486           '--disable-vala',
487       ],
488       'dependencies=': [],
489       'includes': ['standard_instrumented_library_target.gypi'],
490     },
491     {
492       'library_name': 'liboverlay-scrollbar-0.2-0',
493       'extra_configure_flags': [
494           '--with-gtk=2',
495       ],
496       'dependencies=': [],
497       'includes': ['standard_instrumented_library_target.gypi'],
498     },
499     {
500       'library_name': 'libgconf-2-4',
501       'extra_configure_flags': [
502           # From debian/rules. (Even though --with-gtk=3.0 doesn't make sense.)
503           '--with-gtk=3.0',
504           '--disable-orbit',
505           # See above.
506           '--disable-introspection',
507       ],
508       'dependencies=': [],
509       'includes': ['standard_instrumented_library_target.gypi'],
510     },
511   ],