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