cc_defaults {
    name: "curl_common_defaults",
    cflags: [
        "-Wpointer-arith",
        "-Wwrite-strings",
        "-Wunused",
        "-Winline",
        "-Wnested-externs",
        "-Wmissing-declarations",
        "-Wmissing-prototypes",
        "-Wno-long-long",
        "-Wfloat-equal",
        "-Wno-multichar",
        "-Wno-sign-compare",
        "-Wno-format-nonliteral",
        "-Wendif-labels",
        "-Wstrict-prototypes",
        "-Wdeclaration-after-statement",
        "-Wno-system-headers",
        "-DHAVE_CONFIG_H",
        // TODO(avakulenko): Android.mk had this for OS version string:
        // "Android $(PLATFORM_VERSION) $(TARGET_ARCH_VARIANT)"
        // but Soong doesn't have access to those config variables yet.
        "-DOS=\"Android\"",
        "-Werror",
        // Bug: http://b/29823425 Disable -Wvarargs for Clang update to r271374
        "-Wno-varargs",
    ],
    clang: true,
    local_include_dirs: ["include", "lib"],
}

cc_library {
    name: "libcurl",
    vendor_available: true,
    defaults: ["curl_common_defaults"],
    export_include_dirs: ["include"],
    host_supported: true,
    cflags: [
        "-DBUILDING_LIBCURL",
    ],
    srcs:[
        "lib/file.c",
        "lib/timeval.c",
        "lib/base64.c",
        "lib/hostip.c",
        "lib/progress.c",
        "lib/formdata.c",
        "lib/cookie.c",
        "lib/http.c",
        "lib/sendf.c",
        "lib/ftp.c",
        "lib/url.c",
        "lib/dict.c",
        "lib/if2ip.c",
        "lib/speedcheck.c",
        "lib/ldap.c",
        "lib/version.c",
        "lib/getenv.c",
        "lib/escape.c",
        "lib/mprintf.c",
        "lib/telnet.c",
        "lib/netrc.c",
        "lib/getinfo.c",
        "lib/transfer.c",
        "lib/strequal.c",
        "lib/easy.c",
        "lib/security.c",
        "lib/curl_fnmatch.c",
        "lib/fileinfo.c",
        "lib/ftplistparser.c",
        "lib/wildcard.c",
        "lib/krb5.c",
        "lib/memdebug.c",
        "lib/http_chunks.c",
        "lib/strtok.c",
        "lib/connect.c",
        "lib/llist.c",
        "lib/hash.c",
        "lib/multi.c",
        "lib/content_encoding.c",
        "lib/share.c",
        "lib/http_digest.c",
        "lib/md4.c",
        "lib/md5.c",
        "lib/http_negotiate.c",
        "lib/inet_pton.c",
        "lib/strtoofft.c",
        "lib/strerror.c",
        "lib/amigaos.c",
        "lib/hostasyn.c",
        "lib/hostip4.c",
        "lib/hostip6.c",
        "lib/hostsyn.c",
        "lib/inet_ntop.c",
        "lib/parsedate.c",
        "lib/select.c",
        "lib/tftp.c",
        "lib/splay.c",
        "lib/strdup.c",
        "lib/socks.c",
        "lib/ssh.c",
        "lib/rawstr.c",
        "lib/curl_addrinfo.c",
        "lib/socks_gssapi.c",
        "lib/socks_sspi.c",
        "lib/curl_sspi.c",
        "lib/slist.c",
        "lib/nonblock.c",
        "lib/curl_memrchr.c",
        "lib/imap.c",
        "lib/pop3.c",
        "lib/smtp.c",
        "lib/pingpong.c",
        "lib/rtsp.c",
        "lib/curl_threads.c",
        "lib/warnless.c",
        "lib/hmac.c",
        "lib/curl_rtmp.c",
        "lib/openldap.c",
        "lib/curl_gethostname.c",
        "lib/gopher.c",
        "lib/idn_win32.c",
        "lib/http_proxy.c",
        "lib/non-ascii.c",
        "lib/asyn-ares.c",
        "lib/asyn-thread.c",
        "lib/curl_gssapi.c",
        "lib/http_ntlm.c",
        "lib/curl_ntlm_wb.c",
        "lib/curl_ntlm_core.c",
        "lib/curl_sasl.c",
        "lib/curl_multibyte.c",
        "lib/hostcheck.c",
        "lib/conncache.c",
        "lib/pipeline.c",
        "lib/dotdot.c",
        "lib/x509asn1.c",
        "lib/http2.c",
        "lib/smb.c",
        "lib/curl_endian.c",
        "lib/curl_des.c",
        "lib/system_win32.c",
        "lib/vauth/vauth.c",
        "lib/vauth/cleartext.c",
        "lib/vauth/cram.c",
        "lib/vauth/digest.c",
        "lib/vauth/digest_sspi.c",
        "lib/vauth/krb5_gssapi.c",
        "lib/vauth/krb5_sspi.c",
        "lib/vauth/ntlm.c",
        "lib/vauth/ntlm_sspi.c",
        "lib/vauth/oauth2.c",
        "lib/vauth/spnego_gssapi.c",
        "lib/vauth/spnego_sspi.c",
        "lib/vtls/openssl.c",
        "lib/vtls/gtls.c",
        "lib/vtls/vtls.c",
        "lib/vtls/nss.c",
        "lib/vtls/polarssl.c",
        "lib/vtls/polarssl_threadlock.c",
        "lib/vtls/axtls.c",
        "lib/vtls/cyassl.c",
        "lib/vtls/schannel.c",
        "lib/vtls/darwinssl.c",
        "lib/vtls/gskit.c",
        "lib/vtls/mbedtls.c",
    ],
    shared: {
        shared_libs: [
            "libcrypto",
            "libssl",
        ],
    },
    static: {
        static_libs: [
            "libcrypto",
            "libssl",
            "libz",
        ],
    },
    target: {
        host: {
            cflags: ["-D_GNU_SOURCE=1"],
            shared: {
                shared_libs: [
                    "libz-host",
                ],
            },
        },
        linux: {
            host_ldlibs: ["-lrt"],
        },
        android: {
            shared: {
                shared_libs: [
                    "libz",
                ],
            },
        },
    },
    unique_host_soname: true,
}

