blob: c4a36910fead66c65a634d9b506d8a5739fec7a2 [file] [log] [blame]
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'variables': {
# If any of the linux_link_FOO below are set to 1, then the corresponding
# target will be linked against the FOO library (either dynamically or
# statically, depending on the pkg-config files), as opposed to loading the
# FOO library dynamically with dlopen.
'linux_link_libgps%': 0,
'linux_link_libpci%': 0,
'linux_link_libspeechd%': 0,
'linux_link_libbrlapi%': 0,
# Used below for the various libraries. In this scope for sharing with GN.
'libbrlapi_functions': [
'brlapi_getHandleSize',
'brlapi_error_location',
'brlapi_strerror',
'brlapi__acceptKeys',
'brlapi__openConnection',
'brlapi__closeConnection',
'brlapi__getDisplaySize',
'brlapi__enterTtyModeWithPath',
'brlapi__leaveTtyMode',
'brlapi__writeDots',
'brlapi__readKey',
],
'libgio_functions': [
'g_settings_new',
'g_settings_get_child',
'g_settings_get_string',
'g_settings_get_boolean',
'g_settings_get_int',
'g_settings_get_strv',
'g_settings_list_schemas',
],
'libpci_functions': [
'pci_alloc',
'pci_init',
'pci_cleanup',
'pci_scan_bus',
'pci_fill_info',
'pci_lookup_name',
],
'libudev_functions': [
'udev_device_get_action',
'udev_device_get_devnode',
'udev_device_get_parent',
'udev_device_get_parent_with_subsystem_devtype',
'udev_device_get_property_value',
'udev_device_get_subsystem',
'udev_device_get_sysattr_value',
'udev_device_get_sysname',
'udev_device_get_syspath',
'udev_device_new_from_devnum',
'udev_device_new_from_subsystem_sysname',
'udev_device_new_from_syspath',
'udev_device_unref',
'udev_enumerate_add_match_subsystem',
'udev_enumerate_get_list_entry',
'udev_enumerate_new',
'udev_enumerate_scan_devices',
'udev_enumerate_unref',
'udev_list_entry_get_next',
'udev_list_entry_get_name',
'udev_monitor_enable_receiving',
'udev_monitor_filter_add_match_subsystem_devtype',
'udev_monitor_get_fd',
'udev_monitor_new_from_netlink',
'udev_monitor_receive_device',
'udev_monitor_unref',
'udev_new',
'udev_set_log_fn',
'udev_set_log_priority',
'udev_unref',
],
},
'conditions': [
[ 'chromeos==0 and use_ozone==0', {
# Hide GTK and related dependencies for Chrome OS and Ozone, so they won't get
# added back to Chrome OS and Ozone. Don't try to use GTK on Chrome OS and Ozone.
'targets': [
{
'target_name': 'atk',
'type': 'none',
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags atk)',
],
'defines': [
'ATK_LIB_DIR="<!@(<(pkg-config) --variable=libdir atk)"',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other atk)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l atk)',
],
},
}],
],
},
{
'target_name': 'gdk',
'type': 'none',
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags gdk-2.0)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other gdk-2.0)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l gdk-2.0)',
],
},
}],
],
},
{
'target_name': 'gtk2',
'type': 'none',
'toolsets': ['host', 'target'],
'variables': {
# gtk requires gmodule, but it does not list it as a dependency
# in some misconfigured systems.
'gtk_packages': 'gmodule-2.0 gtk+-2.0 gthread-2.0',
},
'conditions': [
['_toolset=="target"', {
'all_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags <(gtk_packages))',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other <(gtk_packages))',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l <(gtk_packages))',
],
},
}, {
'all_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags <(gtk_packages))',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other <(gtk_packages))',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l <(gtk_packages))',
],
},
}],
],
},
{
'target_name': 'gtkprint2',
'type': 'none',
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags gtk+-unix-print-2.0)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other gtk+-unix-print-2.0)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l gtk+-unix-print-2.0)',
],
},
}],
],
},
], # targets
}],
[ 'use_x11==1 or ozone_platform_ozonex==1', {
# Hide X11 and related dependencies when use_x11=0
'targets': [
{
'target_name': 'x11',
'type': 'none',
'toolsets': ['host', 'target'],
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags x11)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other x11 xi)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l x11 xi)',
],
},
}, {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags x11)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other x11 xi)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l x11 xi)',
],
},
}],
],
},
{
'target_name': 'xcursor',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xcursor)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xcursor)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xcursor)',
],
},
},
{
'target_name': 'xcomposite',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xcomposite)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xcomposite)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xcomposite)',
],
},
},
{
'target_name': 'xdamage',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xdamage)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xdamage)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xdamage)',
],
},
},
{
'target_name': 'xext',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xext)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xext)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xext)',
],
},
},
{
'target_name': 'xfixes',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xfixes)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xfixes)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xfixes)',
],
},
},
{
'target_name': 'xi',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xi)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xi)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xi)',
],
},
},
{
'target_name': 'xrandr',
'type': 'none',
'toolsets': ['host', 'target'],
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xrandr)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xrandr)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xrandr)',
],
},
}, {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xrandr)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xrandr)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xrandr)',
],
},
}],
],
},
{
'target_name': 'xrender',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xrender)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xrender)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xrender)',
],
},
},
{
'target_name': 'xtst',
'type': 'none',
'toolsets': ['host', 'target'],
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xtst)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xtst)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xtst)',
],
},
}, {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xtst)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xtst)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xtst)',
],
},
}]
]
}
], # targets
}],
['use_gtk3==1', {
# Hide GTK3 and related dependencies when use_gtk3==0 because the user
# might not have the GTK3 headers yet.
'targets': [
{
'target_name': 'gtk3',
'type': 'none',
'toolsets': ['host', 'target'],
'variables': {
# gtk requires gmodule, but it does not list it as a dependency
# in some misconfigured systems.
'gtk_packages': 'gmodule-2.0 gtk+-3.0 gthread-2.0',
},
'conditions': [
['_toolset=="target"', {
'all_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags <(gtk_packages))',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other <(gtk_packages))',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l <(gtk_packages))',
],
},
}, {
'all_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags <(gtk_packages))',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other <(gtk_packages))',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l <(gtk_packages))',
],
},
}],
],
},
{
'target_name': 'gtkprint3',
'type': 'none',
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags gtk+-unix-print-3.0)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other gtk+-unix-print-3.0)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l gtk+-unix-print-3.0)',
],
},
}],
],
},
],
}],
['use_x11==1 and chromeos==0', {
'targets': [
{
'target_name': 'xscrnsaver',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xscrnsaver)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xscrnsaver)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xscrnsaver)',
],
},
},
], # targets
}],
['use_evdev_gestures==1', {
'targets': [
{
'target_name': 'libevdev-cros',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags libevdev-cros)'
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other libevdev-cros)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l libevdev-cros)',
],
},
},
{
'target_name': 'libgestures',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags libgestures)'
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other libgestures)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l libgestures)',
],
},
},
],
}],
['use_xkbcommon==1', {
'targets': [
{
'target_name': 'xkbcommon',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags xkbcommon)'
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other xkbcommon)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l xkbcommon)',
],
},
},
],
}],
['ozone_platform_gbm==1 or chromeos==1', {
'targets': [
{
'target_name': 'libdrm',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags libdrm)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other libdrm)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l libdrm)',
],
},
},
],
}],
['ozone_platform_wayland==1', {
'targets': [
{
'target_name': 'wayland-egl',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags wayland-egl)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other wayland-egl)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l wayland-egl)',
],
},
},
],
}],
['use_udev==1', {
'targets': [
{
'target_name': 'udev',
'type': 'static_library',
'conditions': [
['_toolset=="target"', {
'include_dirs': [
'../..',
],
'hard_dependency': 1,
'actions': [
{
'variables': {
'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libudev0.h',
'output_cc': '<(INTERMEDIATE_DIR)/libudev0_loader.cc',
'generator': '../../tools/generate_library_loader/generate_library_loader.py',
},
'action_name': 'generate_libudev0_loader',
'inputs': [
'<(generator)',
],
'outputs': [
'<(output_h)',
'<(output_cc)',
],
'action': ['python',
'<(generator)',
'--name', 'LibUdev0Loader',
'--output-h', '<(output_h)',
'--output-cc', '<(output_cc)',
'--header', '"third_party/libudev/libudev0.h"',
'--link-directly=0',
'<@(libudev_functions)',
],
'message': 'Generating libudev0 library loader',
'process_outputs_as_sources': 1,
},
{
'variables': {
'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libudev1.h',
'output_cc': '<(INTERMEDIATE_DIR)/libudev1_loader.cc',
'generator': '../../tools/generate_library_loader/generate_library_loader.py',
},
'action_name': 'generate_libudev1_loader',
'inputs': [
'<(generator)',
],
'outputs': [
'<(output_h)',
'<(output_cc)',
],
'action': ['python',
'<(generator)',
'--name', 'LibUdev1Loader',
'--output-h', '<(output_h)',
'--output-cc', '<(output_cc)',
'--header', '"third_party/libudev/libudev1.h"',
'--link-directly=0',
'<@(libudev_functions)',
],
'message': 'Generating libudev1 library loader',
'process_outputs_as_sources': 1,
},
],
}],
],
},
],
}],
['use_libpci==1', {
'targets': [
{
'target_name': 'libpci',
'type': 'static_library',
'cflags': [
'<!@(<(pkg-config) --cflags libpci)',
],
'direct_dependent_settings': {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)',
],
'conditions': [
['linux_link_libpci==1', {
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other libpci)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l libpci)',
],
}
}],
],
},
'include_dirs': [
'../..',
],
'hard_dependency': 1,
'actions': [
{
'variables': {
'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libpci.h',
'output_cc': '<(INTERMEDIATE_DIR)/libpci_loader.cc',
'generator': '../../tools/generate_library_loader/generate_library_loader.py',
},
'action_name': 'generate_libpci_loader',
'inputs': [
'<(generator)',
],
'outputs': [
'<(output_h)',
'<(output_cc)',
],
'action': ['python',
'<(generator)',
'--name', 'LibPciLoader',
'--output-h', '<(output_h)',
'--output-cc', '<(output_cc)',
'--header', '<pci/pci.h>',
# TODO(phajdan.jr): Report problem to pciutils project
# and get it fixed so that we don't need --use-extern-c.
'--use-extern-c',
'--link-directly=<(linux_link_libpci)',
'<@(libpci_functions)',
],
'message': 'Generating libpci library loader',
'process_outputs_as_sources': 1,
},
],
},
],
}],
], # conditions
'targets': [
{
'target_name': 'dbus',
'type': 'none',
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags dbus-1)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other dbus-1)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l dbus-1)',
],
},
},
{
'target_name': 'fontconfig',
'type': 'none',
'conditions': [
['_toolset=="target"', {
'conditions': [
['use_system_fontconfig==1', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags fontconfig)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other fontconfig)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l fontconfig)',
],
},
}, { # use_system_fontconfig==0
'dependencies': [
'../../third_party/fontconfig/fontconfig.gyp:fontconfig',
],
'export_dependent_settings' : [
'../../third_party/fontconfig/fontconfig.gyp:fontconfig',
],
}],
],
}],
],
},
{
'target_name': 'freetype2',
'type': 'none',
'conditions': [
['chromecast==1', {
'dependencies': [
'../../third_party/freetype-android/freetype.gyp:ft2',
],
'export_dependent_settings' : [
'../../third_party/freetype-android/freetype.gyp:ft2',
],
}, '_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags freetype2)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other freetype2)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l freetype2)',
],
},
}],
],
},
{
'target_name': 'gconf',
'type': 'none',
'conditions': [
['use_gconf==1 and _toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags gconf-2.0)',
],
'defines': [
'USE_GCONF',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other gconf-2.0)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l gconf-2.0)',
],
},
}],
],
},
{
'target_name': 'gio',
'type': 'static_library',
'conditions': [
['use_gio==1 and _toolset=="target"', {
'cflags': [
'<!@(<(pkg-config) --cflags gio-2.0)',
],
'variables': {
'gio_warning_define': [
# glib >=2.40 deprecate g_settings_list_schemas in favor of
# g_settings_schema_source_list_schemas. This function is not
# available on earlier versions that we still need to support
# (specifically, 2.32), so disable the warning.
# TODO(mgiuca): Remove this suppression (and variable) when we
# drop support for Ubuntu 13.10 (saucy) and earlier. Update the
# code to use g_settings_schema_source_list_schemas instead.
'GLIB_DISABLE_DEPRECATION_WARNINGS',
],
},
'defines': [
'<(gio_warning_define)',
],
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags gio-2.0)',
],
'defines': [
'USE_GIO',
'<(gio_warning_define)',
],
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)',
],
},
'include_dirs': [
'../..',
],
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other gio-2.0)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l gio-2.0)',
],
'conditions': [
['linux_link_gsettings==0 and OS=="linux"', {
'libraries': [
'-ldl',
],
}],
],
},
'hard_dependency': 1,
'actions': [
{
'variables': {
'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libgio.h',
'output_cc': '<(INTERMEDIATE_DIR)/libgio_loader.cc',
'generator': '../../tools/generate_library_loader/generate_library_loader.py',
},
'action_name': 'generate_libgio_loader',
'inputs': [
'<(generator)',
],
'outputs': [
'<(output_h)',
'<(output_cc)',
],
'action': ['python',
'<(generator)',
'--name', 'LibGioLoader',
'--output-h', '<(output_h)',
'--output-cc', '<(output_cc)',
'--header', '<gio/gio.h>',
'--link-directly=<(linux_link_gsettings)',
'<@(libgio_functions)',
],
'message': 'Generating libgio library loader',
'process_outputs_as_sources': 1,
},
],
}],
],
},
{
'target_name': 'glib',
'type': 'none',
'toolsets': ['host', 'target'],
'variables': {
'glib_packages': 'glib-2.0 gmodule-2.0 gobject-2.0 gthread-2.0',
},
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags <(glib_packages))',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other <(glib_packages))',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l <(glib_packages))',
],
},
}, {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags <(glib_packages))',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other <(glib_packages))',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l <(glib_packages))',
],
},
}],
],
},
{
'target_name': 'gnome_keyring',
'type': 'none',
'conditions': [
['use_gnome_keyring==1', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags gnome-keyring-1)',
],
'defines': [
'USE_GNOME_KEYRING',
],
'conditions': [
['linux_link_gnome_keyring==0', {
'defines': ['DLOPEN_GNOME_KEYRING'],
}],
],
},
'conditions': [
['linux_link_gnome_keyring!=0', {
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other gnome-keyring-1)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l gnome-keyring-1)',
],
},
}, {
'conditions': [
['OS=="linux"', {
'link_settings': {
'libraries': [
'-ldl',
],
},
}],
],
}],
],
}],
],
},
{
# The unit tests use a few convenience functions from the GNOME
# Keyring library directly. We ignore linux_link_gnome_keyring and
# link directly in this version of the target to allow this.
# *** Do not use this target in the main binary! ***
'target_name': 'gnome_keyring_direct',
'type': 'none',
'conditions': [
['use_gnome_keyring==1', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags gnome-keyring-1)',
],
'defines': [
'USE_GNOME_KEYRING',
],
'conditions': [
['linux_link_gnome_keyring==0', {
'defines': ['DLOPEN_GNOME_KEYRING'],
}],
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other gnome-keyring-1)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l gnome-keyring-1)',
],
},
}],
],
},
{
'target_name': 'libbrlapi',
'type': 'static_library',
'all_dependent_settings': {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)',
],
'defines': [
'USE_BRLAPI',
],
'conditions': [
['linux_link_libbrlapi==1', {
'link_settings': {
'libraries': [
'-lbrlapi',
],
}
}],
],
},
'include_dirs': [
'../..',
],
'hard_dependency': 1,
'actions': [
{
'variables': {
'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libbrlapi.h',
'output_cc': '<(INTERMEDIATE_DIR)/libbrlapi_loader.cc',
'generator': '../../tools/generate_library_loader/generate_library_loader.py',
},
'action_name': 'generate_brlapi_loader',
'inputs': [
'<(generator)',
],
'outputs': [
'<(output_h)',
'<(output_cc)',
],
'action': ['python',
'<(generator)',
'--name', 'LibBrlapiLoader',
'--output-h', '<(output_h)',
'--output-cc', '<(output_cc)',
'--header', '<brlapi.h>',
'--link-directly=<(linux_link_libbrlapi)',
'<@(libbrlapi_functions)',
],
'message': 'Generating libbrlapi library loader',
'process_outputs_as_sources': 1,
},
],
},
{
'target_name': 'libcap',
'type': 'none',
'link_settings': {
'libraries': [
'-lcap',
],
},
},
{
'target_name': 'libresolv',
'type': 'none',
'link_settings': {
'libraries': [
'-lresolv',
],
},
},
{
# GN version: //third_party/speech-dispatcher
'target_name': 'libspeechd',
'type': 'static_library',
'direct_dependent_settings': {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)',
],
'conditions': [
['linux_link_libspeechd==1', {
'link_settings': {
'libraries': [
'-lspeechd',
],
}
}],
],
},
'include_dirs': [
'../..',
],
'hard_dependency': 1,
'actions': [
{
'variables': {
'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libspeechd.h',
'output_cc': '<(INTERMEDIATE_DIR)/libspeechd_loader.cc',
'generator': '../../tools/generate_library_loader/generate_library_loader.py',
# speech-dispatcher >= 0.8 installs libspeechd.h into
# speech-dispatcher/libspeechd.h, whereas speech-dispatcher < 0.8
# puts libspeechd.h in the top-level include directory.
# Since we need to support both cases for now, we ship a copy of
# libspeechd.h in third_party/speech-dispatcher. If the user
# prefers to link against the speech-dispatcher directly, the
# `libspeechd_h_prefix' variable can be passed to gyp with a value
# such as "speech-dispatcher/" that will be prepended to
# "libspeechd.h" in the #include directive.
# TODO(phaldan.jr): Once we do not need to support
# speech-dispatcher < 0.8 we can get rid of all this (including
# third_party/speech-dispatcher) and just include
# speech-dispatcher/libspeechd.h unconditionally.
'libspeechd_h_prefix%': '',
},
'action_name': 'generate_libspeechd_loader',
'inputs': [
'<(generator)',
],
'outputs': [
'<(output_h)',
'<(output_cc)',
],
'action': ['python',
'<(generator)',
'--name', 'LibSpeechdLoader',
'--output-h', '<(output_h)',
'--output-cc', '<(output_cc)',
'--header', '<<(libspeechd_h_prefix)libspeechd.h>',
'--bundled-header',
'"third_party/speech-dispatcher/libspeechd.h"',
'--link-directly=<(linux_link_libspeechd)',
'spd_open',
'spd_say',
'spd_stop',
'spd_close',
'spd_pause',
'spd_resume',
'spd_set_notification_on',
'spd_set_voice_rate',
'spd_set_voice_pitch',
'spd_list_synthesis_voices',
'spd_set_synthesis_voice',
'spd_list_modules',
'spd_set_output_module',
'spd_set_language',
],
'message': 'Generating libspeechd library loader',
'process_outputs_as_sources': 1,
},
],
},
{
'target_name': 'pangocairo',
'type': 'none',
'toolsets': ['host', 'target'],
'conditions': [
['use_pango==1 and use_cairo==1', {
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags pangocairo)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other pangocairo)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l pangocairo)',
],
},
}, {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags pangocairo)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other pangocairo)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l pangocairo)',
],
},
}],
],
}],
],
},
{
'target_name': 'ssl',
'type': 'none',
'conditions': [
['_toolset=="target"', {
'conditions': [
['use_openssl==1', {
'dependencies': [
'../../third_party/boringssl/boringssl.gyp:boringssl',
],
}, {
'dependencies': [
'../../net/third_party/nss/ssl.gyp:libssl',
],
'direct_dependent_settings': {
'include_dirs+': [
# We need for our local copies of the libssl3 headers to come
# before other includes, as we are shadowing system headers.
'<(DEPTH)/net/third_party/nss/ssl',
],
},
}],
# Link in the system NSS if it is used for either the internal
# crypto library (use_openssl==0) or platform certificate
# library (use_nss_certs==1).
['use_openssl==0 or use_nss_certs==1', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags nss)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")',
],
},
'conditions': [
['clang==1', {
'direct_dependent_settings': {
'cflags': [
# There is a broken header guard in /usr/include/nss/secmod.h:
# https://bugzilla.mozilla.org/show_bug.cgi?id=884072
'-Wno-header-guard',
],
},
}],
],
}],
]
}],
],
},
{
'target_name': 'libffi',
'type': 'none',
'conditions': [
['_toolset=="target"', {
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags libffi)',
],
},
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other libffi)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l libffi)',
],
},
}],
],
},
],
}