| # Copyright 2017 The Fuchsia Authors. All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are |
| # met: |
| # |
| # * Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # * Redistributions in binary form must reproduce the above |
| # copyright notice, this list of conditions and the following disclaimer |
| # in the documentation and/or other materials provided with the |
| # distribution. |
| # * Neither the name of Google Inc. nor the names of its |
| # contributors may be used to endorse or promote products derived from |
| # this software without specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| if (is_fuchsia) { |
| import("//build/components.gni") |
| |
| fuchsia_package("curl_pkg") { |
| package_name = "curl" |
| deps = [ ":curl_bin" ] |
| } |
| } |
| |
| config("curl_config") { |
| include_dirs = [ |
| "include", |
| "$target_gen_dir", |
| "$target_gen_dir/curl", |
| ] |
| defines = [ "CURL_NO_OLDIES" ] |
| } |
| |
| copy("copy_curl_config") { |
| visibility = [ ":*" ] |
| if (is_fuchsia) { |
| sources = [ "lib/curl_config.h.fuchsia" ] |
| } else { |
| sources = [ "lib/curl_config.h.host" ] |
| } |
| outputs = [ "$target_gen_dir/curl_config.h" ] |
| } |
| |
| target(default_library_type, "libcurl") { |
| output_name = "curl" |
| |
| sources = [ |
| "lib/altsvc.c", |
| "lib/altsvc.h", |
| "lib/amigaos.c", |
| "lib/amigaos.h", |
| "lib/arpa_telnet.h", |
| "lib/asyn-ares.c", |
| "lib/asyn-thread.c", |
| "lib/asyn.h", |
| "lib/base64.c", |
| "lib/bufq.c", |
| "lib/bufq.h", |
| "lib/bufref.c", |
| "lib/bufref.h", |
| "lib/c-hyper.c", |
| "lib/c-hyper.h", |
| "lib/cf-h1-proxy.c", |
| "lib/cf-h1-proxy.h", |
| "lib/cf-h2-proxy.c", |
| "lib/cf-h2-proxy.h", |
| "lib/cf-haproxy.c", |
| "lib/cf-haproxy.h", |
| "lib/cf-https-connect.c", |
| "lib/cf-https-connect.h", |
| "lib/cf-socket.c", |
| "lib/cf-socket.h", |
| "lib/cfilters.c", |
| "lib/cfilters.h", |
| "lib/config-amigaos.h", |
| "lib/config-dos.h", |
| "lib/config-mac.h", |
| "lib/config-os400.h", |
| "lib/config-plan9.h", |
| "lib/config-riscos.h", |
| "lib/config-win32.h", |
| "lib/config-win32ce.h", |
| "lib/conncache.c", |
| "lib/conncache.h", |
| "lib/connect.c", |
| "lib/connect.h", |
| "lib/content_encoding.c", |
| "lib/content_encoding.h", |
| "lib/cookie.c", |
| "lib/cookie.h", |
| "lib/curl_addrinfo.c", |
| "lib/curl_addrinfo.h", |
| "lib/curl_base64.h", |
| "lib/curl_config.h", |
| "lib/curl_ctype.h", |
| "lib/curl_des.c", |
| "lib/curl_des.h", |
| "lib/curl_endian.c", |
| "lib/curl_endian.h", |
| "lib/curl_fnmatch.c", |
| "lib/curl_fnmatch.h", |
| "lib/curl_get_line.c", |
| "lib/curl_get_line.h", |
| "lib/curl_gethostname.c", |
| "lib/curl_gethostname.h", |
| "lib/curl_gssapi.c", |
| "lib/curl_gssapi.h", |
| "lib/curl_hmac.h", |
| "lib/curl_krb5.h", |
| "lib/curl_ldap.h", |
| "lib/curl_md4.h", |
| "lib/curl_md5.h", |
| "lib/curl_memory.h", |
| "lib/curl_memrchr.c", |
| "lib/curl_memrchr.h", |
| "lib/curl_multibyte.c", |
| "lib/curl_multibyte.h", |
| "lib/curl_ntlm_core.c", |
| "lib/curl_ntlm_core.h", |
| "lib/curl_ntlm_wb.c", |
| "lib/curl_ntlm_wb.h", |
| "lib/curl_path.c", |
| "lib/curl_path.h", |
| "lib/curl_printf.h", |
| "lib/curl_range.c", |
| "lib/curl_range.h", |
| "lib/curl_rtmp.c", |
| "lib/curl_rtmp.h", |
| "lib/curl_sasl.c", |
| "lib/curl_sasl.h", |
| "lib/curl_setup.h", |
| "lib/curl_setup_once.h", |
| "lib/curl_sha256.h", |
| "lib/curl_sspi.c", |
| "lib/curl_sspi.h", |
| "lib/curl_threads.c", |
| "lib/curl_threads.h", |
| "lib/curl_trc.c", |
| "lib/curl_trc.h", |
| "lib/curlx.h", |
| "lib/dict.c", |
| "lib/dict.h", |
| "lib/doh.c", |
| "lib/doh.h", |
| "lib/dynbuf.c", |
| "lib/dynbuf.h", |
| "lib/dynhds.c", |
| "lib/dynhds.h", |
| "lib/easy.c", |
| "lib/easy_lock.h", |
| "lib/easygetopt.c", |
| "lib/easyif.h", |
| "lib/easyoptions.c", |
| "lib/easyoptions.h", |
| "lib/escape.c", |
| "lib/escape.h", |
| "lib/file.c", |
| "lib/file.h", |
| "lib/fileinfo.c", |
| "lib/fileinfo.h", |
| "lib/fopen.c", |
| "lib/fopen.h", |
| "lib/formdata.c", |
| "lib/formdata.h", |
| "lib/ftp.c", |
| "lib/ftp.h", |
| "lib/ftplistparser.c", |
| "lib/ftplistparser.h", |
| "lib/functypes.h", |
| "lib/getenv.c", |
| "lib/getinfo.c", |
| "lib/getinfo.h", |
| "lib/gopher.c", |
| "lib/gopher.h", |
| "lib/hash.c", |
| "lib/hash.h", |
| "lib/headers.c", |
| "lib/headers.h", |
| "lib/hmac.c", |
| "lib/hostasyn.c", |
| "lib/hostip.c", |
| "lib/hostip.h", |
| "lib/hostip4.c", |
| "lib/hostip6.c", |
| "lib/hostsyn.c", |
| "lib/hsts.c", |
| "lib/hsts.h", |
| "lib/http.c", |
| "lib/http.h", |
| "lib/http1.c", |
| "lib/http1.h", |
| "lib/http2.c", |
| "lib/http2.h", |
| "lib/http_aws_sigv4.c", |
| "lib/http_aws_sigv4.h", |
| "lib/http_chunks.c", |
| "lib/http_chunks.h", |
| "lib/http_digest.c", |
| "lib/http_digest.h", |
| "lib/http_negotiate.c", |
| "lib/http_negotiate.h", |
| "lib/http_ntlm.c", |
| "lib/http_ntlm.h", |
| "lib/http_proxy.c", |
| "lib/http_proxy.h", |
| "lib/idn.c", |
| "lib/idn.h", |
| "lib/if2ip.c", |
| "lib/if2ip.h", |
| "lib/imap.c", |
| "lib/imap.h", |
| "lib/inet_ntop.c", |
| "lib/inet_ntop.h", |
| "lib/inet_pton.c", |
| "lib/inet_pton.h", |
| "lib/krb5.c", |
| "lib/ldap.c", |
| "lib/llist.c", |
| "lib/llist.h", |
| "lib/macos.c", |
| "lib/macos.h", |
| "lib/md4.c", |
| "lib/md5.c", |
| "lib/memdebug.c", |
| "lib/memdebug.h", |
| "lib/mime.c", |
| "lib/mime.h", |
| "lib/mprintf.c", |
| "lib/mqtt.c", |
| "lib/mqtt.h", |
| "lib/multi.c", |
| "lib/multihandle.h", |
| "lib/multiif.h", |
| "lib/netrc.c", |
| "lib/netrc.h", |
| "lib/nonblock.c", |
| "lib/nonblock.h", |
| "lib/noproxy.c", |
| "lib/noproxy.h", |
| "lib/openldap.c", |
| "lib/parsedate.c", |
| "lib/parsedate.h", |
| "lib/pingpong.c", |
| "lib/pingpong.h", |
| "lib/pop3.c", |
| "lib/pop3.h", |
| "lib/progress.c", |
| "lib/progress.h", |
| "lib/psl.c", |
| "lib/psl.h", |
| "lib/rand.c", |
| "lib/rand.h", |
| "lib/rename.c", |
| "lib/rename.h", |
| "lib/rtsp.c", |
| "lib/rtsp.h", |
| "lib/select.c", |
| "lib/select.h", |
| "lib/sendf.c", |
| "lib/sendf.h", |
| "lib/setopt.c", |
| "lib/setopt.h", |
| "lib/setup-os400.h", |
| "lib/setup-vms.h", |
| "lib/setup-win32.h", |
| "lib/sha256.c", |
| "lib/share.c", |
| "lib/share.h", |
| "lib/sigpipe.h", |
| "lib/slist.c", |
| "lib/slist.h", |
| "lib/smb.c", |
| "lib/smb.h", |
| "lib/smtp.c", |
| "lib/smtp.h", |
| "lib/sockaddr.h", |
| "lib/socketpair.c", |
| "lib/socketpair.h", |
| "lib/socks.c", |
| "lib/socks.h", |
| "lib/socks_gssapi.c", |
| "lib/socks_sspi.c", |
| "lib/speedcheck.c", |
| "lib/speedcheck.h", |
| "lib/splay.c", |
| "lib/splay.h", |
| "lib/strcase.c", |
| "lib/strcase.h", |
| "lib/strdup.c", |
| "lib/strdup.h", |
| "lib/strerror.c", |
| "lib/strerror.h", |
| "lib/strtok.c", |
| "lib/strtok.h", |
| "lib/strtoofft.c", |
| "lib/strtoofft.h", |
| "lib/system_win32.c", |
| "lib/system_win32.h", |
| "lib/telnet.c", |
| "lib/telnet.h", |
| "lib/tftp.c", |
| "lib/tftp.h", |
| "lib/timediff.c", |
| "lib/timediff.h", |
| "lib/timeval.c", |
| "lib/timeval.h", |
| "lib/transfer.c", |
| "lib/transfer.h", |
| "lib/url.c", |
| "lib/url.h", |
| "lib/urlapi-int.h", |
| "lib/urlapi.c", |
| "lib/urldata.h", |
| "lib/vauth/cleartext.c", |
| "lib/vauth/cram.c", |
| "lib/vauth/digest.c", |
| "lib/vauth/digest.h", |
| "lib/vauth/digest_sspi.c", |
| "lib/vauth/gsasl.c", |
| "lib/vauth/krb5_gssapi.c", |
| "lib/vauth/krb5_sspi.c", |
| "lib/vauth/ntlm.c", |
| "lib/vauth/ntlm.h", |
| "lib/vauth/ntlm_sspi.c", |
| "lib/vauth/oauth2.c", |
| "lib/vauth/spnego_gssapi.c", |
| "lib/vauth/spnego_sspi.c", |
| "lib/vauth/vauth.c", |
| "lib/vauth/vauth.h", |
| "lib/version.c", |
| "lib/version_win32.c", |
| "lib/version_win32.h", |
| "lib/vquic/curl_msh3.c", |
| "lib/vquic/curl_msh3.h", |
| "lib/vquic/curl_ngtcp2.c", |
| "lib/vquic/curl_ngtcp2.h", |
| "lib/vquic/curl_quiche.c", |
| "lib/vquic/curl_quiche.h", |
| "lib/vquic/vquic.c", |
| "lib/vquic/vquic.h", |
| "lib/vquic/vquic_int.h", |
| "lib/vssh/libssh.c", |
| "lib/vssh/libssh2.c", |
| "lib/vssh/ssh.h", |
| "lib/vssh/wolfssh.c", |
| "lib/vtls/bearssl.c", |
| "lib/vtls/bearssl.h", |
| "lib/vtls/gtls.c", |
| "lib/vtls/gtls.h", |
| "lib/vtls/hostcheck.c", |
| "lib/vtls/hostcheck.h", |
| "lib/vtls/keylog.c", |
| "lib/vtls/keylog.h", |
| "lib/vtls/mbedtls.c", |
| "lib/vtls/mbedtls.h", |
| "lib/vtls/mbedtls_threadlock.c", |
| "lib/vtls/mbedtls_threadlock.h", |
| "lib/vtls/openssl.c", |
| "lib/vtls/openssl.h", |
| "lib/vtls/rustls.c", |
| "lib/vtls/rustls.h", |
| "lib/vtls/schannel.c", |
| "lib/vtls/schannel.h", |
| "lib/vtls/schannel_int.h", |
| "lib/vtls/schannel_verify.c", |
| "lib/vtls/sectransp.c", |
| "lib/vtls/sectransp.h", |
| "lib/vtls/vtls.c", |
| "lib/vtls/vtls.h", |
| "lib/vtls/vtls_int.h", |
| "lib/vtls/wolfssl.c", |
| "lib/vtls/wolfssl.h", |
| "lib/vtls/x509asn1.c", |
| "lib/vtls/x509asn1.h", |
| "lib/warnless.c", |
| "lib/warnless.h", |
| "lib/ws.c", |
| "lib/ws.h", |
| ] |
| deps = [ |
| ":copy_curl_config", |
| "//third_party/boringssl", |
| "//third_party/zlib", |
| ] |
| defines = [ |
| "BUILDING_LIBCURL", |
| "CURL_HIDDEN_SYMBOLS", |
| "HAVE_CONFIG_H", |
| ] |
| if (is_linux) { |
| defines += [ "_GNU_SOURCE" ] |
| } else if (is_mac) { |
| frameworks = [ "SystemConfiguration.framework" ] |
| } |
| include_dirs = [ "lib" ] |
| public_configs = [ ":curl_config" ] |
| configs += [ ":suppress_warnings" ] |
| } |
| |
| config("suppress_warnings") { |
| visibility = [ ":*" ] |
| cflags = [ |
| "-Wno-string-plus-int", |
| "-Wno-conversion", |
| "-Wno-implicit-fallthrough", |
| "-Wno-unused-but-set-variable", |
| ] |
| } |
| |
| executable("curl_bin") { |
| output_name = "curl" |
| sources = [ |
| "lib/base64.c", |
| "lib/curl_base64.h", |
| "lib/curl_ctype.h", |
| "lib/curl_setup.h", |
| "lib/dynbuf.c", |
| "lib/dynbuf.h", |
| "lib/nonblock.c", |
| "lib/nonblock.h", |
| "lib/strtoofft.c", |
| "lib/strtoofft.h", |
| "lib/warnless.c", |
| "lib/warnless.h", |
| "src/slist_wc.c", |
| "src/slist_wc.h", |
| "src/tool_binmode.c", |
| "src/tool_binmode.h", |
| "src/tool_bname.c", |
| "src/tool_bname.h", |
| "src/tool_cb_dbg.c", |
| "src/tool_cb_dbg.h", |
| "src/tool_cb_hdr.c", |
| "src/tool_cb_hdr.h", |
| "src/tool_cb_prg.c", |
| "src/tool_cb_prg.h", |
| "src/tool_cb_rea.c", |
| "src/tool_cb_rea.h", |
| "src/tool_cb_see.c", |
| "src/tool_cb_see.h", |
| "src/tool_cb_wrt.c", |
| "src/tool_cb_wrt.h", |
| "src/tool_cfgable.c", |
| "src/tool_cfgable.h", |
| "src/tool_dirhie.c", |
| "src/tool_dirhie.h", |
| "src/tool_doswin.c", |
| "src/tool_doswin.h", |
| "src/tool_easysrc.c", |
| "src/tool_easysrc.h", |
| "src/tool_filetime.c", |
| "src/tool_filetime.h", |
| "src/tool_findfile.c", |
| "src/tool_findfile.h", |
| "src/tool_formparse.c", |
| "src/tool_formparse.h", |
| "src/tool_getparam.c", |
| "src/tool_getparam.h", |
| "src/tool_getpass.c", |
| "src/tool_getpass.h", |
| "src/tool_help.c", |
| "src/tool_help.h", |
| "src/tool_helpers.c", |
| "src/tool_helpers.h", |
| "src/tool_hugehelp.c", |
| "src/tool_hugehelp.h", |
| "src/tool_ipfs.c", |
| "src/tool_ipfs.h", |
| "src/tool_libinfo.c", |
| "src/tool_libinfo.h", |
| "src/tool_listhelp.c", |
| "src/tool_main.c", |
| "src/tool_main.h", |
| "src/tool_msgs.c", |
| "src/tool_msgs.h", |
| "src/tool_operate.c", |
| "src/tool_operate.h", |
| "src/tool_operhlp.c", |
| "src/tool_operhlp.h", |
| "src/tool_paramhlp.c", |
| "src/tool_paramhlp.h", |
| "src/tool_parsecfg.c", |
| "src/tool_parsecfg.h", |
| "src/tool_progress.c", |
| "src/tool_progress.h", |
| "src/tool_sdecls.h", |
| "src/tool_setopt.c", |
| "src/tool_setopt.h", |
| "src/tool_setup.h", |
| "src/tool_sleep.c", |
| "src/tool_sleep.h", |
| "src/tool_stderr.c", |
| "src/tool_stderr.h", |
| "src/tool_strdup.c", |
| "src/tool_strdup.h", |
| "src/tool_urlglob.c", |
| "src/tool_urlglob.h", |
| "src/tool_util.c", |
| "src/tool_util.h", |
| "src/tool_version.h", |
| "src/tool_vms.c", |
| "src/tool_vms.h", |
| "src/tool_writeout.c", |
| "src/tool_writeout.h", |
| "src/tool_writeout_json.c", |
| "src/tool_writeout_json.h", |
| "src/tool_xattr.c", |
| "src/tool_xattr.h", |
| "src/var.c", |
| "src/var.h", |
| ] |
| deps = [ |
| ":copy_curl_config", |
| ":libcurl", |
| "//third_party/zlib", |
| ] |
| defines = [ "HAVE_CONFIG_H" ] |
| if (is_linux) { |
| defines += [ "_GNU_SOURCE" ] |
| } else if (is_mac) { |
| frameworks = [ "SystemConfiguration.framework" ] |
| } |
| include_dirs = [ "lib" ] |
| configs += [ ":suppress_warnings" ] |
| |
| # Note that the curl binary explicitly defines CURL_NO_OLDIES in one of its |
| # headers, so to ensure we don't redefine it in that header, make sure we |
| # undefine the define implicitly added via curl_config via libcurl's |
| # public_configs. |
| cflags = [ "-UCURL_NO_OLDIES" ] |
| } |