Add ICU message format support
[chromium-blink-merge.git] / build / linux / system.gyp
blobdf651fbd7ec16c392d1062f2f9dfebdbf408d29e
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': 'gtk',
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': 'gtkprint',
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_x11==1 and chromeos==0', {
427       'targets': [
428         {
429           'target_name': 'xscrnsaver',
430           'type': 'none',
431           'direct_dependent_settings': {
432             'cflags': [
433               '<!@(<(pkg-config) --cflags xscrnsaver)',
434             ],
435           },
436           'link_settings': {
437             'ldflags': [
438               '<!@(<(pkg-config) --libs-only-L --libs-only-other xscrnsaver)',
439             ],
440             'libraries': [
441               '<!@(<(pkg-config) --libs-only-l xscrnsaver)',
442             ],
443           },
444         },
445       ],  # targets
446     }],
447     ['use_evdev_gestures==1', {
448       'targets': [
449         {
450           'target_name': 'libevdev-cros',
451           'type': 'none',
452           'direct_dependent_settings': {
453             'cflags': [
454               '<!@(<(pkg-config) --cflags libevdev-cros)'
455             ],
456           },
457           'link_settings': {
458             'ldflags': [
459               '<!@(<(pkg-config) --libs-only-L --libs-only-other libevdev-cros)',
460             ],
461             'libraries': [
462               '<!@(<(pkg-config) --libs-only-l libevdev-cros)',
463             ],
464           },
465         },
466         {
467           'target_name': 'libgestures',
468           'type': 'none',
469           'direct_dependent_settings': {
470             'cflags': [
471               '<!@(<(pkg-config) --cflags libgestures)'
472             ],
473           },
474           'link_settings': {
475             'ldflags': [
476               '<!@(<(pkg-config) --libs-only-L --libs-only-other libgestures)',
477             ],
478             'libraries': [
479               '<!@(<(pkg-config) --libs-only-l libgestures)',
480             ],
481           },
482         },
483       ],
484     }],
485     ['use_xkbcommon==1', {
486       'targets': [
487         {
488           'target_name': 'xkbcommon',
489           'type': 'none',
490           'direct_dependent_settings': {
491             'cflags': [
492               '<!@(<(pkg-config) --cflags xkbcommon)'
493             ],
494           },
495           'link_settings': {
496             'ldflags': [
497               '<!@(<(pkg-config) --libs-only-L --libs-only-other xkbcommon)',
498             ],
499             'libraries': [
500               '<!@(<(pkg-config) --libs-only-l xkbcommon)',
501             ],
502           },
503         },
504       ],
505     }],
506     ['ozone_platform_gbm==1', {
507       'targets': [
508         {
509           'target_name': 'gbm',
510           'type': 'none',
511           'direct_dependent_settings': {
512             'cflags': [
513               '<!@(<(pkg-config) --cflags gbm)',
514             ],
515           },
516           'link_settings': {
517             'ldflags': [
518               '<!@(<(pkg-config) --libs-only-L --libs-only-other gbm)',
519             ],
520             'libraries': [
521               '<!@(<(pkg-config) --libs-only-l gbm)',
522             ],
523           },
524         },
525       ],
526     }],
527     ['ozone_platform_drm==1 or ozone_platform_gbm==1', {
528       'targets': [
529         {
530           'target_name': 'libdrm',
531           'type': 'none',
532           'direct_dependent_settings': {
533             'cflags': [
534               '<!@(<(pkg-config) --cflags libdrm)',
535             ],
536           },
537           'link_settings': {
538             'ldflags': [
539               '<!@(<(pkg-config) --libs-only-L --libs-only-other libdrm)',
540             ],
541             'libraries': [
542               '<!@(<(pkg-config) --libs-only-l libdrm)',
543             ],
544           },
545         },
546       ],
547     }],
548     ['use_udev==1', {
549       'targets': [
550         {
551           'target_name': 'udev',
552           'type': 'static_library',
553           'conditions': [
554             ['_toolset=="target"', {
555               'include_dirs': [
556                 '../..',
557               ],
558               'hard_dependency': 1,
559               'actions': [
560                 {
561                   'variables': {
562                     'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libudev0.h',
563                     'output_cc': '<(INTERMEDIATE_DIR)/libudev0_loader.cc',
564                     'generator': '../../tools/generate_library_loader/generate_library_loader.py',
565                   },
566                   'action_name': 'generate_libudev0_loader',
567                   'inputs': [
568                     '<(generator)',
569                   ],
570                   'outputs': [
571                     '<(output_h)',
572                     '<(output_cc)',
573                   ],
574                   'action': ['python',
575                              '<(generator)',
576                              '--name', 'LibUdev0Loader',
577                              '--output-h', '<(output_h)',
578                              '--output-cc', '<(output_cc)',
579                              '--header', '"third_party/libudev/libudev0.h"',
580                              '--link-directly=0',
581                              '<@(libudev_functions)',
582                   ],
583                   'message': 'Generating libudev0 library loader',
584                   'process_outputs_as_sources': 1,
585                 },
586                 {
587                   'variables': {
588                     'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libudev1.h',
589                     'output_cc': '<(INTERMEDIATE_DIR)/libudev1_loader.cc',
590                     'generator': '../../tools/generate_library_loader/generate_library_loader.py',
591                   },
592                   'action_name': 'generate_libudev1_loader',
593                   'inputs': [
594                     '<(generator)',
595                   ],
596                   'outputs': [
597                     '<(output_h)',
598                     '<(output_cc)',
599                   ],
600                   'action': ['python',
601                              '<(generator)',
602                              '--name', 'LibUdev1Loader',
603                              '--output-h', '<(output_h)',
604                              '--output-cc', '<(output_cc)',
605                              '--header', '"third_party/libudev/libudev1.h"',
606                              '--link-directly=0',
607                              '<@(libudev_functions)',
608                   ],
609                   'message': 'Generating libudev1 library loader',
610                   'process_outputs_as_sources': 1,
611                 },
612               ],
613             }],
614           ],
615         },
616       ],
617     }],
618     ['use_libpci==1', {
619       'targets': [
620         {
621           'target_name': 'libpci',
622           'type': 'static_library',
623           'cflags': [
624             '<!@(<(pkg-config) --cflags libpci)',
625           ],
626           'direct_dependent_settings': {
627             'include_dirs': [
628               '<(SHARED_INTERMEDIATE_DIR)',
629             ],
630             'conditions': [
631               ['linux_link_libpci==1', {
632                 'link_settings': {
633                   'ldflags': [
634                     '<!@(<(pkg-config) --libs-only-L --libs-only-other libpci)',
635                   ],
636                   'libraries': [
637                     '<!@(<(pkg-config) --libs-only-l libpci)',
638                   ],
639                 }
640               }],
641             ],
642           },
643           'include_dirs': [
644             '../..',
645           ],
646           'hard_dependency': 1,
647           'actions': [
648             {
649               'variables': {
650                 'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libpci.h',
651                 'output_cc': '<(INTERMEDIATE_DIR)/libpci_loader.cc',
652                 'generator': '../../tools/generate_library_loader/generate_library_loader.py',
653               },
654               'action_name': 'generate_libpci_loader',
655               'inputs': [
656                 '<(generator)',
657               ],
658               'outputs': [
659                 '<(output_h)',
660                 '<(output_cc)',
661               ],
662               'action': ['python',
663                          '<(generator)',
664                          '--name', 'LibPciLoader',
665                          '--output-h', '<(output_h)',
666                          '--output-cc', '<(output_cc)',
667                          '--header', '<pci/pci.h>',
668                          # TODO(phajdan.jr): Report problem to pciutils project
669                          # and get it fixed so that we don't need --use-extern-c.
670                          '--use-extern-c',
671                          '--link-directly=<(linux_link_libpci)',
672                          '<@(libpci_functions)',
673               ],
674               'message': 'Generating libpci library loader',
675               'process_outputs_as_sources': 1,
676             },
677           ],
678         },
679       ],
680     }],
681   ],  # conditions
682   'targets': [
683     {
684       'target_name': 'dbus',
685       'type': 'none',
686       'direct_dependent_settings': {
687         'cflags': [
688           '<!@(<(pkg-config) --cflags dbus-1)',
689         ],
690       },
691       'link_settings': {
692         'ldflags': [
693           '<!@(<(pkg-config) --libs-only-L --libs-only-other dbus-1)',
694         ],
695         'libraries': [
696           '<!@(<(pkg-config) --libs-only-l dbus-1)',
697         ],
698       },
699     },
700     {
701       'target_name': 'fontconfig',
702       'type': 'none',
703       'conditions': [
704         ['_toolset=="target"', {
705           'conditions': [
706             ['use_system_fontconfig==1', {
707               'direct_dependent_settings': {
708                 'cflags': [
709                   '<!@(<(pkg-config) --cflags fontconfig)',
710                 ],
711               },
712               'link_settings': {
713                 'ldflags': [
714                   '<!@(<(pkg-config) --libs-only-L --libs-only-other fontconfig)',
715                 ],
716                 'libraries': [
717                   '<!@(<(pkg-config) --libs-only-l fontconfig)',
718                 ],
719               },
720             }, {  # use_system_fontconfig==0
721               'dependencies': [
722                 '../../third_party/fontconfig/fontconfig.gyp:fontconfig',
723               ],
724               'export_dependent_settings' : [
725                 '../../third_party/fontconfig/fontconfig.gyp:fontconfig',
726               ],
727             }],
728           ],
729         }],
730       ],
731     },
732     {
733       'target_name': 'freetype2',
734       'type': 'none',
735       'conditions': [
736         ['_toolset=="target"', {
737           'direct_dependent_settings': {
738             'cflags': [
739               '<!@(<(pkg-config) --cflags freetype2)',
740             ],
741           },
742           'link_settings': {
743             'ldflags': [
744               '<!@(<(pkg-config) --libs-only-L --libs-only-other freetype2)',
745             ],
746             'libraries': [
747               '<!@(<(pkg-config) --libs-only-l freetype2)',
748             ],
749           },
750         }],
751       ],
752     },
753     {
754       'target_name': 'gconf',
755       'type': 'none',
756       'conditions': [
757         ['use_gconf==1 and _toolset=="target"', {
758           'direct_dependent_settings': {
759             'cflags': [
760               '<!@(<(pkg-config) --cflags gconf-2.0)',
761             ],
762             'defines': [
763               'USE_GCONF',
764             ],
765           },
766           'link_settings': {
767             'ldflags': [
768               '<!@(<(pkg-config) --libs-only-L --libs-only-other gconf-2.0)',
769             ],
770             'libraries': [
771               '<!@(<(pkg-config) --libs-only-l gconf-2.0)',
772             ],
773           },
774         }],
775       ],
776     },
777     {
778       'target_name': 'gio',
779       'type': 'static_library',
780       'conditions': [
781         ['use_gio==1 and _toolset=="target"', {
782           'cflags': [
783             '<!@(<(pkg-config) --cflags gio-2.0)',
784           ],
785           'variables': {
786             'gio_warning_define': [
787               # glib >=2.40 deprecate g_settings_list_schemas in favor of
788               # g_settings_schema_source_list_schemas. This function is not
789               # available on earlier versions that we still need to support
790               # (specifically, 2.32), so disable the warning.
791               # TODO(mgiuca): Remove this suppression (and variable) when we
792               # drop support for Ubuntu 13.10 (saucy) and earlier. Update the
793               # code to use g_settings_schema_source_list_schemas instead.
794               'GLIB_DISABLE_DEPRECATION_WARNINGS',
795             ],
796           },
797           'defines': [
798             '<(gio_warning_define)',
799           ],
800           'direct_dependent_settings': {
801             'cflags': [
802               '<!@(<(pkg-config) --cflags gio-2.0)',
803             ],
804             'defines': [
805               'USE_GIO',
806               '<(gio_warning_define)',
807             ],
808             'include_dirs': [
809               '<(SHARED_INTERMEDIATE_DIR)',
810             ],
811           },
812           'include_dirs': [
813             '../..',
814           ],
815           'link_settings': {
816             'ldflags': [
817               '<!@(<(pkg-config) --libs-only-L --libs-only-other gio-2.0)',
818             ],
819             'libraries': [
820               '<!@(<(pkg-config) --libs-only-l gio-2.0)',
821             ],
822             'conditions': [
823               ['linux_link_gsettings==0 and OS=="linux"', {
824                 'libraries': [
825                   '-ldl',
826                 ],
827               }],
828             ],
829           },
830           'hard_dependency': 1,
831           'actions': [
832             {
833               'variables': {
834                 'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libgio.h',
835                 'output_cc': '<(INTERMEDIATE_DIR)/libgio_loader.cc',
836                 'generator': '../../tools/generate_library_loader/generate_library_loader.py',
837               },
838               'action_name': 'generate_libgio_loader',
839               'inputs': [
840                 '<(generator)',
841               ],
842               'outputs': [
843                 '<(output_h)',
844                 '<(output_cc)',
845               ],
846               'action': ['python',
847                          '<(generator)',
848                          '--name', 'LibGioLoader',
849                          '--output-h', '<(output_h)',
850                          '--output-cc', '<(output_cc)',
851                          '--header', '<gio/gio.h>',
852                          '--link-directly=<(linux_link_gsettings)',
853                          '<@(libgio_functions)',
854               ],
855               'message': 'Generating libgio library loader',
856               'process_outputs_as_sources': 1,
857             },
858           ],
859         }],
860       ],
861     },
862     {
863       'target_name': 'glib',
864       'type': 'none',
865       'toolsets': ['host', 'target'],
866       'variables': {
867         'glib_packages': 'glib-2.0 gmodule-2.0 gobject-2.0 gthread-2.0',
868       },
869       'conditions': [
870         ['_toolset=="target"', {
871           'direct_dependent_settings': {
872             'cflags': [
873               '<!@(<(pkg-config) --cflags <(glib_packages))',
874             ],
875           },
876           'link_settings': {
877             'ldflags': [
878               '<!@(<(pkg-config) --libs-only-L --libs-only-other <(glib_packages))',
879             ],
880             'libraries': [
881               '<!@(<(pkg-config) --libs-only-l <(glib_packages))',
882             ],
883           },
884         }, {
885           'direct_dependent_settings': {
886             'cflags': [
887               '<!@(pkg-config --cflags <(glib_packages))',
888             ],
889           },
890           'link_settings': {
891             'ldflags': [
892               '<!@(pkg-config --libs-only-L --libs-only-other <(glib_packages))',
893             ],
894             'libraries': [
895               '<!@(pkg-config --libs-only-l <(glib_packages))',
896             ],
897           },
898         }],
899       ],
900     },
901     {
902       'target_name': 'gnome_keyring',
903       'type': 'none',
904       'conditions': [
905         ['use_gnome_keyring==1', {
906           'direct_dependent_settings': {
907             'cflags': [
908               '<!@(<(pkg-config) --cflags gnome-keyring-1)',
909             ],
910             'defines': [
911               'USE_GNOME_KEYRING',
912             ],
913             'conditions': [
914               ['linux_link_gnome_keyring==0', {
915                 'defines': ['DLOPEN_GNOME_KEYRING'],
916               }],
917             ],
918           },
919           'conditions': [
920             ['linux_link_gnome_keyring!=0', {
921               'link_settings': {
922                 'ldflags': [
923                   '<!@(<(pkg-config) --libs-only-L --libs-only-other gnome-keyring-1)',
924                 ],
925                 'libraries': [
926                   '<!@(<(pkg-config) --libs-only-l gnome-keyring-1)',
927                 ],
928               },
929             }, {
930               'conditions': [
931                 ['OS=="linux"', {
932                  'link_settings': {
933                    'libraries': [
934                      '-ldl',
935                    ],
936                  },
937                 }],
938               ],
939             }],
940           ],
941         }],
942       ],
943     },
944     {
945       # The unit tests use a few convenience functions from the GNOME
946       # Keyring library directly. We ignore linux_link_gnome_keyring and
947       # link directly in this version of the target to allow this.
948       # *** Do not use this target in the main binary! ***
949       'target_name': 'gnome_keyring_direct',
950       'type': 'none',
951       'conditions': [
952         ['use_gnome_keyring==1', {
953           'direct_dependent_settings': {
954             'cflags': [
955               '<!@(<(pkg-config) --cflags gnome-keyring-1)',
956             ],
957             'defines': [
958               'USE_GNOME_KEYRING',
959             ],
960             'conditions': [
961               ['linux_link_gnome_keyring==0', {
962                 'defines': ['DLOPEN_GNOME_KEYRING'],
963               }],
964             ],
965           },
966           'link_settings': {
967             'ldflags': [
968               '<!@(<(pkg-config) --libs-only-L --libs-only-other gnome-keyring-1)',
969             ],
970             'libraries': [
971               '<!@(<(pkg-config) --libs-only-l gnome-keyring-1)',
972             ],
973           },
974         }],
975       ],
976     },
977     {
978       'target_name': 'libbrlapi',
979       'type': 'static_library',
980       'all_dependent_settings': {
981         'include_dirs': [
982           '<(SHARED_INTERMEDIATE_DIR)',
983         ],
984         'defines': [
985           'USE_BRLAPI',
986         ],
987         'conditions': [
988           ['linux_link_libbrlapi==1', {
989             'link_settings': {
990               'libraries': [
991                 '-lbrlapi',
992               ],
993             }
994           }],
995         ],
996       },
997       'include_dirs': [
998         '../..',
999       ],
1000       'hard_dependency': 1,
1001       'actions': [
1002         {
1003           'variables': {
1004             'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libbrlapi.h',
1005             'output_cc': '<(INTERMEDIATE_DIR)/libbrlapi_loader.cc',
1006             'generator': '../../tools/generate_library_loader/generate_library_loader.py',
1007           },
1008           'action_name': 'generate_brlapi_loader',
1009           'inputs': [
1010             '<(generator)',
1011           ],
1012           'outputs': [
1013             '<(output_h)',
1014             '<(output_cc)',
1015           ],
1016           'action': ['python',
1017                      '<(generator)',
1018                      '--name', 'LibBrlapiLoader',
1019                      '--output-h', '<(output_h)',
1020                      '--output-cc', '<(output_cc)',
1021                      '--header', '<brlapi.h>',
1022                      '--link-directly=<(linux_link_libbrlapi)',
1023                      '<@(libbrlapi_functions)',
1024           ],
1025           'message': 'Generating libbrlapi library loader',
1026           'process_outputs_as_sources': 1,
1027         },
1028       ],
1029     },
1030     {
1031       'target_name': 'libcap',
1032       'type': 'none',
1033       'link_settings': {
1034         'libraries': [
1035           '-lcap',
1036         ],
1037       },
1038     },
1039     {
1040       'target_name': 'libresolv',
1041       'type': 'none',
1042       'link_settings': {
1043         'libraries': [
1044           '-lresolv',
1045         ],
1046       },
1047     },
1048     {
1049       # GN version: //third_party/speech-dispatcher
1050       'target_name': 'libspeechd',
1051       'type': 'static_library',
1052       'direct_dependent_settings': {
1053         'include_dirs': [
1054           '<(SHARED_INTERMEDIATE_DIR)',
1055         ],
1056         'conditions': [
1057           ['linux_link_libspeechd==1', {
1058             'link_settings': {
1059               'libraries': [
1060                 '-lspeechd',
1061               ],
1062             }
1063           }],
1064         ],
1065       },
1066       'include_dirs': [
1067         '../..',
1068       ],
1069       'hard_dependency': 1,
1070       'actions': [
1071         {
1072           'variables': {
1073             'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libspeechd.h',
1074             'output_cc': '<(INTERMEDIATE_DIR)/libspeechd_loader.cc',
1075             'generator': '../../tools/generate_library_loader/generate_library_loader.py',
1077             # speech-dispatcher >= 0.8 installs libspeechd.h into
1078             # speech-dispatcher/libspeechd.h, whereas speech-dispatcher < 0.8
1079             # puts libspeechd.h in the top-level include directory.
1080             # Since we need to support both cases for now, we ship a copy of
1081             # libspeechd.h in third_party/speech-dispatcher. If the user
1082             # prefers to link against the speech-dispatcher directly, the
1083             # `libspeechd_h_prefix' variable can be passed to gyp with a value
1084             # such as "speech-dispatcher/" that will be prepended to
1085             # "libspeechd.h" in the #include directive.
1086             # TODO(phaldan.jr): Once we do not need to support
1087             # speech-dispatcher < 0.8 we can get rid of all this (including
1088             # third_party/speech-dispatcher) and just include
1089             # speech-dispatcher/libspeechd.h unconditionally.
1090             'libspeechd_h_prefix%': '',
1091           },
1092           'action_name': 'generate_libspeechd_loader',
1093           'inputs': [
1094             '<(generator)',
1095           ],
1096           'outputs': [
1097             '<(output_h)',
1098             '<(output_cc)',
1099           ],
1100           'action': ['python',
1101                      '<(generator)',
1102                      '--name', 'LibSpeechdLoader',
1103                      '--output-h', '<(output_h)',
1104                      '--output-cc', '<(output_cc)',
1105                      '--header', '<<(libspeechd_h_prefix)libspeechd.h>',
1106                      '--bundled-header',
1107                      '"third_party/speech-dispatcher/libspeechd.h"',
1108                      '--link-directly=<(linux_link_libspeechd)',
1109                      'spd_open',
1110                      'spd_say',
1111                      'spd_stop',
1112                      'spd_close',
1113                      'spd_pause',
1114                      'spd_resume',
1115                      'spd_set_notification_on',
1116                      'spd_set_voice_rate',
1117                      'spd_set_voice_pitch',
1118                      'spd_list_synthesis_voices',
1119                      'spd_set_synthesis_voice',
1120                      'spd_list_modules',
1121                      'spd_set_output_module',
1122                      'spd_set_language',
1123           ],
1124           'message': 'Generating libspeechd library loader',
1125           'process_outputs_as_sources': 1,
1126         },
1127       ],
1128     },
1129     {
1130       'target_name': 'pangocairo',
1131       'type': 'none',
1132       'toolsets': ['host', 'target'],
1133       'conditions': [
1134         ['use_pango==1 and use_cairo==1', {
1135           'conditions': [
1136             ['_toolset=="target"', {
1137               'direct_dependent_settings': {
1138                 'cflags': [
1139                   '<!@(<(pkg-config) --cflags pangocairo pangoft2)',
1140                 ],
1141               },
1142               'link_settings': {
1143                 'ldflags': [
1144                   '<!@(<(pkg-config) --libs-only-L --libs-only-other pangocairo pangoft2)',
1145                 ],
1146                 'libraries': [
1147                   '<!@(<(pkg-config) --libs-only-l pangocairo pangoft2)',
1148                 ],
1149               },
1150             }, {
1151               'direct_dependent_settings': {
1152                 'cflags': [
1153                   '<!@(pkg-config --cflags pangocairo pangoft2)',
1154                 ],
1155               },
1156               'link_settings': {
1157                 'ldflags': [
1158                   '<!@(pkg-config --libs-only-L --libs-only-other pangocairo pangoft2)',
1159                 ],
1160                 'libraries': [
1161                   '<!@(pkg-config --libs-only-l pangocairo pangoft2)',
1162                 ],
1163               },
1164             }],
1165           ],
1166         }],
1167       ],
1168     },
1169     {
1170       'target_name': 'ssl',
1171       'type': 'none',
1172       'conditions': [
1173         ['_toolset=="target"', {
1174           'conditions': [
1175             ['use_openssl==1', {
1176               'dependencies': [
1177                 '../../third_party/boringssl/boringssl.gyp:boringssl',
1178               ],
1179             }, {
1180               'dependencies': [
1181                 '../../net/third_party/nss/ssl.gyp:libssl',
1182               ],
1183               'direct_dependent_settings': {
1184                 'include_dirs+': [
1185                   # We need for our local copies of the libssl3 headers to come
1186                   # before other includes, as we are shadowing system headers.
1187                   '<(DEPTH)/net/third_party/nss/ssl',
1188                 ],
1189               },
1190             }],
1191             # Link in the system NSS if it is used for either the internal
1192             # crypto library (use_openssl==0) or platform certificate
1193             # library (use_nss_certs==1).
1194             ['use_openssl==0 or use_nss_certs==1', {
1195               'direct_dependent_settings': {
1196                 'cflags': [
1197                   '<!@(<(pkg-config) --cflags nss)',
1198                 ],
1199               },
1200               'link_settings': {
1201                 'ldflags': [
1202                   '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
1203                 ],
1204                 'libraries': [
1205                   '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")',
1206                 ],
1207               },
1208               'conditions': [
1209                 ['clang==1', {
1210                   'direct_dependent_settings': {
1211                     'cflags': [
1212                       # There is a broken header guard in /usr/include/nss/secmod.h:
1213                       # https://bugzilla.mozilla.org/show_bug.cgi?id=884072
1214                       '-Wno-header-guard',
1215                     ],
1216                   },
1217                 }],
1218               ],
1219             }],
1220           ]
1221         }],
1222       ],
1223     },
1224   ],