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