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