Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / build / linux / system.gyp
blobd33bdf420f351c07b70e4b7cd2e1e17e48869bab
1 # Copyright (c) 2012 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   'variables': {
7     'conditions': [
8       ['sysroot!=""', {
9         'pkg-config': '<(chroot_cmd) ./pkg-config-wrapper "<(sysroot)" "<(target_arch)" "<(system_libdir)"',
10       }, {
11         'pkg-config': 'pkg-config',
12       }],
13     ],
15     # If any of the linux_link_FOO below are set to 1, then the corresponding
16     # target will be linked against the FOO library (either dynamically or
17     # statically, depending on the pkg-config files), as opposed to loading the
18     # FOO library dynamically with dlopen.
19     'linux_link_libgps%': 0,
20     'linux_link_libpci%': 0,
21     'linux_link_libspeechd%': 0,
22     'linux_link_libbrlapi%': 0,
23   },
24   'conditions': [
25     [ 'chromeos==0 and use_ozone==0', {
26       # Hide GTK and related dependencies for Chrome OS and Ozone, so they won't get
27       # added back to Chrome OS and Ozone. Don't try to use GTK on Chrome OS and Ozone.
28       'targets': [
29         {
30           'target_name': 'gdk',
31           'type': 'none',
32           'conditions': [
33             ['_toolset=="target"', {
34               'direct_dependent_settings': {
35                 'cflags': [
36                   '<!@(<(pkg-config) --cflags gdk-2.0)',
37                 ],
38               },
39               'link_settings': {
40                 'ldflags': [
41                   '<!@(<(pkg-config) --libs-only-L --libs-only-other gdk-2.0)',
42                 ],
43                 'libraries': [
44                   '<!@(<(pkg-config) --libs-only-l gdk-2.0)',
45                 ],
46               },
47             }],
48           ],
49         },
50         {
51           'target_name': 'gtk',
52           'type': 'none',
53           'toolsets': ['host', 'target'],
54           'variables': {
55             # gtk requires gmodule, but it does not list it as a dependency
56             # in some misconfigured systems.
57             'gtk_packages': 'gmodule-2.0 gtk+-2.0 gthread-2.0',
58           },
59           'conditions': [
60             ['_toolset=="target"', {
61               'all_dependent_settings': {
62                 'cflags': [
63                   '<!@(<(pkg-config) --cflags <(gtk_packages))',
64                 ],
65               },
66               'link_settings': {
67                 'ldflags': [
68                   '<!@(<(pkg-config) --libs-only-L --libs-only-other <(gtk_packages))',
69                 ],
70                 'libraries': [
71                   '<!@(<(pkg-config) --libs-only-l <(gtk_packages))',
72                 ],
73               },
74             }, {
75               'all_dependent_settings': {
76                 'cflags': [
77                   '<!@(pkg-config --cflags <(gtk_packages))',
78                 ],
79               },
80               'link_settings': {
81                 'ldflags': [
82                   '<!@(pkg-config --libs-only-L --libs-only-other <(gtk_packages))',
83                 ],
84                 'libraries': [
85                   '<!@(pkg-config --libs-only-l <(gtk_packages))',
86                 ],
87               },
88             }],
89           ],
90         },
91         {
92           'target_name': 'gtkprint',
93           'type': 'none',
94           'conditions': [
95             ['_toolset=="target"', {
96               'direct_dependent_settings': {
97                 'cflags': [
98                   '<!@(<(pkg-config) --cflags gtk+-unix-print-2.0)',
99                 ],
100               },
101               'link_settings': {
102                 'ldflags': [
103                   '<!@(<(pkg-config) --libs-only-L --libs-only-other gtk+-unix-print-2.0)',
104                 ],
105                 'libraries': [
106                   '<!@(<(pkg-config) --libs-only-l gtk+-unix-print-2.0)',
107                 ],
108               },
109             }],
110           ],
111         },
112       ],  # targets
113     }],
114     [ 'use_x11==1 or ozone_platform_ozonex==1', {
115       # Hide X11 and related dependencies when use_x11=0
116       'targets': [
117         {
118           'target_name': 'x11',
119           'type': 'none',
120           'toolsets': ['host', 'target'],
121           'conditions': [
122             ['_toolset=="target"', {
123               'direct_dependent_settings': {
124                 'cflags': [
125                   '<!@(<(pkg-config) --cflags x11)',
126                 ],
127               },
128               'link_settings': {
129                 'ldflags': [
130                   '<!@(<(pkg-config) --libs-only-L --libs-only-other x11 xi)',
131                 ],
132                 'libraries': [
133                   '<!@(<(pkg-config) --libs-only-l x11 xi)',
134                 ],
135               },
136             }, {
137               'direct_dependent_settings': {
138                 'cflags': [
139                   '<!@(pkg-config --cflags x11)',
140                 ],
141               },
142               'link_settings': {
143                 'ldflags': [
144                   '<!@(pkg-config --libs-only-L --libs-only-other x11 xi)',
145                 ],
146                 'libraries': [
147                   '<!@(pkg-config --libs-only-l x11 xi)',
148                 ],
149               },
150             }],
151           ],
152         },
153         {
154           'target_name': 'xcursor',
155           'type': 'none',
156           'direct_dependent_settings': {
157             'cflags': [
158               '<!@(<(pkg-config) --cflags xcursor)',
159             ],
160           },
161           'link_settings': {
162             'ldflags': [
163               '<!@(<(pkg-config) --libs-only-L --libs-only-other xcursor)',
164             ],
165             'libraries': [
166               '<!@(<(pkg-config) --libs-only-l xcursor)',
167             ],
168           },
169         },
170         {
171           'target_name': 'xcomposite',
172           'type': 'none',
173           'direct_dependent_settings': {
174             'cflags': [
175               '<!@(<(pkg-config) --cflags xcomposite)',
176             ],
177           },
178           'link_settings': {
179             'ldflags': [
180               '<!@(<(pkg-config) --libs-only-L --libs-only-other xcomposite)',
181             ],
182             'libraries': [
183               '<!@(<(pkg-config) --libs-only-l xcomposite)',
184             ],
185           },
186         },
187         {
188           'target_name': 'xdamage',
189           'type': 'none',
190           'direct_dependent_settings': {
191             'cflags': [
192               '<!@(<(pkg-config) --cflags xdamage)',
193             ],
194           },
195           'link_settings': {
196             'ldflags': [
197               '<!@(<(pkg-config) --libs-only-L --libs-only-other xdamage)',
198             ],
199             'libraries': [
200               '<!@(<(pkg-config) --libs-only-l xdamage)',
201             ],
202           },
203         },
204         {
205           'target_name': 'xext',
206           'type': 'none',
207           'direct_dependent_settings': {
208             'cflags': [
209               '<!@(<(pkg-config) --cflags xext)',
210             ],
211           },
212           'link_settings': {
213             'ldflags': [
214               '<!@(<(pkg-config) --libs-only-L --libs-only-other xext)',
215             ],
216             'libraries': [
217               '<!@(<(pkg-config) --libs-only-l xext)',
218             ],
219           },
220         },
221         {
222           'target_name': 'xfixes',
223           'type': 'none',
224           'direct_dependent_settings': {
225             'cflags': [
226               '<!@(<(pkg-config) --cflags xfixes)',
227             ],
228           },
229           'link_settings': {
230             'ldflags': [
231               '<!@(<(pkg-config) --libs-only-L --libs-only-other xfixes)',
232             ],
233             'libraries': [
234               '<!@(<(pkg-config) --libs-only-l xfixes)',
235             ],
236           },
237         },
238         {
239           'target_name': 'xi',
240           'type': 'none',
241           'direct_dependent_settings': {
242             'cflags': [
243               '<!@(<(pkg-config) --cflags xi)',
244             ],
245           },
246           'link_settings': {
247             'ldflags': [
248               '<!@(<(pkg-config) --libs-only-L --libs-only-other xi)',
249             ],
250             'libraries': [
251               '<!@(<(pkg-config) --libs-only-l xi)',
252             ],
253           },
254         },
255         {
256           'target_name': 'xrandr',
257           'type': 'none',
258           'toolsets': ['host', 'target'],
259           'conditions': [
260             ['_toolset=="target"', {
261               'direct_dependent_settings': {
262                 'cflags': [
263                   '<!@(<(pkg-config) --cflags xrandr)',
264                 ],
265               },
266               'link_settings': {
267                 'ldflags': [
268                   '<!@(<(pkg-config) --libs-only-L --libs-only-other xrandr)',
269                 ],
270                 'libraries': [
271                   '<!@(<(pkg-config) --libs-only-l xrandr)',
272                 ],
273               },
274             }, {
275               'direct_dependent_settings': {
276                 'cflags': [
277                   '<!@(pkg-config --cflags xrandr)',
278                 ],
279               },
280               'link_settings': {
281                 'ldflags': [
282                   '<!@(pkg-config --libs-only-L --libs-only-other xrandr)',
283                 ],
284                 'libraries': [
285                   '<!@(pkg-config --libs-only-l xrandr)',
286                 ],
287               },
288             }],
289           ],
290         },
291         {
292           'target_name': 'xrender',
293           'type': 'none',
294           'direct_dependent_settings': {
295             'cflags': [
296               '<!@(<(pkg-config) --cflags xrender)',
297             ],
298           },
299           'link_settings': {
300             'ldflags': [
301               '<!@(<(pkg-config) --libs-only-L --libs-only-other xrender)',
302             ],
303             'libraries': [
304               '<!@(<(pkg-config) --libs-only-l xrender)',
305             ],
306           },
307         },
308         {
309           'target_name': 'xtst',
310           'type': 'none',
311           'toolsets': ['host', 'target'],
312           'conditions': [
313             ['_toolset=="target"', {
314               'direct_dependent_settings': {
315                 'cflags': [
316                   '<!@(<(pkg-config) --cflags xtst)',
317                 ],
318               },
319               'link_settings': {
320                 'ldflags': [
321                   '<!@(<(pkg-config) --libs-only-L --libs-only-other xtst)',
322                 ],
323                 'libraries': [
324                   '<!@(<(pkg-config) --libs-only-l xtst)',
325                 ],
326               },
327             }, {
328               'direct_dependent_settings': {
329                 'cflags': [
330                   '<!@(pkg-config --cflags xtst)',
331                 ],
332               },
333               'link_settings': {
334                 'ldflags': [
335                   '<!@(pkg-config --libs-only-L --libs-only-other xtst)',
336                 ],
337                 'libraries': [
338                   '<!@(pkg-config --libs-only-l xtst)',
339                 ],
340               },
341             }]
342           ]
343         }
344       ],  # targets
345     }],
346     ['use_x11==1 and chromeos==0', {
347       'targets': [
348         {
349           'target_name': 'xscrnsaver',
350           'type': 'none',
351           'direct_dependent_settings': {
352             'cflags': [
353               '<!@(<(pkg-config) --cflags xscrnsaver)',
354             ],
355           },
356           'link_settings': {
357             'ldflags': [
358               '<!@(<(pkg-config) --libs-only-L --libs-only-other xscrnsaver)',
359             ],
360             'libraries': [
361               '<!@(<(pkg-config) --libs-only-l xscrnsaver)',
362             ],
363           },
364         },
365       ],  # targets
366     }],
367     ['use_evdev_gestures==1', {
368       'targets': [
369         {
370           'target_name': 'libevdev-cros',
371           'type': 'none',
372           'direct_dependent_settings': {
373             'cflags': [
374               '<!@(<(pkg-config) --cflags libevdev-cros)'
375             ],
376           },
377           'link_settings': {
378             'ldflags': [
379               '<!@(<(pkg-config) --libs-only-L --libs-only-other libevdev-cros)',
380             ],
381             'libraries': [
382               '<!@(<(pkg-config) --libs-only-l libevdev-cros)',
383             ],
384           },
385         },
386         {
387           'target_name': 'libgestures',
388           'type': 'none',
389           'direct_dependent_settings': {
390             'cflags': [
391               '<!@(<(pkg-config) --cflags libgestures)'
392             ],
393           },
394           'link_settings': {
395             'ldflags': [
396               '<!@(<(pkg-config) --libs-only-L --libs-only-other libgestures)',
397             ],
398             'libraries': [
399               '<!@(<(pkg-config) --libs-only-l libgestures)',
400             ],
401           },
402         },
403       ],
404     }],
405     ['ozone_platform_gbm==1', {
406       'targets': [
407         {
408           'target_name': 'gbm',
409           'type': 'none',
410           'direct_dependent_settings': {
411             'cflags': [
412               '<!@(<(pkg-config) --cflags gbm)',
413             ],
414           },
415           'link_settings': {
416             'libraries': [
417               '<!@(<(pkg-config) --libs-only-l gbm)',
418             ],
419           },
420         },
421       ],
422     }],
423     ['ozone_platform_dri==1 or ozone_platform_gbm==1', {
424       'targets': [
425         {
426           'target_name': 'libdrm',
427           'type': 'none',
428           'direct_dependent_settings': {
429             'cflags': [
430               '<!@(<(pkg-config) --cflags libdrm)',
431             ],
432           },
433           'link_settings': {
434             'libraries': [
435               '<!@(<(pkg-config) --libs-only-l libdrm)',
436             ],
437           },
438         },
439       ],
440     }],
441     ['use_udev==1', {
442       'targets': [
443         {
444           'target_name': 'udev',
445           'type': 'none',
446           'conditions': [
447             ['_toolset=="target"', {
448               'direct_dependent_settings': {
449                 'cflags': [
450                   '<!@(<(pkg-config) --cflags libudev)'
451                 ],
452               },
453               'link_settings': {
454                 'ldflags': [
455                   '<!@(<(pkg-config) --libs-only-L --libs-only-other libudev)',
456                 ],
457                 'libraries': [
458                   '<!@(<(pkg-config) --libs-only-l libudev)',
459                 ],
460               },
461             }],
462           ],
463         },
464       ],
465     }],
466   ],  # conditions
467   'targets': [
468     {
469       'target_name': 'dbus',
470       'type': 'none',
471       'direct_dependent_settings': {
472         'cflags': [
473           '<!@(<(pkg-config) --cflags dbus-1)',
474         ],
475       },
476       'link_settings': {
477         'ldflags': [
478           '<!@(<(pkg-config) --libs-only-L --libs-only-other dbus-1)',
479         ],
480         'libraries': [
481           '<!@(<(pkg-config) --libs-only-l dbus-1)',
482         ],
483       },
484     },
485     {
486       'target_name': 'fontconfig',
487       'type': 'none',
488       'conditions': [
489         ['_toolset=="target"', {
490           'conditions': [
491             ['use_system_fontconfig==1', {
492               'direct_dependent_settings': {
493                 'cflags': [
494                   '<!@(<(pkg-config) --cflags fontconfig)',
495                 ],
496               },
497               'link_settings': {
498                 'ldflags': [
499                   '<!@(<(pkg-config) --libs-only-L --libs-only-other fontconfig)',
500                 ],
501                 'libraries': [
502                   '<!@(<(pkg-config) --libs-only-l fontconfig)',
503                 ],
504               },
505             }, {  # use_system_fontconfig==0
506               'dependencies': [
507                 '../../third_party/fontconfig/fontconfig.gyp:fontconfig',
508               ],
509               'export_dependent_settings' : [
510                 '../../third_party/fontconfig/fontconfig.gyp:fontconfig',
511               ],
512             }],
513           ],
514         }],
515       ],
516     },
517     {
518       'target_name': 'freetype2',
519       'type': 'none',
520       'conditions': [
521         ['_toolset=="target"', {
522           'direct_dependent_settings': {
523             'cflags': [
524               '<!@(<(pkg-config) --cflags freetype2)',
525             ],
526           },
527           'link_settings': {
528             'ldflags': [
529               '<!@(<(pkg-config) --libs-only-L --libs-only-other freetype2)',
530             ],
531             'libraries': [
532               '<!@(<(pkg-config) --libs-only-l freetype2)',
533             ],
534           },
535         }],
536       ],
537     },
538     {
539       'target_name': 'gconf',
540       'type': 'none',
541       'conditions': [
542         ['use_gconf==1 and _toolset=="target"', {
543           'direct_dependent_settings': {
544             'cflags': [
545               '<!@(<(pkg-config) --cflags gconf-2.0)',
546             ],
547             'defines': [
548               'USE_GCONF',
549             ],
550           },
551           'link_settings': {
552             'ldflags': [
553               '<!@(<(pkg-config) --libs-only-L --libs-only-other gconf-2.0)',
554             ],
555             'libraries': [
556               '<!@(<(pkg-config) --libs-only-l gconf-2.0)',
557             ],
558           },
559         }],
560       ],
561     },
562     {
563       'target_name': 'gio',
564       'type': 'static_library',
565       'conditions': [
566         ['use_gio==1 and _toolset=="target"', {
567           'cflags': [
568             '<!@(<(pkg-config) --cflags gio-2.0)',
569           ],
570           'direct_dependent_settings': {
571             'cflags': [
572               '<!@(<(pkg-config) --cflags gio-2.0)',
573             ],
574             'defines': [
575               'USE_GIO',
576             ],
577             'include_dirs': [
578               '<(SHARED_INTERMEDIATE_DIR)',
579             ],
580           },
581           'include_dirs': [
582             '../..',
583           ],
584           'link_settings': {
585             'ldflags': [
586               '<!@(<(pkg-config) --libs-only-L --libs-only-other gio-2.0)',
587             ],
588             'libraries': [
589               '<!@(<(pkg-config) --libs-only-l gio-2.0)',
590             ],
591             'conditions': [
592               ['linux_link_gsettings==0 and OS=="linux"', {
593                 'libraries': [
594                   '-ldl',
595                 ],
596               }],
597             ],
598           },
599           'hard_dependency': 1,
600           'actions': [
601             {
602               'variables': {
603                 'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libgio.h',
604                 'output_cc': '<(INTERMEDIATE_DIR)/libgio_loader.cc',
605                 'generator': '../../tools/generate_library_loader/generate_library_loader.py',
606               },
607               'action_name': 'generate_libgio_loader',
608               'inputs': [
609                 '<(generator)',
610               ],
611               'outputs': [
612                 '<(output_h)',
613                 '<(output_cc)',
614               ],
615               'action': ['python',
616                          '<(generator)',
617                          '--name', 'LibGioLoader',
618                          '--output-h', '<(output_h)',
619                          '--output-cc', '<(output_cc)',
620                          '--header', '<gio/gio.h>',
621                          '--link-directly=<(linux_link_gsettings)',
622                          'g_settings_new',
623                          'g_settings_get_child',
624                          'g_settings_get_string',
625                          'g_settings_get_boolean',
626                          'g_settings_get_int',
627                          'g_settings_get_strv',
628                          'g_settings_list_schemas',
629               ],
630               'message': 'Generating libgio library loader',
631               'process_outputs_as_sources': 1,
632             },
633           ],
634         }],
635       ],
636     },
637     {
638       'target_name': 'glib',
639       'type': 'none',
640       'toolsets': ['host', 'target'],
641       'variables': {
642         'glib_packages': 'glib-2.0 gmodule-2.0 gobject-2.0 gthread-2.0',
643       },
644       'conditions': [
645         ['_toolset=="target"', {
646           'direct_dependent_settings': {
647             'cflags': [
648               '<!@(<(pkg-config) --cflags <(glib_packages))',
649             ],
650           },
651           'link_settings': {
652             'ldflags': [
653               '<!@(<(pkg-config) --libs-only-L --libs-only-other <(glib_packages))',
654             ],
655             'libraries': [
656               '<!@(<(pkg-config) --libs-only-l <(glib_packages))',
657             ],
658           },
659         }, {
660           'direct_dependent_settings': {
661             'cflags': [
662               '<!@(pkg-config --cflags <(glib_packages))',
663             ],
664           },
665           'link_settings': {
666             'ldflags': [
667               '<!@(pkg-config --libs-only-L --libs-only-other <(glib_packages))',
668             ],
669             'libraries': [
670               '<!@(pkg-config --libs-only-l <(glib_packages))',
671             ],
672           },
673         }],
674       ],
675     },
676     {
677       'target_name': 'gnome_keyring',
678       'type': 'none',
679       'conditions': [
680         ['use_gnome_keyring==1', {
681           'direct_dependent_settings': {
682             'cflags': [
683               '<!@(<(pkg-config) --cflags gnome-keyring-1)',
684             ],
685             'defines': [
686               'USE_GNOME_KEYRING',
687             ],
688             'conditions': [
689               ['linux_link_gnome_keyring==0', {
690                 'defines': ['DLOPEN_GNOME_KEYRING'],
691               }],
692             ],
693           },
694           'conditions': [
695             ['linux_link_gnome_keyring!=0', {
696               'link_settings': {
697                 'ldflags': [
698                   '<!@(<(pkg-config) --libs-only-L --libs-only-other gnome-keyring-1)',
699                 ],
700                 'libraries': [
701                   '<!@(<(pkg-config) --libs-only-l gnome-keyring-1)',
702                 ],
703               },
704             }, {
705               'conditions': [
706                 ['OS=="linux"', {
707                  'link_settings': {
708                    'libraries': [
709                      '-ldl',
710                    ],
711                  },
712                 }],
713               ],
714             }],
715           ],
716         }],
717       ],
718     },
719     {
720       # The unit tests use a few convenience functions from the GNOME
721       # Keyring library directly. We ignore linux_link_gnome_keyring and
722       # link directly in this version of the target to allow this.
723       # *** Do not use this target in the main binary! ***
724       'target_name': 'gnome_keyring_direct',
725       'type': 'none',
726       'conditions': [
727         ['use_gnome_keyring==1', {
728           'direct_dependent_settings': {
729             'cflags': [
730               '<!@(<(pkg-config) --cflags gnome-keyring-1)',
731             ],
732             'defines': [
733               'USE_GNOME_KEYRING',
734             ],
735             'conditions': [
736               ['linux_link_gnome_keyring==0', {
737                 'defines': ['DLOPEN_GNOME_KEYRING'],
738               }],
739             ],
740           },
741           'link_settings': {
742             'ldflags': [
743               '<!@(<(pkg-config) --libs-only-L --libs-only-other gnome-keyring-1)',
744             ],
745             'libraries': [
746               '<!@(<(pkg-config) --libs-only-l gnome-keyring-1)',
747             ],
748           },
749         }],
750       ],
751     },
752     {
753       'target_name': 'libbrlapi',
754       'type': 'static_library',
755       'all_dependent_settings': {
756         'include_dirs': [
757           '<(SHARED_INTERMEDIATE_DIR)',
758         ],
759         'defines': [
760           'USE_BRLAPI',
761         ],
762         'conditions': [
763           ['linux_link_libbrlapi==1', {
764             'link_settings': {
765               'libraries': [
766                 '-lbrlapi',
767               ],
768             }
769           }],
770         ],
771       },
772       'include_dirs': [
773         '../..',
774       ],
775       'hard_dependency': 1,
776       'actions': [
777         {
778           'variables': {
779             'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libbrlapi.h',
780             'output_cc': '<(INTERMEDIATE_DIR)/libbrlapi_loader.cc',
781             'generator': '../../tools/generate_library_loader/generate_library_loader.py',
782           },
783           'action_name': 'generate_brlapi_loader',
784           'inputs': [
785             '<(generator)',
786           ],
787           'outputs': [
788             '<(output_h)',
789             '<(output_cc)',
790           ],
791           'action': ['python',
792                      '<(generator)',
793                      '--name', 'LibBrlapiLoader',
794                      '--output-h', '<(output_h)',
795                      '--output-cc', '<(output_cc)',
796                      '--header', '<brlapi.h>',
797                      '--link-directly=<(linux_link_libbrlapi)',
798                      'brlapi_getHandleSize',
799                      'brlapi_error_location',
800                      'brlapi_strerror',
801                      'brlapi__acceptKeys',
802                      'brlapi__openConnection',
803                      'brlapi__closeConnection',
804                      'brlapi__getDisplaySize',
805                      'brlapi__enterTtyModeWithPath',
806                      'brlapi__leaveTtyMode',
807                      'brlapi__writeDots',
808                      'brlapi__readKey',
809           ],
810           'message': 'Generating libbrlapi library loader',
811           'process_outputs_as_sources': 1,
812         },
813       ],
814     },
815     {
816       'target_name': 'libcap',
817       'type': 'none',
818       'link_settings': {
819         'libraries': [
820           '-lcap',
821         ],
822       },
823     },
824     {
825       'target_name': 'libpci',
826       'type': 'static_library',
827       'cflags': [
828         '<!@(<(pkg-config) --cflags libpci)',
829       ],
830       'direct_dependent_settings': {
831         'include_dirs': [
832           '<(SHARED_INTERMEDIATE_DIR)',
833         ],
834         'conditions': [
835           ['linux_link_libpci==1', {
836             'link_settings': {
837               'ldflags': [
838                 '<!@(<(pkg-config) --libs-only-L --libs-only-other libpci)',
839               ],
840               'libraries': [
841                 '<!@(<(pkg-config) --libs-only-l libpci)',
842               ],
843             }
844           }],
845         ],
846       },
847       'include_dirs': [
848         '../..',
849       ],
850       'hard_dependency': 1,
851       'actions': [
852         {
853           'variables': {
854             'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libpci.h',
855             'output_cc': '<(INTERMEDIATE_DIR)/libpci_loader.cc',
856             'generator': '../../tools/generate_library_loader/generate_library_loader.py',
857           },
858           'action_name': 'generate_libpci_loader',
859           'inputs': [
860             '<(generator)',
861           ],
862           'outputs': [
863             '<(output_h)',
864             '<(output_cc)',
865           ],
866           'action': ['python',
867                      '<(generator)',
868                      '--name', 'LibPciLoader',
869                      '--output-h', '<(output_h)',
870                      '--output-cc', '<(output_cc)',
871                      '--header', '<pci/pci.h>',
872                      # TODO(phajdan.jr): Report problem to pciutils project
873                      # and get it fixed so that we don't need --use-extern-c.
874                      '--use-extern-c',
875                      '--link-directly=<(linux_link_libpci)',
876                      'pci_alloc',
877                      'pci_init',
878                      'pci_cleanup',
879                      'pci_scan_bus',
880                      'pci_fill_info',
881                      'pci_lookup_name',
882           ],
883           'message': 'Generating libpci library loader',
884           'process_outputs_as_sources': 1,
885         },
886       ],
887     },
888     {
889       'target_name': 'libresolv',
890       'type': 'none',
891       'link_settings': {
892         'libraries': [
893           '-lresolv',
894         ],
895       },
896     },
897     {
898       # GN version: //third_party/speech-dispatcher
899       'target_name': 'libspeechd',
900       'type': 'static_library',
901       'direct_dependent_settings': {
902         'include_dirs': [
903           '<(SHARED_INTERMEDIATE_DIR)',
904         ],
905         'conditions': [
906           ['linux_link_libspeechd==1', {
907             'link_settings': {
908               'libraries': [
909                 '-lspeechd',
910               ],
911             }
912           }],
913         ],
914       },
915       'include_dirs': [
916         '../..',
917       ],
918       'hard_dependency': 1,
919       'actions': [
920         {
921           'variables': {
922             'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libspeechd.h',
923             'output_cc': '<(INTERMEDIATE_DIR)/libspeechd_loader.cc',
924             'generator': '../../tools/generate_library_loader/generate_library_loader.py',
926             # speech-dispatcher >= 0.8 installs libspeechd.h into
927             # speech-dispatcher/libspeechd.h, whereas speech-dispatcher < 0.8
928             # puts libspeechd.h in the top-level include directory.
929             # Since we need to support both cases for now, we ship a copy of
930             # libspeechd.h in third_party/speech-dispatcher. If the user
931             # prefers to link against the speech-dispatcher directly, the
932             # `libspeechd_h_prefix' variable can be passed to gyp with a value
933             # such as "speech-dispatcher/" that will be prepended to
934             # "libspeechd.h" in the #include directive.
935             # TODO(phaldan.jr): Once we do not need to support
936             # speech-dispatcher < 0.8 we can get rid of all this (including
937             # third_party/speech-dispatcher) and just include
938             # speech-dispatcher/libspeechd.h unconditionally.
939             'libspeechd_h_prefix%': '',
940           },
941           'action_name': 'generate_libspeechd_loader',
942           'inputs': [
943             '<(generator)',
944           ],
945           'outputs': [
946             '<(output_h)',
947             '<(output_cc)',
948           ],
949           'action': ['python',
950                      '<(generator)',
951                      '--name', 'LibSpeechdLoader',
952                      '--output-h', '<(output_h)',
953                      '--output-cc', '<(output_cc)',
954                      '--header', '<<(libspeechd_h_prefix)libspeechd.h>',
955                      '--bundled-header',
956                      '"third_party/speech-dispatcher/libspeechd.h"',
957                      '--link-directly=<(linux_link_libspeechd)',
958                      'spd_open',
959                      'spd_say',
960                      'spd_stop',
961                      'spd_close',
962                      'spd_pause',
963                      'spd_resume',
964                      'spd_set_notification_on',
965                      'spd_set_voice_rate',
966                      'spd_set_voice_pitch',
967                      'spd_list_synthesis_voices',
968                      'spd_set_synthesis_voice',
969                      'spd_list_modules',
970                      'spd_set_output_module',
971           ],
972           'message': 'Generating libspeechd library loader',
973           'process_outputs_as_sources': 1,
974         },
975       ],
976     },
977     {
978       'target_name': 'pangocairo',
979       'type': 'none',
980       'toolsets': ['host', 'target'],
981       'conditions': [
982         ['_toolset=="target"', {
983           'direct_dependent_settings': {
984             'cflags': [
985               '<!@(<(pkg-config) --cflags pangocairo pangoft2)',
986             ],
987           },
988           'link_settings': {
989             'ldflags': [
990               '<!@(<(pkg-config) --libs-only-L --libs-only-other pangocairo pangoft2)',
991             ],
992             'libraries': [
993               '<!@(<(pkg-config) --libs-only-l pangocairo pangoft2)',
994             ],
995           },
996         }, {
997           'direct_dependent_settings': {
998             'cflags': [
999               '<!@(pkg-config --cflags pangocairo pangoft2)',
1000             ],
1001           },
1002           'link_settings': {
1003             'ldflags': [
1004               '<!@(pkg-config --libs-only-L --libs-only-other pangocairo pangoft2)',
1005             ],
1006             'libraries': [
1007               '<!@(pkg-config --libs-only-l pangocairo pangoft2)',
1008             ],
1009           },
1010         }],
1011       ],
1012     },
1013     {
1014       'target_name': 'ssl',
1015       'type': 'none',
1016       'conditions': [
1017         ['_toolset=="target"', {
1018           'conditions': [
1019             ['use_openssl==1', {
1020               'dependencies': [
1021                 '../../third_party/boringssl/boringssl.gyp:boringssl',
1022               ],
1023             }],
1024             ['use_openssl==0', {
1025               'dependencies': [
1026                 '../../net/third_party/nss/ssl.gyp:libssl',
1027               ],
1028               'direct_dependent_settings': {
1029                 'include_dirs+': [
1030                   # We need for our local copies of the libssl3 headers to come
1031                   # before other includes, as we are shadowing system headers.
1032                   '<(DEPTH)/net/third_party/nss/ssl',
1033                 ],
1034                 'cflags': [
1035                   '<!@(<(pkg-config) --cflags nss)',
1036                 ],
1037               },
1038               'link_settings': {
1039                 'ldflags': [
1040                   '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
1041                 ],
1042                 'libraries': [
1043                   '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")',
1044                 ],
1045               },
1046             }],
1047             ['use_openssl==0 and clang==1', {
1048               'direct_dependent_settings': {
1049                 'cflags': [
1050                   # There is a broken header guard in /usr/include/nss/secmod.h:
1051                   # https://bugzilla.mozilla.org/show_bug.cgi?id=884072
1052                   '-Wno-header-guard',
1053                 ],
1054               },
1055             }],
1056           ]
1057         }],
1058       ],
1059     },
1060   ],