An unofficial mirror of the curl library with support for static linking on Windows.
Curl is a command line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.
libcurl is the library curl is using to do its job. It is readily available to be used by your software.
This is repo is mostly being used by the Node.js native addon node-libcurl
This was originally a fork of the project https://github.com/peters/curl-for-windows
This repository is a collection of dependencies that curl need to build successfully.
Each submodule tries to track the latest known git release tag. When not using a git submodule
for the dependency, the direct source code was added to this repository, this is the case for
nghttp2
, openssl
, and cares
, for these, their .gyp files were retrieved from the Node.js
source code.
Both x86 and x64 builds are supported.
$ git clone https://github.com/JCMais/curl-for-windows.git
$ git submodule update --init --recursive
$ python configure.py --help
Usage: configure.py [options]
Options:
-h, --help show this help message and exit
--toolchain=TOOLCHAIN
msvs toolchain to build for. [default: auto]
--target-arch=TARGET_ARCH
CPU architecture to build for. [default: x86]
$ python configure.py
Open respective curl.sln found in out folder ;)
If you are new to curl you can checkout the example project found in curl.sln or you can view additional the examples in the official curl repository.
Add preprocessor flag
Add include directory
Add additional library search directory
Link with the following libraries
The following libraries are available here, but not being used (yet):
By now you should have sweet, statically linked, CURL! ;)
For example, if a lib/src file was removed/added on the new version, it must be removed/added on the curl.gyp file at the specific target
curl
directory and run:
$ git fetch origin
$ git checkout <curl-tag-version>
Same than libcurl
nghttp2 is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/nghttp2
At the time of writing this, the upgrade process was as easy as:
nghttp2/nghttp2.gyp
:
'msvs_settings': {
'VCCLCompilerTool': {
'CompileAs': '1'
},
},
OpenSSL is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/openssl
At the time of writing this, the upgrade process was as easy as:
<(PRODUCT_DIR_ABS)/
with <(PRODUCT_DIR)/
.c-ares is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/cares
At the time of writing this, the upgrade process was as easy as:
brotli is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/brotli
At the time of writing this, the upgrade process was as easy as:
nghttp3 is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/nghttp3
At the time of writing this, the upgrade process was as easy as:
ngtcp2 is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/ngtcp2
At the time of writing this, the upgrade process was as easy as: