# 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': { 'conditions': [ ['sysroot!=""', { 'pkg-config': './pkg-config-wrapper "<(sysroot)" "<(target_arch)"', }, { 'pkg-config': 'pkg-config' }] ], }, 'conditions': [ [ 'os_posix==1 and OS!="mac"', { 'variables': { # We use our own copy of libssl3, although we still need to link against # the rest of NSS. 'use_system_ssl%': 0, }, }, { 'variables': { 'use_system_ssl%': 1, }, }], [ 'chromeos==0', { # Hide GTK and related dependencies for Chrome OS, so they won't get # added back to Chrome OS. Don't try to use GTK on Chrome OS. 'targets': [ { 'target_name': 'gtk', '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"', { 'direct_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))', ], }, }, { 'direct_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': 'gtkprint', '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)', ], }, }], ], }, { '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)', ], }, }], ], }, ], # targets }, { # chromeos==1 'targets': [ { # TODO(satorux): Remove this once dbus-glib clients are gone. 'target_name': 'dbus-glib', 'type': 'none', 'direct_dependent_settings': { 'cflags': [ '<!@(<(pkg-config) --cflags dbus-glib-1)', ], }, 'link_settings': { 'ldflags': [ '<!@(<(pkg-config) --libs-only-L --libs-only-other dbus-glib-1)', ], 'libraries': [ '<!@(<(pkg-config) --libs-only-l dbus-glib-1)', ], }, }, ], }] ], # conditions 'targets': [ { 'target_name': 'ssl', 'type': 'none', 'conditions': [ ['_toolset=="target"', { 'conditions': [ ['use_openssl==1', { 'dependencies': [ '../../third_party/openssl/openssl.gyp:openssl', ], }], ['use_openssl==0 and use_system_ssl==0', { 'dependencies': [ '../../net/third_party/nss/ssl.gyp:libssl', '../../third_party/zlib/zlib.gyp:zlib', ], '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', ], '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//")', ], }, }], ['use_openssl==0 and use_system_ssl==1', { 'direct_dependent_settings': { 'cflags': [ '<!@(<(pkg-config) --cflags nss)', ], 'defines': [ 'USE_SYSTEM_SSL', ], }, 'link_settings': { 'ldflags': [ '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)', ], 'libraries': [ '<!@(<(pkg-config) --libs-only-l nss)', ], }, }], ] }], ], }, { 'target_name': 'freetype2', 'type': 'none', 'conditions': [ ['_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': 'fontconfig', 'type': 'none', 'conditions': [ ['_toolset=="target"', { '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)', ], }, }], ], }, { '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': 'none', 'conditions': [ ['use_gio==1 and _toolset=="target"', { 'direct_dependent_settings': { 'cflags': [ '<!@(<(pkg-config) --cflags gio-2.0)', ], 'defines': [ 'USE_GIO', ], 'conditions': [ ['linux_link_gsettings==0', { 'defines': ['DLOPEN_GSETTINGS'], }], ], }, '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', ], }], ], }, }], ], }, { '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': 'xext', 'type': 'none', 'conditions': [ ['_toolset=="target"', { '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', 'conditions': [ ['_toolset=="target"', { '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': 'libgcrypt', 'type': 'none', 'conditions': [ ['_toolset=="target" and use_cups==1', { 'direct_dependent_settings': { 'cflags': [ '<!@(libgcrypt-config --cflags)', ], }, 'link_settings': { 'libraries': [ '<!@(libgcrypt-config --libs)', ], }, }], ], }, { 'target_name': 'selinux', 'type': 'none', 'conditions': [ ['_toolset=="target"', { 'link_settings': { 'libraries': [ '-lselinux', ], }, }], ], }, { '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': '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': '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))', ], }, }], ['chromeos==1', { 'link_settings': { 'libraries': [ '-lXtst' ] } }], ], }, { 'target_name': 'pangocairo', 'type': 'none', 'toolsets': ['host', 'target'], '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': 'libresolv', 'type': 'none', 'link_settings': { 'libraries': [ '-lresolv', ], }, }, { 'target_name': 'ibus', 'type': 'none', 'conditions': [ ['use_ibus==1', { 'variables': { 'ibus_min_version': '1.3.99.20110425', }, 'direct_dependent_settings': { 'defines': ['HAVE_IBUS=1'], 'cflags': [ '<!@(<(pkg-config) --cflags "ibus-1.0 >= <(ibus_min_version)")', ], }, 'link_settings': { 'ldflags': [ '<!@(<(pkg-config) --libs-only-L --libs-only-other "ibus-1.0 >= <(ibus_min_version)")', ], 'libraries': [ '<!@(<(pkg-config) --libs-only-l "ibus-1.0 >= <(ibus_min_version)")', ], }, }], ], }, { 'target_name': 'udev', 'type': 'none', 'conditions': [ # libudev is not available on *BSD ['_toolset=="target" and os_bsd!=1', { 'direct_dependent_settings': { 'cflags': [ '<!@(<(pkg-config) --cflags libudev)' ], }, 'link_settings': { 'ldflags': [ '<!@(<(pkg-config) --libs-only-L --libs-only-other libudev)', ], 'libraries': [ '<!@(<(pkg-config) --libs-only-l libudev)', ], }, }], ], }, ], }