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