text: # 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
      }],
    ],  # 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)',
              ],
            },
          }],
        ],
      },
    ],
  }
  