| # 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 = [ |
| "src/include", |
| "$target_gen_dir", |
| "$target_gen_dir/curl", |
| ] |
| defines = [ "CURL_NO_OLDIES" ] |
| } |
| |
| copy("copy_curl_config") { |
| visibility = [ ":*" ] |
| if (is_fuchsia) { |
| sources = [ "curl_config.h.fuchsia" ] |
| } else { |
| sources = [ "curl_config.h.host" ] |
| } |
| outputs = [ "$target_gen_dir/curl_config.h" ] |
| } |
| |
| target(default_library_type, "libcurl") { |
| output_name = "curl" |
| |
| sources = [ |
| "src/lib/altsvc.c", |
| "src/lib/altsvc.h", |
| "src/lib/amigaos.c", |
| "src/lib/amigaos.h", |
| "src/lib/arpa_telnet.h", |
| "src/lib/asyn-ares.c", |
| "src/lib/asyn-base.c", |
| "src/lib/asyn-thrdd.c", |
| "src/lib/asyn.h", |
| "src/lib/bufq.c", |
| "src/lib/bufq.h", |
| "src/lib/bufref.c", |
| "src/lib/bufref.h", |
| "src/lib/cf-h1-proxy.c", |
| "src/lib/cf-h1-proxy.h", |
| "src/lib/cf-h2-proxy.c", |
| "src/lib/cf-h2-proxy.h", |
| "src/lib/cf-haproxy.c", |
| "src/lib/cf-haproxy.h", |
| "src/lib/cf-https-connect.c", |
| "src/lib/cf-https-connect.h", |
| "src/lib/cf-ip-happy.c", |
| "src/lib/cf-ip-happy.h", |
| "src/lib/cf-socket.c", |
| "src/lib/cf-socket.h", |
| "src/lib/cfilters.c", |
| "src/lib/cfilters.h", |
| "src/lib/config-mac.h", |
| "src/lib/config-os400.h", |
| "src/lib/config-plan9.h", |
| "src/lib/config-riscos.h", |
| "src/lib/config-win32.h", |
| "src/lib/conncache.c", |
| "src/lib/conncache.h", |
| "src/lib/connect.c", |
| "src/lib/connect.h", |
| "src/lib/content_encoding.c", |
| "src/lib/content_encoding.h", |
| "src/lib/cookie.c", |
| "src/lib/cookie.h", |
| "src/lib/cshutdn.c", |
| "src/lib/cshutdn.h", |
| "src/lib/curl_addrinfo.c", |
| "src/lib/curl_addrinfo.h", |
| "src/lib/curl_config.h", |
| "src/lib/curl_ctype.h", |
| "src/lib/curl_endian.c", |
| "src/lib/curl_endian.h", |
| "src/lib/curl_fnmatch.c", |
| "src/lib/curl_fnmatch.h", |
| "src/lib/curl_fopen.c", |
| "src/lib/curl_fopen.h", |
| "src/lib/curl_get_line.c", |
| "src/lib/curl_get_line.h", |
| "src/lib/curl_gethostname.c", |
| "src/lib/curl_gethostname.h", |
| "src/lib/curl_gssapi.c", |
| "src/lib/curl_gssapi.h", |
| "src/lib/curl_hmac.h", |
| "src/lib/curl_ldap.h", |
| "src/lib/curl_md4.h", |
| "src/lib/curl_md5.h", |
| "src/lib/curl_memory.h", |
| "src/lib/curl_memrchr.c", |
| "src/lib/curl_memrchr.h", |
| "src/lib/curl_multibyte.h", |
| "src/lib/curl_ntlm_core.c", |
| "src/lib/curl_ntlm_core.h", |
| "src/lib/curl_printf.h", |
| "src/lib/curl_range.c", |
| "src/lib/curl_range.h", |
| "src/lib/curl_rtmp.c", |
| "src/lib/curl_rtmp.h", |
| "src/lib/curl_sasl.c", |
| "src/lib/curl_sasl.h", |
| "src/lib/curl_setup.h", |
| "src/lib/curl_setup_once.h", |
| "src/lib/curl_sha256.h", |
| "src/lib/curl_sha512_256.c", |
| "src/lib/curl_sha512_256.h", |
| "src/lib/curl_share.c", |
| "src/lib/curl_share.h", |
| "src/lib/curl_sspi.c", |
| "src/lib/curl_sspi.h", |
| "src/lib/curl_threads.c", |
| "src/lib/curl_threads.h", |
| "src/lib/curl_trc.c", |
| "src/lib/curl_trc.h", |
| "src/lib/curlx/base64.c", |
| "src/lib/curlx/base64.h", |
| "src/lib/curlx/binmode.h", |
| "src/lib/curlx/curlx.h", |
| "src/lib/curlx/dynbuf.c", |
| "src/lib/curlx/dynbuf.h", |
| "src/lib/curlx/fopen.c", |
| "src/lib/curlx/fopen.h", |
| "src/lib/curlx/inet_ntop.c", |
| "src/lib/curlx/inet_ntop.h", |
| "src/lib/curlx/inet_pton.c", |
| "src/lib/curlx/inet_pton.h", |
| "src/lib/curlx/multibyte.c", |
| "src/lib/curlx/multibyte.h", |
| "src/lib/curlx/nonblock.c", |
| "src/lib/curlx/nonblock.h", |
| "src/lib/curlx/strcopy.c", |
| "src/lib/curlx/strcopy.h", |
| "src/lib/curlx/strerr.c", |
| "src/lib/curlx/strerr.h", |
| "src/lib/curlx/strparse.c", |
| "src/lib/curlx/strparse.h", |
| "src/lib/curlx/timediff.c", |
| "src/lib/curlx/timediff.h", |
| "src/lib/curlx/timeval.c", |
| "src/lib/curlx/timeval.h", |
| "src/lib/curlx/version_win32.c", |
| "src/lib/curlx/version_win32.h", |
| "src/lib/curlx/wait.c", |
| "src/lib/curlx/wait.h", |
| "src/lib/curlx/warnless.c", |
| "src/lib/curlx/warnless.h", |
| "src/lib/curlx/winapi.c", |
| "src/lib/curlx/winapi.h", |
| "src/lib/cw-out.c", |
| "src/lib/cw-out.h", |
| "src/lib/cw-pause.c", |
| "src/lib/cw-pause.h", |
| "src/lib/dict.c", |
| "src/lib/dict.h", |
| "src/lib/doh.c", |
| "src/lib/doh.h", |
| "src/lib/dynhds.c", |
| "src/lib/dynhds.h", |
| "src/lib/easy.c", |
| "src/lib/easy_lock.h", |
| "src/lib/easygetopt.c", |
| "src/lib/easyif.h", |
| "src/lib/easyoptions.c", |
| "src/lib/easyoptions.h", |
| "src/lib/escape.c", |
| "src/lib/escape.h", |
| "src/lib/fake_addrinfo.c", |
| "src/lib/fake_addrinfo.h", |
| "src/lib/file.c", |
| "src/lib/file.h", |
| "src/lib/fileinfo.c", |
| "src/lib/fileinfo.h", |
| "src/lib/formdata.c", |
| "src/lib/formdata.h", |
| "src/lib/ftp.c", |
| "src/lib/ftp.h", |
| "src/lib/ftplistparser.c", |
| "src/lib/ftplistparser.h", |
| "src/lib/functypes.h", |
| "src/lib/getenv.c", |
| "src/lib/getinfo.c", |
| "src/lib/getinfo.h", |
| "src/lib/gopher.c", |
| "src/lib/gopher.h", |
| "src/lib/hash.c", |
| "src/lib/hash.h", |
| "src/lib/headers.c", |
| "src/lib/headers.h", |
| "src/lib/hmac.c", |
| "src/lib/hostip.c", |
| "src/lib/hostip.h", |
| "src/lib/hostip4.c", |
| "src/lib/hostip6.c", |
| "src/lib/hsts.c", |
| "src/lib/hsts.h", |
| "src/lib/http.c", |
| "src/lib/http.h", |
| "src/lib/http1.c", |
| "src/lib/http1.h", |
| "src/lib/http2.c", |
| "src/lib/http2.h", |
| "src/lib/http_aws_sigv4.c", |
| "src/lib/http_aws_sigv4.h", |
| "src/lib/http_chunks.c", |
| "src/lib/http_chunks.h", |
| "src/lib/http_digest.c", |
| "src/lib/http_digest.h", |
| "src/lib/http_negotiate.c", |
| "src/lib/http_negotiate.h", |
| "src/lib/http_ntlm.c", |
| "src/lib/http_ntlm.h", |
| "src/lib/http_proxy.c", |
| "src/lib/http_proxy.h", |
| "src/lib/httpsrr.c", |
| "src/lib/httpsrr.h", |
| "src/lib/idn.c", |
| "src/lib/idn.h", |
| "src/lib/if2ip.c", |
| "src/lib/if2ip.h", |
| "src/lib/imap.c", |
| "src/lib/imap.h", |
| "src/lib/ldap.c", |
| "src/lib/llist.c", |
| "src/lib/llist.h", |
| "src/lib/macos.c", |
| "src/lib/macos.h", |
| "src/lib/md4.c", |
| "src/lib/md5.c", |
| "src/lib/memdebug.c", |
| "src/lib/memdebug.h", |
| "src/lib/mime.c", |
| "src/lib/mime.h", |
| "src/lib/mprintf.c", |
| "src/lib/mqtt.c", |
| "src/lib/mqtt.h", |
| "src/lib/multi.c", |
| "src/lib/multi_ev.c", |
| "src/lib/multi_ev.h", |
| "src/lib/multi_ntfy.c", |
| "src/lib/multi_ntfy.h", |
| "src/lib/multihandle.h", |
| "src/lib/multiif.h", |
| "src/lib/netrc.c", |
| "src/lib/netrc.h", |
| "src/lib/noproxy.c", |
| "src/lib/noproxy.h", |
| "src/lib/openldap.c", |
| "src/lib/parsedate.c", |
| "src/lib/parsedate.h", |
| "src/lib/pingpong.c", |
| "src/lib/pingpong.h", |
| "src/lib/pop3.c", |
| "src/lib/pop3.h", |
| "src/lib/progress.c", |
| "src/lib/progress.h", |
| "src/lib/psl.c", |
| "src/lib/psl.h", |
| "src/lib/rand.c", |
| "src/lib/rand.h", |
| "src/lib/ratelimit.c", |
| "src/lib/ratelimit.h", |
| "src/lib/request.c", |
| "src/lib/request.h", |
| "src/lib/rtsp.c", |
| "src/lib/rtsp.h", |
| "src/lib/select.c", |
| "src/lib/select.h", |
| "src/lib/sendf.c", |
| "src/lib/sendf.h", |
| "src/lib/setopt.c", |
| "src/lib/setopt.h", |
| "src/lib/setup-os400.h", |
| "src/lib/setup-vms.h", |
| "src/lib/setup-win32.h", |
| "src/lib/sha256.c", |
| "src/lib/sigpipe.h", |
| "src/lib/slist.c", |
| "src/lib/slist.h", |
| "src/lib/smb.c", |
| "src/lib/smb.h", |
| "src/lib/smtp.c", |
| "src/lib/smtp.h", |
| "src/lib/sockaddr.h", |
| "src/lib/socketpair.c", |
| "src/lib/socketpair.h", |
| "src/lib/socks.c", |
| "src/lib/socks.h", |
| "src/lib/socks_gssapi.c", |
| "src/lib/socks_sspi.c", |
| "src/lib/splay.c", |
| "src/lib/splay.h", |
| "src/lib/strcase.c", |
| "src/lib/strcase.h", |
| "src/lib/strdup.c", |
| "src/lib/strdup.h", |
| "src/lib/strequal.c", |
| "src/lib/strequal.h", |
| "src/lib/strerror.c", |
| "src/lib/strerror.h", |
| "src/lib/system_win32.c", |
| "src/lib/system_win32.h", |
| "src/lib/telnet.c", |
| "src/lib/telnet.h", |
| "src/lib/tftp.c", |
| "src/lib/tftp.h", |
| "src/lib/transfer.c", |
| "src/lib/transfer.h", |
| "src/lib/uint-bset.c", |
| "src/lib/uint-bset.h", |
| "src/lib/uint-hash.c", |
| "src/lib/uint-hash.h", |
| "src/lib/uint-spbset.c", |
| "src/lib/uint-spbset.h", |
| "src/lib/uint-table.c", |
| "src/lib/uint-table.h", |
| "src/lib/url.c", |
| "src/lib/url.h", |
| "src/lib/urlapi-int.h", |
| "src/lib/urlapi.c", |
| "src/lib/urldata.h", |
| "src/lib/vauth/cleartext.c", |
| "src/lib/vauth/cram.c", |
| "src/lib/vauth/digest.c", |
| "src/lib/vauth/digest.h", |
| "src/lib/vauth/digest_sspi.c", |
| "src/lib/vauth/gsasl.c", |
| "src/lib/vauth/krb5_gssapi.c", |
| "src/lib/vauth/krb5_sspi.c", |
| "src/lib/vauth/ntlm.c", |
| "src/lib/vauth/ntlm_sspi.c", |
| "src/lib/vauth/oauth2.c", |
| "src/lib/vauth/spnego_gssapi.c", |
| "src/lib/vauth/spnego_sspi.c", |
| "src/lib/vauth/vauth.c", |
| "src/lib/vauth/vauth.h", |
| "src/lib/version.c", |
| "src/lib/vquic/curl_ngtcp2.c", |
| "src/lib/vquic/curl_ngtcp2.h", |
| "src/lib/vquic/curl_quiche.c", |
| "src/lib/vquic/curl_quiche.h", |
| "src/lib/vquic/vquic.c", |
| "src/lib/vquic/vquic.h", |
| "src/lib/vquic/vquic_int.h", |
| "src/lib/vssh/libssh.c", |
| "src/lib/vssh/libssh2.c", |
| "src/lib/vssh/ssh.h", |
| "src/lib/vtls/gtls.c", |
| "src/lib/vtls/gtls.h", |
| "src/lib/vtls/hostcheck.c", |
| "src/lib/vtls/hostcheck.h", |
| "src/lib/vtls/keylog.c", |
| "src/lib/vtls/keylog.h", |
| "src/lib/vtls/mbedtls.c", |
| "src/lib/vtls/mbedtls.h", |
| "src/lib/vtls/openssl.c", |
| "src/lib/vtls/openssl.h", |
| "src/lib/vtls/rustls.c", |
| "src/lib/vtls/rustls.h", |
| "src/lib/vtls/schannel.c", |
| "src/lib/vtls/schannel.h", |
| "src/lib/vtls/schannel_int.h", |
| "src/lib/vtls/schannel_verify.c", |
| "src/lib/vtls/vtls.c", |
| "src/lib/vtls/vtls.h", |
| "src/lib/vtls/vtls_int.h", |
| "src/lib/vtls/vtls_scache.c", |
| "src/lib/vtls/vtls_scache.h", |
| "src/lib/vtls/vtls_spack.c", |
| "src/lib/vtls/vtls_spack.h", |
| "src/lib/vtls/wolfssl.c", |
| "src/lib/vtls/wolfssl.h", |
| "src/lib/vtls/x509asn1.c", |
| "src/lib/vtls/x509asn1.h", |
| "src/lib/ws.c", |
| "src/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" ] |
| } |
| 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", |
| |
| # TODO(https://fxbug.dev/432038197): update library to resolve this warning. |
| "-Wno-uninitialized-const-pointer", |
| ] |
| } |
| |
| executable("curl_bin") { |
| output_name = "curl" |
| sources = [ |
| "src/lib/curl_ctype.h", |
| "src/lib/curl_setup.h", |
| "src/lib/curlx/base64.c", |
| "src/lib/curlx/base64.h", |
| "src/lib/curlx/binmode.h", |
| "src/lib/curlx/dynbuf.c", |
| "src/lib/curlx/dynbuf.h", |
| "src/lib/curlx/fopen.c", |
| "src/lib/curlx/fopen.h", |
| "src/lib/curlx/nonblock.c", |
| "src/lib/curlx/nonblock.h", |
| "src/lib/curlx/strcopy.c", |
| "src/lib/curlx/strcopy.h", |
| "src/lib/curlx/strerr.c", |
| "src/lib/curlx/strerr.h", |
| "src/lib/curlx/strparse.c", |
| "src/lib/curlx/strparse.h", |
| "src/lib/curlx/timediff.c", |
| "src/lib/curlx/timediff.h", |
| "src/lib/curlx/timeval.c", |
| "src/lib/curlx/timeval.h", |
| "src/lib/curlx/wait.c", |
| "src/lib/curlx/wait.h", |
| "src/lib/curlx/warnless.c", |
| "src/lib/curlx/warnless.h", |
| "src/src/config2setopts.c", |
| "src/src/config2setopts.h", |
| "src/src/slist_wc.c", |
| "src/src/slist_wc.h", |
| "src/src/terminal.c", |
| "src/src/terminal.h", |
| "src/src/tool_bname.c", |
| "src/src/tool_bname.h", |
| "src/src/tool_cb_dbg.c", |
| "src/src/tool_cb_dbg.h", |
| "src/src/tool_cb_hdr.c", |
| "src/src/tool_cb_hdr.h", |
| "src/src/tool_cb_prg.c", |
| "src/src/tool_cb_prg.h", |
| "src/src/tool_cb_rea.c", |
| "src/src/tool_cb_rea.h", |
| "src/src/tool_cb_see.c", |
| "src/src/tool_cb_see.h", |
| "src/src/tool_cb_soc.c", |
| "src/src/tool_cb_soc.h", |
| "src/src/tool_cb_wrt.c", |
| "src/src/tool_cb_wrt.h", |
| "src/src/tool_cfgable.c", |
| "src/src/tool_cfgable.h", |
| "src/src/tool_dirhie.c", |
| "src/src/tool_dirhie.h", |
| "src/src/tool_doswin.c", |
| "src/src/tool_doswin.h", |
| "src/src/tool_easysrc.c", |
| "src/src/tool_easysrc.h", |
| "src/src/tool_filetime.c", |
| "src/src/tool_filetime.h", |
| "src/src/tool_findfile.c", |
| "src/src/tool_findfile.h", |
| "src/src/tool_formparse.c", |
| "src/src/tool_formparse.h", |
| "src/src/tool_getparam.c", |
| "src/src/tool_getparam.h", |
| "src/src/tool_getpass.c", |
| "src/src/tool_getpass.h", |
| "src/src/tool_help.c", |
| "src/src/tool_help.h", |
| "src/src/tool_helpers.c", |
| "src/src/tool_helpers.h", |
| "src/src/tool_hugehelp.h", |
| "src/src/tool_ipfs.c", |
| "src/src/tool_ipfs.h", |
| "src/src/tool_libinfo.c", |
| "src/src/tool_libinfo.h", |
| "src/src/tool_listhelp.c", |
| "src/src/tool_main.c", |
| "src/src/tool_main.h", |
| "src/src/tool_msgs.c", |
| "src/src/tool_msgs.h", |
| "src/src/tool_operate.c", |
| "src/src/tool_operate.h", |
| "src/src/tool_operhlp.c", |
| "src/src/tool_operhlp.h", |
| "src/src/tool_paramhlp.c", |
| "src/src/tool_paramhlp.h", |
| "src/src/tool_parsecfg.c", |
| "src/src/tool_parsecfg.h", |
| "src/src/tool_progress.c", |
| "src/src/tool_progress.h", |
| "src/src/tool_sdecls.h", |
| "src/src/tool_setopt.c", |
| "src/src/tool_setopt.h", |
| "src/src/tool_setup.h", |
| "src/src/tool_ssls.c", |
| "src/src/tool_ssls.h", |
| "src/src/tool_stderr.c", |
| "src/src/tool_stderr.h", |
| "src/src/tool_strdup.c", |
| "src/src/tool_strdup.h", |
| "src/src/tool_urlglob.c", |
| "src/src/tool_urlglob.h", |
| "src/src/tool_util.c", |
| "src/src/tool_util.h", |
| "src/src/tool_version.h", |
| "src/src/tool_vms.c", |
| "src/src/tool_vms.h", |
| "src/src/tool_writeout.c", |
| "src/src/tool_writeout.h", |
| "src/src/tool_writeout_json.c", |
| "src/src/tool_writeout_json.h", |
| "src/src/tool_xattr.c", |
| "src/src/tool_xattr.h", |
| "src/src/toolx/tool_time.c", |
| "src/src/toolx/tool_time.h", |
| "src/src/var.c", |
| "src/src/var.h", |
| ] |
| deps = [ |
| ":copy_curl_config", |
| ":libcurl", |
| ":tool_hugehelp", |
| "//third_party/zlib", |
| ] |
| defines = [ "HAVE_CONFIG_H" ] |
| if (is_linux) { |
| defines += [ "_GNU_SOURCE" ] |
| } |
| include_dirs = [ "src/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" ] |
| } |
| |
| # See README.fuchsia for how to generate this file. |
| source_set("tool_hugehelp") { |
| sources = [ "tool_hugehelp.c" ] |
| |
| # Because we check this in directly to fuchsia.git instead of generating it |
| # during the build, we have to tell it where to find the headers that it |
| # expects to be generated alongside. |
| include_dirs = [ |
| "src/lib", |
| "src/src", |
| ] |
| |
| deps = [ ":libcurl" ] |
| |
| defines = [ "HAVE_CONFIG_H" ] |
| configs += [ ":suppress_warnings" ] |
| } |