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': '',
11 'run_before_build': '',
12 'build_method': 'destdir',
15 'verbose_libraries_build%': 0,
16 'instrumented_libraries_jobs%': 1,
19 'jobs': '<(instrumented_libraries_jobs)',
23 'sanitizer_type': 'asan',
24 'sanitizer_blacklist': '',
27 'sanitizer_type': 'msan',
28 'sanitizer_blacklist': '<(msan_blacklist)',
31 'sanitizer_type': 'tsan',
32 'sanitizer_blacklist': '<(tsan_blacklist)',
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++',
38 'cc': '<!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang',
39 'cxx': '<!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang++',
44 'target_name': 'instrumented_libraries',
47 'prune_self_dependency': 1,
48 # Don't add this target to the dependencies of targets with type=none.
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',
99 '<(_sanitizer_type)-libpixman-1-0',
104 '<(_sanitizer_type)-libcups2',
109 '<(_sanitizer_type)-libpng12-0',
115 'action_name': 'fix_rpaths',
120 '<(PRODUCT_DIR)/instrumented_libraries/<(_sanitizer_type)/rpaths.fixed.txt',
123 '<(DEPTH)/third_party/instrumented_libraries/fix_rpaths.sh',
124 '<(PRODUCT_DIR)/instrumented_libraries/<(_sanitizer_type)'
128 'direct_dependent_settings': {
129 'target_conditions': [
130 ['_toolset=="target"', {
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/',
141 'library_name': 'freetype',
143 'run_before_build': 'freetype.sh',
144 'includes': ['standard_instrumented_library_target.gypi'],
147 'library_name': 'libcairo2',
149 'extra_configure_flags': '--disable-gtk-doc',
150 'includes': ['standard_instrumented_library_target.gypi'],
153 'library_name': 'libdbus-1-3',
155 '<(_sanitizer_type)-libglib2.0-0',
157 'includes': ['standard_instrumented_library_target.gypi'],
160 'library_name': 'libdbus-glib-1-2',
162 '<(_sanitizer_type)-libglib2.0-0',
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'],
170 'library_name': 'libexpat1',
172 'includes': ['standard_instrumented_library_target.gypi'],
175 'library_name': 'libffi6',
177 'includes': ['standard_instrumented_library_target.gypi'],
180 'library_name': 'libfontconfig1',
182 '<(_sanitizer_type)-freetype',
184 'extra_configure_flags': [
186 '--sysconfdir=/etc/',
188 '--with-add-fonts=/usr/X11R6/lib/X11/fonts,/usr/local/share/fonts',
190 'run_before_build': 'libfontconfig.sh',
191 'includes': ['standard_instrumented_library_target.gypi'],
194 'library_name': 'libgcrypt11',
196 'extra_ldflags': '-Wl,-z,muldefs',
197 'includes': ['standard_instrumented_library_target.gypi'],
200 'library_name': 'libglib2.0-0',
202 'extra_configure_flags': [
204 '--disable-gtk-doc-html',
205 '--disable-gtk-doc-pdf',
207 'includes': ['standard_instrumented_library_target.gypi'],
210 'library_name': 'libgpg-error0',
212 'includes': ['standard_instrumented_library_target.gypi'],
215 'library_name': 'libnspr4',
217 'extra_configure_flags': [
219 # TSan reports data races on debug variables.
222 'run_before_build': 'libnspr4.sh',
223 'includes': ['standard_instrumented_library_target.gypi'],
226 'library_name': 'libp11-kit0',
228 'includes': ['standard_instrumented_library_target.gypi'],
231 'library_name': 'libpcre3',
233 'extra_configure_flags': [
235 '--enable-unicode-properties',
237 'includes': ['standard_instrumented_library_target.gypi'],
240 'library_name': 'libpixman-1-0',
242 '<(_sanitizer_type)-libglib2.0-0',
244 'includes': ['standard_instrumented_library_target.gypi'],
247 'library_name': 'libpng12-0',
249 'includes': ['standard_instrumented_library_target.gypi'],
252 'library_name': 'libx11-6',
254 'extra_configure_flags': '--disable-specs',
255 'includes': ['standard_instrumented_library_target.gypi'],
258 'library_name': 'libxau6',
260 'includes': ['standard_instrumented_library_target.gypi'],
263 'library_name': 'libxcb1',
265 'extra_configure_flags': '--disable-build-docs',
266 'includes': ['standard_instrumented_library_target.gypi'],
269 'library_name': 'libxcomposite1',
271 'includes': ['standard_instrumented_library_target.gypi'],
274 'library_name': 'libxcursor1',
276 'includes': ['standard_instrumented_library_target.gypi'],
279 'library_name': 'libxdamage1',
281 'includes': ['standard_instrumented_library_target.gypi'],
284 'library_name': 'libxdmcp6',
286 'extra_configure_flags': '--disable-docs',
287 'includes': ['standard_instrumented_library_target.gypi'],
290 'library_name': 'libxext6',
292 'extra_configure_flags': '--disable-specs',
293 'includes': ['standard_instrumented_library_target.gypi'],
296 'library_name': 'libxfixes3',
298 'includes': ['standard_instrumented_library_target.gypi'],
301 'library_name': 'libxi6',
303 'extra_configure_flags': [
307 'includes': ['standard_instrumented_library_target.gypi'],
310 'library_name': 'libxinerama1',
312 'includes': ['standard_instrumented_library_target.gypi'],
315 'library_name': 'libxrandr2',
317 'includes': ['standard_instrumented_library_target.gypi'],
320 'library_name': 'libxrender1',
322 'includes': ['standard_instrumented_library_target.gypi'],
325 'library_name': 'libxss1',
327 'includes': ['standard_instrumented_library_target.gypi'],
330 'library_name': 'libxtst6',
332 'extra_configure_flags': '--disable-specs',
333 'includes': ['standard_instrumented_library_target.gypi'],
336 'library_name': 'zlib1g',
338 'includes': ['standard_instrumented_library_target.gypi'],
341 'library_name': 'nss',
343 '<(_sanitizer_type)-libnspr4',
345 'run_before_build': 'nss.sh',
346 'build_method': 'custom_nss',
347 'includes': ['standard_instrumented_library_target.gypi'],
350 'library_name': 'pulseaudio',
352 '<(_sanitizer_type)-libdbus-1-3',
354 'run_before_build': 'pulseaudio.sh',
356 'includes': ['standard_instrumented_library_target.gypi'],
359 'library_name': 'libasound2',
361 'run_before_build': 'libasound2.sh',
362 'includes': ['standard_instrumented_library_target.gypi'],
365 'library_name': 'libcups2',
367 'run_before_build': 'libcups2.sh',
369 'extra_configure_flags': [
370 # All from debian/rules.
371 '--localedir=/usr/share/cups/locale',
381 '--with-dbusdir=/etc/dbus-1',
384 '--with-pdftops=/usr/bin/gs',
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"',
394 'includes': ['standard_instrumented_library_target.gypi'],
397 'library_name': 'pango1.0',
399 '<(_sanitizer_type)-libglib2.0-0',
401 'extra_configure_flags': [
402 # Avoid https://bugs.gentoo.org/show_bug.cgi?id=425620
403 '--enable-introspection=no',
405 'build_method': 'custom_pango',
406 'includes': ['standard_instrumented_library_target.gypi'],
409 'library_name': 'libcap2',
411 'build_method': 'custom_libcap',
412 'includes': ['standard_instrumented_library_target.gypi'],
415 'library_name': 'libudev0',
417 'extra_configure_flags': [
418 # Without this flag there's a linking step that doesn't honor LDFLAGS
420 # TODO(earthdok): find a better fix.
423 'includes': ['standard_instrumented_library_target.gypi'],
426 'library_name': 'libtasn1-3',
428 'includes': ['standard_instrumented_library_target.gypi'],
431 'library_name': 'libgnome-keyring0',
432 'extra_configure_flags': [
433 # Build static libs (from debian/rules).
437 'extra_ldflags': '-Wl,--as-needed',
439 'includes': ['standard_instrumented_library_target.gypi'],
442 'library_name': 'libgtk2.0-0',
443 'extra_cflags': '-Wno-return-type',
444 'extra_configure_flags': [
448 '--enable-test-print-backend',
449 '--enable-introspection=no',
453 'run_before_build': 'libgtk2.0-0.sh',
454 'includes': ['standard_instrumented_library_target.gypi'],
457 'library_name': 'libgdk-pixbuf2.0-0',
458 'extra_configure_flags': [
462 # Make the build less problematic.
463 '--disable-introspection',
466 'run_before_build': 'libgdk-pixbuf2.0-0.sh',
467 'includes': ['standard_instrumented_library_target.gypi'],
470 'library_name': 'libpci3',
472 'build_method': 'custom_libpci3',
474 'includes': ['standard_instrumented_library_target.gypi'],
477 'library_name': 'libdbusmenu-glib4',
478 'extra_configure_flags': [
480 '--disable-scrollkeeper',
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',
489 'includes': ['standard_instrumented_library_target.gypi'],
492 'library_name': 'liboverlay-scrollbar-0.2-0',
493 'extra_configure_flags': [
497 'includes': ['standard_instrumented_library_target.gypi'],
500 'library_name': 'libgconf-2-4',
501 'extra_configure_flags': [
502 # From debian/rules. (Even though --with-gtk=3.0 doesn't make sense.)
506 '--disable-introspection',
509 'includes': ['standard_instrumented_library_target.gypi'],