1# Copyright (c) 2009 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  'conditions': [
7    ['sysroot!=""', {
8      'variables': {
9        'pkg-config': './pkg-config-wrapper "<(sysroot)"',
10      },
11    }, {
12      'variables': {
13        'pkg-config': 'pkg-config'
14      },
15    }],
16    [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
17      'variables': {
18        # We use our own copy of libssl3, although we still need to link against
19        # the rest of NSS.
20        'use_system_ssl%': 0,
21      },
22    }, {  # OS!="linux"
23      'variables': {
24        'use_system_ssl%': 1,
25      },
26    }],
27  ],
28
29
30  'targets': [
31    {
32      'target_name': 'gtk',
33      'type': 'settings',
34      'conditions': [
35        ['_toolset=="target"', {
36          'direct_dependent_settings': {
37            'cflags': [
38              '<!@(<(pkg-config) --cflags gtk+-2.0 gthread-2.0)',
39            ],
40          },
41          'link_settings': {
42            'ldflags': [
43              '<!@(<(pkg-config) --libs-only-L --libs-only-other gtk+-2.0 gthread-2.0)',
44            ],
45            'libraries': [
46              '<!@(<(pkg-config) --libs-only-l gtk+-2.0 gthread-2.0)',
47            ],
48          },
49      }],
50      [ 'chromeos==1', {
51        'link_settings': {
52          'libraries': [ '-lXtst' ]
53        }
54      }]]
55    },
56    {
57      'target_name': 'gtkprint',
58      'type': 'settings',
59      'conditions': [
60        ['_toolset=="target"', {
61          'direct_dependent_settings': {
62            'cflags': [
63              '<!@(<(pkg-config) --cflags gtk+-unix-print-2.0)',
64            ],
65          },
66          'link_settings': {
67            'ldflags': [
68              '<!@(<(pkg-config) --libs-only-L --libs-only-other gtk+-unix-print-2.0)',
69            ],
70            'libraries': [
71              '<!@(<(pkg-config) --libs-only-l gtk+-unix-print-2.0)',
72            ],
73          },
74      }]]
75    },
76    {
77      'target_name': 'nss',
78      'type': 'settings',
79      'conditions': [
80        ['_toolset=="target"', {
81          'conditions': [
82            ['use_system_ssl==0', {
83              'dependencies': [
84                '../../net/third_party/nss/ssl.gyp:ssl',
85                '../../third_party/zlib/zlib.gyp:zlib',
86              ],
87              'direct_dependent_settings': {
88                'cflags': [
89                  # We need for our local copies of the libssl3 headers to come
90                  # first, otherwise the code will build, but will fallback to
91                  # the set of features advertised in the system headers.
92                  # Unfortunately, there's no include path that we can filter
93                  # out of $(pkg-config --cflags nss) and GYP include paths
94                  # come after cflags on the command line. So we have these
95                  # bodges:
96                  '-Inet/third_party/nss/ssl',                         # for make
97                  '-ISource/WebKit/chromium/net/third_party/nss/ssl',  # for make in webkit
98                  '<!@(<(pkg-config) --cflags nss)',
99                ],
100              },
101              'link_settings': {
102                'ldflags': [
103                  '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
104                ],
105                'libraries': [
106                  '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")',
107                ],
108              },
109            }, {
110              'direct_dependent_settings': {
111                'cflags': [
112                  '<!@(<(pkg-config) --cflags nss)',
113                ],
114                'defines': [
115                  'USE_SYSTEM_SSL',
116                ],
117              },
118              'link_settings': {
119                'ldflags': [
120                  '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
121                ],
122                'libraries': [
123                  '<!@(<(pkg-config) --libs-only-l nss)',
124                ],
125              },
126            }
127          ]]
128        }],
129      ],
130    },
131    {
132      'target_name': 'freetype2',
133      'type': 'settings',
134      'conditions': [
135        ['_toolset=="target"', {
136          'direct_dependent_settings': {
137            'cflags': [
138              '<!@(<(pkg-config) --cflags freetype2)',
139            ],
140          },
141          'link_settings': {
142            'ldflags': [
143              '<!@(<(pkg-config) --libs-only-L --libs-only-other freetype2)',
144            ],
145            'libraries': [
146              '<!@(<(pkg-config) --libs-only-l freetype2)',
147            ],
148          },
149      }]]
150    },
151    {
152      'target_name': 'fontconfig',
153      'type': 'settings',
154      'conditions': [
155        ['_toolset=="target"', {
156          'direct_dependent_settings': {
157            'cflags': [
158              '<!@(<(pkg-config) --cflags fontconfig)',
159            ],
160          },
161          'link_settings': {
162            'ldflags': [
163              '<!@(<(pkg-config) --libs-only-L --libs-only-other fontconfig)',
164            ],
165            'libraries': [
166              '<!@(<(pkg-config) --libs-only-l fontconfig)',
167            ],
168          },
169      }]]
170    },
171    {
172      'target_name': 'gdk',
173      'type': 'settings',
174      'conditions': [
175        ['_toolset=="target"', {
176          'direct_dependent_settings': {
177            'cflags': [
178              '<!@(<(pkg-config) --cflags gdk-2.0)',
179            ],
180          },
181          'link_settings': {
182            'ldflags': [
183              '<!@(<(pkg-config) --libs-only-L --libs-only-other gdk-2.0)',
184            ],
185            'libraries': [
186              '<!@(<(pkg-config) --libs-only-l gdk-2.0)',
187            ],
188          },
189      }]]
190    },
191    {
192      'target_name': 'gconf',
193      'type': 'settings',
194      'conditions': [
195        ['use_gconf==1 and _toolset=="target"', {
196          'direct_dependent_settings': {
197            'cflags': [
198              '<!@(<(pkg-config) --cflags gconf-2.0)',
199            ],
200            'defines': [
201              'USE_GCONF',
202            ],
203          },
204          'link_settings': {
205            'ldflags': [
206              '<!@(<(pkg-config) --libs-only-L --libs-only-other gconf-2.0)',
207            ],
208            'libraries': [
209              '<!@(<(pkg-config) --libs-only-l gconf-2.0)',
210            ],
211          },
212      }]]
213    },
214    {
215      'target_name': 'x11',
216      'type': 'settings',
217      'conditions': [
218        ['_toolset=="target"', {
219          'direct_dependent_settings': {
220            'cflags': [
221              '<!@(<(pkg-config) --cflags x11)',
222            ],
223          },
224          'link_settings': {
225            'ldflags': [
226              '<!@(<(pkg-config) --libs-only-L --libs-only-other x11)',
227            ],
228            'libraries': [
229              '<!@(<(pkg-config) --libs-only-l x11)',
230            ],
231          },
232      }],
233      # When XInput2 is available (i.e. inputproto version is 2.0), the
234      # pkg-config command will succeed, so the output will be empty.
235      ['"<!@(<(pkg-config) --atleast-version=2.0 inputproto || echo $?)"==""', {
236        'direct_dependent_settings': {
237          'defines': [
238            'HAVE_XINPUT2',
239          ],
240        },
241        'link_settings': {
242          'ldflags': [
243            '<!@(<(pkg-config) --libs-only-L --libs-only-other xi)',
244          ],
245          'libraries': [
246            '<!@(<(pkg-config) --libs-only-l xi)',
247          ],
248        }
249      }],
250      ],
251    },
252    {
253      'target_name': 'xext',
254      'type': 'settings',
255      'conditions': [
256        ['_toolset=="target"', {
257          'direct_dependent_settings': {
258            'cflags': [
259              '<!@(<(pkg-config) --cflags xext)',
260            ],
261          },
262          'link_settings': {
263            'ldflags': [
264              '<!@(<(pkg-config) --libs-only-L --libs-only-other xext)',
265            ],
266            'libraries': [
267              '<!@(<(pkg-config) --libs-only-l xext)',
268            ],
269          },
270      }]]
271    },
272    {
273      'target_name': 'selinux',
274      'type': 'settings',
275      'conditions': [
276        ['_toolset=="target"', {
277          'link_settings': {
278            'libraries': [
279              '-lselinux',
280            ],
281          },
282      }]]
283    },
284    {
285      'target_name': 'gnome-keyring',
286      'type': 'settings',
287      'conditions': [
288        ['use_gnome_keyring==1', {
289          'direct_dependent_settings': {
290            'cflags': [
291              '<!@(<(pkg-config) --cflags gnome-keyring-1)',
292            ],
293            'defines': [
294              'USE_GNOME_KEYRING',
295            ],
296            'conditions': [
297              ['linux_link_gnome_keyring==0', {
298                'defines': ['DLOPEN_GNOME_KEYRING'],
299              }],
300            ],
301          },
302          'conditions': [
303            ['linux_link_gnome_keyring!=0', {
304              'link_settings': {
305                'ldflags': [
306                  '<!@(<(pkg-config) --libs-only-L --libs-only-other gnome-keyring-1)',
307                ],
308                'libraries': [
309                  '<!@(<(pkg-config) --libs-only-l gnome-keyring-1)',
310                ],
311              },
312            }, {
313              'link_settings': {
314                'libraries': [
315                  '-ldl',
316                ],
317              },
318            }],
319          ],
320        }],
321      ],
322    },
323    {
324      'target_name': 'dbus-glib',
325      'type': 'settings',
326      'direct_dependent_settings': {
327        'cflags': [
328          '<!@(<(pkg-config) --cflags dbus-glib-1)',
329        ],
330      },
331      'link_settings': {
332        'ldflags': [
333          '<!@(<(pkg-config) --libs-only-L --libs-only-other dbus-glib-1)',
334        ],
335        'libraries': [
336          '<!@(<(pkg-config) --libs-only-l dbus-glib-1)',
337        ],
338      },
339    },
340    {
341      'target_name': 'libresolv',
342      'type': 'settings',
343      'link_settings': {
344        'libraries': [
345          '-lresolv',
346        ],
347      },
348    },
349    {
350      'target_name': 'ibus',
351      'type': 'settings',
352      'conditions': [
353        ['"<!@(<(pkg-config) --atleast-version=1.3.99 ibus-1.0 || echo $?)"==""', {
354          'variables': {
355            'ibus': 1
356          },
357          'direct_dependent_settings': {
358            'cflags': [
359              '<!@(<(pkg-config) --cflags ibus-1.0)',
360            ],
361          },
362          'link_settings': {
363            'ldflags': [
364              '<!@(<(pkg-config) --libs-only-L --libs-only-other ibus-1.0)',
365            ],
366            'libraries': [
367              '<!@(<(pkg-config) --libs-only-l ibus-1.0)',
368            ],
369          },
370        }],
371      ],
372    },
373  ],
374}
375
376# Local Variables:
377# tab-width:2
378# indent-tabs-mode:nil
379# End:
380# vim: set expandtab tabstop=2 shiftwidth=2:
381