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