Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / instrumented_libraries / instrumented_libraries.gyp
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.
4
5 {
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',
13
14   'variables': {
15     'verbose_libraries_build%': 0,
16     'instrumented_libraries_jobs%': 1,
17   },
18
19   'jobs': '<(instrumented_libraries_jobs)',
20
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       ],
94       'conditions': [
95         ['asan==1', {
96           'dependencies': [
97             '<(_sanitizer_type)-libpixman-1-0',
98           ],
99         }],
100         ['msan==1', {
101           'dependencies': [
102             '<(_sanitizer_type)-libcups2',
103           ],
104         }],
105       ],
106       'actions': [
107         {
108           'action_name': 'fix_rpaths',
109           'inputs': [
110             'fix_rpaths.sh',
111           ],
112           'outputs': [
113             '<(PRODUCT_DIR)/instrumented_libraries/<(_sanitizer_type)/rpaths.fixed.txt',
114           ],
115           'action': [
116             '<(DEPTH)/third_party/instrumented_libraries/fix_rpaths.sh',
117             '<(PRODUCT_DIR)/instrumented_libraries/<(_sanitizer_type)'
118           ],
119         },
120       ],
121       'direct_dependent_settings': {
122         'target_conditions': [
123           ['_toolset=="target"', {
124             'ldflags': [
125               # Add RPATH to result binary to make it linking instrumented libraries ($ORIGIN means relative RPATH)
126               '-Wl,-R,\$$ORIGIN/instrumented_libraries/<(_sanitizer_type)/lib/:\$$ORIGIN/instrumented_libraries/<(_sanitizer_type)/usr/lib/x86_64-linux-gnu/',
127               '-Wl,-z,origin',
128             ],
129           }],
130         ],
131       },
132     },
133     {
134       'library_name': 'freetype',
135       'dependencies=': [],
136       'run_before_build': 'freetype.sh',
137       'includes': ['standard_instrumented_library_target.gypi'],
138     },
139     {
140       'library_name': 'libcairo2',
141       'dependencies=': [],
142       'extra_configure_flags': '--disable-gtk-doc',
143       'includes': ['standard_instrumented_library_target.gypi'],
144     },
145     {
146       'library_name': 'libdbus-1-3',
147       'dependencies=': [
148         '<(_sanitizer_type)-libglib2.0-0',
149       ],
150       'includes': ['standard_instrumented_library_target.gypi'],
151     },
152     {
153       'library_name': 'libdbus-glib-1-2',
154       'dependencies=': [
155         '<(_sanitizer_type)-libglib2.0-0',
156       ],
157       # Use system dbus-binding-tool. The just-built one is instrumented but
158       # doesn't have the correct RPATH, and will crash.
159       'extra_configure_flags': '--with-dbus-binding-tool=dbus-binding-tool',
160       'includes': ['standard_instrumented_library_target.gypi'],
161     },
162     {
163       'library_name': 'libexpat1',
164       'dependencies=': [],
165       'includes': ['standard_instrumented_library_target.gypi'],
166     },
167     {
168       'library_name': 'libffi6',
169       'dependencies=': [],
170       'includes': ['standard_instrumented_library_target.gypi'],
171     },
172     {
173       'library_name': 'libfontconfig1',
174       'dependencies=': [
175         '<(_sanitizer_type)-freetype',
176       ],
177       'extra_configure_flags': [
178         '--disable-docs',
179         '--sysconfdir=/etc/',
180         # From debian/rules.
181         '--with-add-fonts=/usr/X11R6/lib/X11/fonts,/usr/local/share/fonts',
182       ],
183       'run_before_build': 'libfontconfig.sh',
184       'includes': ['standard_instrumented_library_target.gypi'],
185     },
186     {
187       'library_name': 'libgcrypt11',
188       'dependencies=': [],
189       'extra_ldflags': '-Wl,-z,muldefs',
190       'includes': ['standard_instrumented_library_target.gypi'],
191     },
192     {
193       'library_name': 'libglib2.0-0',
194       'dependencies=': [],
195       'extra_configure_flags': [
196         '--disable-gtk-doc',
197         '--disable-gtk-doc-html',
198         '--disable-gtk-doc-pdf',
199       ],
200       'includes': ['standard_instrumented_library_target.gypi'],
201     },
202     {
203       'library_name': 'libgpg-error0',
204       'dependencies=': [],
205       'includes': ['standard_instrumented_library_target.gypi'],
206     },
207     {
208       'library_name': 'libnspr4',
209       'dependencies=': [],
210       'extra_configure_flags': '--enable-64bit',
211       'run_before_build': 'libnspr4.sh',
212       'includes': ['standard_instrumented_library_target.gypi'],
213     },
214     {
215       'library_name': 'libp11-kit0',
216       'dependencies=': [],
217       'includes': ['standard_instrumented_library_target.gypi'],
218     },
219     {
220       'library_name': 'libpcre3',
221       'dependencies=': [],
222       'extra_configure_flags': [
223         '--enable-utf8',
224         '--enable-unicode-properties',
225       ],
226       'includes': ['standard_instrumented_library_target.gypi'],
227     },
228     {
229       'library_name': 'libpixman-1-0',
230       'dependencies=': [
231         '<(_sanitizer_type)-libglib2.0-0',
232       ],
233       'includes': ['standard_instrumented_library_target.gypi'],
234     },
235     {
236       'library_name': 'libpng12-0',
237       'dependencies=': [],
238       'includes': ['standard_instrumented_library_target.gypi'],
239     },
240     {
241       'library_name': 'libx11-6',
242       'dependencies=': [],
243       'extra_configure_flags': '--disable-specs',
244       'includes': ['standard_instrumented_library_target.gypi'],
245     },
246     {
247       'library_name': 'libxau6',
248       'dependencies=': [],
249       'includes': ['standard_instrumented_library_target.gypi'],
250     },
251     {
252       'library_name': 'libxcb1',
253       'dependencies=': [],
254       'extra_configure_flags': '--disable-build-docs',
255       'includes': ['standard_instrumented_library_target.gypi'],
256     },
257     {
258       'library_name': 'libxcomposite1',
259       'dependencies=': [],
260       'includes': ['standard_instrumented_library_target.gypi'],
261     },
262     {
263       'library_name': 'libxcursor1',
264       'dependencies=': [],
265       'includes': ['standard_instrumented_library_target.gypi'],
266     },
267     {
268       'library_name': 'libxdamage1',
269       'dependencies=': [],
270       'includes': ['standard_instrumented_library_target.gypi'],
271     },
272     {
273       'library_name': 'libxdmcp6',
274       'dependencies=': [],
275       'extra_configure_flags': '--disable-docs',
276       'includes': ['standard_instrumented_library_target.gypi'],
277     },
278     {
279       'library_name': 'libxext6',
280       'dependencies=': [],
281       'extra_configure_flags': '--disable-specs',
282       'includes': ['standard_instrumented_library_target.gypi'],
283     },
284     {
285       'library_name': 'libxfixes3',
286       'dependencies=': [],
287       'includes': ['standard_instrumented_library_target.gypi'],
288     },
289     {
290       'library_name': 'libxi6',
291       'dependencies=': [],
292       'extra_configure_flags': [
293         '--disable-specs',
294         '--disable-docs',
295       ],
296       'includes': ['standard_instrumented_library_target.gypi'],
297     },
298     {
299       'library_name': 'libxinerama1',
300       'dependencies=': [],
301       'includes': ['standard_instrumented_library_target.gypi'],
302     },
303     {
304       'library_name': 'libxrandr2',
305       'dependencies=': [],
306       'includes': ['standard_instrumented_library_target.gypi'],
307     },
308     {
309       'library_name': 'libxrender1',
310       'dependencies=': [],
311       'includes': ['standard_instrumented_library_target.gypi'],
312     },
313     {
314       'library_name': 'libxss1',
315       'dependencies=': [],
316       'includes': ['standard_instrumented_library_target.gypi'],
317     },
318     {
319       'library_name': 'libxtst6',
320       'dependencies=': [],
321       'extra_configure_flags': '--disable-specs',
322       'includes': ['standard_instrumented_library_target.gypi'],
323     },
324     {
325       'library_name': 'zlib1g',
326       'dependencies=': [],
327       'includes': ['standard_instrumented_library_target.gypi'],
328     },
329     {
330       'library_name': 'nss',
331       'dependencies=': [
332         '<(_sanitizer_type)-libnspr4',
333       ],
334       'run_before_build': 'nss.sh',
335       'build_method': 'custom_nss',
336       'includes': ['standard_instrumented_library_target.gypi'],
337     },
338     {
339       'library_name': 'pulseaudio',
340       'dependencies=': [
341         '<(_sanitizer_type)-libdbus-1-3',
342       ],
343       'run_before_build': 'pulseaudio.sh',
344       'jobs': 1,
345       'includes': ['standard_instrumented_library_target.gypi'],
346     },
347     {
348       'library_name': 'libasound2',
349       'dependencies=': [],
350       'run_before_build': 'libasound2.sh',
351       'includes': ['standard_instrumented_library_target.gypi'],
352     },
353     {
354       'library_name': 'libcups2',
355       'dependencies=': [],
356       'run_before_build': 'libcups2.sh',
357       'jobs': 1,
358       'extra_configure_flags': [
359         # All from debian/rules.
360         '--localedir=/usr/share/cups/locale',
361         '--enable-slp',
362         '--enable-libpaper',
363         '--enable-ssl',
364         '--enable-gnutls',
365         '--disable-openssl',
366         '--enable-threads',
367         '--enable-static',
368         '--enable-debug',
369         '--enable-dbus',
370         '--with-dbusdir=/etc/dbus-1',
371         '--enable-gssapi',
372         '--enable-avahi',
373         '--with-pdftops=/usr/bin/gs',
374         '--disable-launchd',
375         '--with-cups-group=lp',
376         '--with-system-groups=lpadmin',
377         '--with-printcap=/var/run/cups/printcap',
378         '--with-log-file-perm=0640',
379         '--with-local_protocols="CUPS dnssd"',
380         '--with-remote_protocols="CUPS dnssd"',
381         '--enable-libusb',
382       ],
383       'includes': ['standard_instrumented_library_target.gypi'],
384     },
385     {
386       'library_name': 'pango1.0',
387       'dependencies=': [
388         '<(_sanitizer_type)-libglib2.0-0',
389       ],
390       'extra_configure_flags': [
391         # Avoid https://bugs.gentoo.org/show_bug.cgi?id=425620
392         '--enable-introspection=no',
393       ],
394       'build_method': 'custom_pango',
395       'includes': ['standard_instrumented_library_target.gypi'],
396     },
397     {
398       'library_name': 'libcap2',
399       'dependencies=': [],
400       'build_method': 'custom_libcap',
401       'includes': ['standard_instrumented_library_target.gypi'],
402     },
403     {
404       'library_name': 'libudev0',
405       'dependencies=': [],
406       'extra_configure_flags': [
407           # Without this flag there's a linking step that doesn't honor LDFLAGS
408           # and fails.
409           # TODO(earthdok): find a better fix.
410           '--disable-gudev'
411       ],
412       'includes': ['standard_instrumented_library_target.gypi'],
413     },
414     {
415       'library_name': 'libtasn1-3',
416       'dependencies=': [],
417       'includes': ['standard_instrumented_library_target.gypi'],
418     },
419     {
420       'library_name': 'libgnome-keyring0',
421       'extra_configure_flags': [
422           # Build static libs (from debian/rules).
423           '--enable-static',
424           '--enable-tests=no',
425       ],
426       'extra_ldflags': '-Wl,--as-needed',
427       'dependencies=': [],
428       'includes': ['standard_instrumented_library_target.gypi'],
429     },
430     {
431       'library_name': 'libgtk2.0-0',
432       'extra_cflags': '-Wno-return-type',
433       'extra_configure_flags': [
434           # From debian/rules.
435           '--prefix=/usr',
436           '--sysconfdir=/etc',
437           '--enable-test-print-backend',
438           '--enable-introspection=no',
439           '--with-xinput=yes',
440       ],
441       'dependencies=': [],
442       'run_before_build': 'libgtk2.0-0.sh',
443       'includes': ['standard_instrumented_library_target.gypi'],
444     },
445     {
446       'library_name': 'libgdk-pixbuf2.0-0',
447       'extra_configure_flags': [
448           # From debian/rules.
449           '--with-libjasper',
450           '--with-x11',
451           # Make the build less problematic.
452           '--disable-introspection',
453       ],
454       'dependencies=': [],
455       'run_before_build': 'libgdk-pixbuf2.0-0.sh',
456       'includes': ['standard_instrumented_library_target.gypi'],
457     },
458     {
459       'library_name': 'libpci3',
460       'dependencies=': [],
461       'build_method': 'custom_libpci3',
462       'jobs': 1,
463       'includes': ['standard_instrumented_library_target.gypi'],
464     },
465     {
466       'library_name': 'libdbusmenu-glib4',
467       'extra_configure_flags': [
468           # From debian/rules.
469           '--disable-scrollkeeper',
470           '--enable-gtk-doc',
471           # --enable-introspection introduces a build step that attempts to run
472           # a just-built binary and crashes. Vala requires introspection.
473           # TODO(earthdok): find a better fix.
474           '--disable-introspection',
475           '--disable-vala',
476       ],
477       'dependencies=': [],
478       'includes': ['standard_instrumented_library_target.gypi'],
479     },
480   ],
481 }