cc_binary {
    name: "curl",
    defaults: ["curl_common_defaults"],
    srcs: [
        "src/slist_wc.c",
        "src/tool_binmode.c",
        "src/tool_bname.c",
        "src/tool_cb_dbg.c",
        "src/tool_cb_hdr.c",
        "src/tool_cb_prg.c",
        "src/tool_cb_rea.c",
        "src/tool_cb_see.c",
        "src/tool_cb_wrt.c",
        "src/tool_cfgable.c",
        "src/tool_convert.c",
        "src/tool_dirhie.c",
        "src/tool_doswin.c",
        "src/tool_easysrc.c",
        "src/tool_formparse.c",
        "src/tool_getparam.c",
        "src/tool_getpass.c",
        "src/tool_help.c",
        "src/tool_helpers.c",
        "src/tool_homedir.c",
        "src/tool_hugehelp.c",
        "src/tool_libinfo.c",
        "src/tool_main.c",
        "src/tool_metalink.c",
        "src/tool_mfiles.c",
        "src/tool_msgs.c",
        "src/tool_operate.c",
        "src/tool_operhlp.c",
        "src/tool_panykey.c",
        "src/tool_paramhlp.c",
        "src/tool_parsecfg.c",
        "src/tool_strdup.c",
        "src/tool_setopt.c",
        "src/tool_sleep.c",
        "src/tool_urlglob.c",
        "src/tool_util.c",
        "src/tool_vms.c",
        "src/tool_writeenv.c",
        "src/tool_writeout.c",
        "src/tool_xattr.c",
    ],
    shared_libs: [
        "libcrypto",
        "libssl",
        "libz",
    ],
    static_libs: ["libcurl"],
}