1{
2  'variables': {
3    'cares_sources_common': [
4      'include/ares.h',
5      'include/ares_dns.h',
6      'include/ares_dns_record.h',
7      'include/ares_nameser.h',
8      'include/ares_rules.h',
9      'include/ares_version.h',
10      'src/lib/ares__addrinfo2hostent.c',
11      'src/lib/ares__addrinfo_localhost.c',
12      'src/lib/ares__buf.c',
13      'src/lib/ares__buf.h',
14      'src/lib/ares__close_sockets.c',
15      'src/lib/ares__hosts_file.c',
16      'src/lib/ares__htable.c',
17      'src/lib/ares__htable.h',
18      'src/lib/ares__htable_asvp.c',
19      'src/lib/ares__htable_asvp.h',
20      'src/lib/ares__htable_strvp.c',
21      'src/lib/ares__htable_strvp.h',
22      'src/lib/ares__htable_szvp.c',
23      'src/lib/ares__htable_szvp.h',
24      'src/lib/ares__iface_ips.c',
25      'src/lib/ares__iface_ips.h',
26      'src/lib/ares__llist.c',
27      'src/lib/ares__llist.h',
28      'src/lib/ares__parse_into_addrinfo.c',
29      'src/lib/ares__read_line.c',
30      'src/lib/ares__slist.c',
31      'src/lib/ares__slist.h',
32      'src/lib/ares__socket.c',
33      'src/lib/ares__sortaddrinfo.c',
34      'src/lib/ares__threads.c',
35      'src/lib/ares__threads.h',
36      'src/lib/ares__timeval.c',
37      'src/lib/ares_android.c',
38      'src/lib/ares_android.h',
39      'src/lib/ares_cancel.c',
40      'src/lib/ares_create_query.c',
41      'src/lib/ares_data.c',
42      'src/lib/ares_data.h',
43      'src/lib/ares_destroy.c',
44      'src/lib/ares_dns_mapping.c',
45      'src/lib/ares_dns_name.c',
46      'src/lib/ares_dns_parse.c',
47      'src/lib/ares_dns_record.c',
48      'src/lib/ares_dns_private.h',
49      'src/lib/ares_dns_write.c',
50      'src/lib/ares_event.h',
51      'src/lib/ares_event_win32.h',
52      'src/lib/ares_event_epoll.c',
53      'src/lib/ares_event_kqueue.c',
54      'src/lib/ares_event_poll.c',
55      'src/lib/ares_event_select.c',
56      'src/lib/ares_event_thread.c',
57      'src/lib/ares_event_wake_pipe.c',
58      'src/lib/ares_event_win32.c',
59      'src/lib/ares_expand_name.c',
60      'src/lib/ares_expand_string.c',
61      'src/lib/ares_fds.c',
62      'src/lib/ares_free_hostent.c',
63      'src/lib/ares_free_string.c',
64      'src/lib/ares_freeaddrinfo.c',
65      'src/lib/ares_getaddrinfo.c',
66      'src/lib/ares_getenv.c',
67      'src/lib/ares_getenv.h',
68      'src/lib/ares_gethostbyaddr.c',
69      'src/lib/ares_gethostbyname.c',
70      'src/lib/ares_getnameinfo.c',
71      'src/lib/ares_getsock.c',
72      'src/lib/ares_inet_net_pton.h',
73      'src/lib/ares_init.c',
74      'src/lib/ares_library_init.c',
75      'src/lib/ares_ipv6.h',
76      'src/lib/ares_math.c',
77      'src/lib/ares_mkquery.c',
78      'src/lib/ares_options.c',
79      'src/lib/ares_parse_a_reply.c',
80      'src/lib/ares_parse_aaaa_reply.c',
81      'src/lib/ares_parse_caa_reply.c',
82      'src/lib/ares_parse_mx_reply.c',
83      'src/lib/ares_parse_naptr_reply.c',
84      'src/lib/ares_parse_ns_reply.c',
85      'src/lib/ares_parse_ptr_reply.c',
86      'src/lib/ares_parse_soa_reply.c',
87      'src/lib/ares_parse_srv_reply.c',
88      'src/lib/ares_parse_txt_reply.c',
89      'src/lib/ares_parse_uri_reply.c',
90      'src/lib/ares_platform.c',
91      'src/lib/ares_platform.h',
92      'src/lib/ares_private.h',
93      'src/lib/ares_process.c',
94      'src/lib/ares_qcache.c',
95      'src/lib/ares_query.c',
96      'src/lib/ares_rand.c',
97      'src/lib/ares_search.c',
98      'src/lib/ares_send.c',
99      'src/lib/ares_setup.h',
100      'src/lib/ares_strcasecmp.c',
101      'src/lib/ares_strcasecmp.h',
102      'src/lib/ares_str.c',
103      'src/lib/ares_str.h',
104      'src/lib/ares_strerror.c',
105      'src/lib/ares_strsplit.c',
106      'src/lib/ares_strsplit.h',
107      'src/lib/ares_sysconfig.c',
108      'src/lib/ares_sysconfig_files.c',
109      'src/lib/ares_timeout.c',
110      'src/lib/ares_update_servers.c',
111      'src/lib/ares_version.c',
112      'src/lib/inet_net_pton.c',
113      'src/lib/inet_ntop.c',
114      'src/lib/setup_once.h',
115      'src/tools/ares_getopt.c',
116      'src/tools/ares_getopt.h',
117    ],
118    'cares_sources_win': [
119      'src/lib/config-win32.h',
120      'src/lib/windows_port.c',
121    ],
122  },
123
124  'target_defaults': {
125    'conditions': [
126      ['OS!="win"', {
127        'defines': [
128          '_DARWIN_USE_64_BIT_INODE=1',
129          '_LARGEFILE_SOURCE',
130          '_FILE_OFFSET_BITS=64',
131          '_GNU_SOURCE'
132        ]
133      }],
134      [ 'OS in "aix os400"', {
135        'include_dirs': [ 'config/aix' ],
136        'sources': [ 'config/aix/ares_config.h' ],
137        'defines': [
138          # Support for malloc(0)
139          '_LINUX_SOURCE_COMPAT=1',
140          '_ALL_SOURCE=1'],
141      }],
142      ['OS=="solaris"', {
143        'defines': [
144          '__EXTENSIONS__',
145          '_XOPEN_SOURCE=500'
146        ]
147      }]
148    ]
149  },
150
151  'targets': [
152    {
153      'target_name': 'cares',
154      'type': '<(library)',
155      'include_dirs': [ 'include' ],
156      'direct_dependent_settings': {
157        'include_dirs': [ 'include' ]
158      },
159      'sources': [
160        '<@(cares_sources_common)',
161      ],
162      'conditions': [
163        [ 'library=="static_library"', {
164          'defines': [ 'CARES_STATICLIB' ]
165        }, {
166          'defines': [ 'CARES_BUILDING_LIBRARY' ]
167        }],
168        [ 'OS=="win"', {
169          'defines': [
170            'CARES_PULL_WS2TCPIP_H=1',
171            '_WINSOCK_DEPRECATED_NO_WARNINGS',
172          ],
173          'include_dirs': [ 'config/win32' ],
174          'sources': [
175            '<@(cares_sources_win)',
176          ],
177          'libraries': [
178            '-lws2_32.lib',
179            '-liphlpapi.lib'
180          ],
181        }, {
182          # Not Windows i.e. POSIX
183          'cflags': [
184            '-g',
185            '-pedantic',
186            '-Wall',
187            '-Wextra',
188            '-Wno-unused-parameter'
189          ],
190          'defines': [ 'HAVE_CONFIG_H' ],
191        }],
192        [ 'OS not in "win android"', {
193          'cflags': [
194            '--std=gnu11'
195          ],
196        }],
197        [ 'OS=="linux"', {
198          'include_dirs': [ 'config/linux' ],
199          'sources': [ 'config/linux/ares_config.h' ]
200        }],
201        [ 'OS=="mac" or OS=="ios"', {
202          'include_dirs': [ 'config/darwin' ],
203          'sources': [ 'config/darwin/ares_config.h' ]
204        }],
205        [ 'OS=="freebsd" or OS=="dragonflybsd"', {
206          'include_dirs': [ 'config/freebsd' ],
207          'sources': [ 'config/freebsd/ares_config.h' ]
208        }],
209        [ 'OS=="openbsd"', {
210          'include_dirs': [ 'config/openbsd' ],
211          'sources': [ 'config/openbsd/ares_config.h' ]
212        }],
213        [ 'OS=="android"', {
214          'include_dirs': [ 'config/android' ],
215          'sources': [ 'config/android/ares_config.h' ],
216        }],
217        [ 'OS=="solaris"', {
218          'include_dirs': [ 'config/sunos' ],
219          'sources': [ 'config/sunos/ares_config.h' ],
220          'direct_dependent_settings': {
221            'libraries': [
222              '-lsocket',
223              '-lnsl'
224            ]
225          }
226        }]
227      ]
228    }
229  ]
230}
231