When building with the built-in Curl, CMAKE_USE_OPENSSL is only set
to ON by default if an OpenSSL installation is detected. However, this
can cause the user to mistakenly build without OpenSSL support if
OpenSSL is not installed, because CMAKE_USE_OPENSSL is set to OFF in
that case. Always set CMAKE_USE_OPENSSL to ON by default on systems
where it could be available, skipping the initial detection, resulting
in an error when we try to use OpenSSL later on. Detect this error
and advise the user to either install OpenSSL or set CMAKE_USE_OPENSSL
to OFF.
Co-Authored-by: Brad King <brad.king@kitware.com>
In commit beb991110d (Remove now-unused code once used on IRIX,
2019-01-11, v3.14.0-rc1~167^2) we removed remnants of IRIX support.
Also remove remnants of MIPSpro compiler support.
Backport upstream curl commit 2c5ec339ea (Curl_follow: accept
non-supported schemes for "fake" redirects, 2018-11-01) to get
a fix to curl issue 3210, a regression in 7.62.0.
When generating `curl_config.h`, add size information for `long long`
and `__int64` types. These are needed as candidates for defining the
`ssize_t` type because on MSVC, `long` is not the same size as `size_t`.
This problem did not affect upstream curl because it computes the
`ssize_t` type in CMake code where all sizes are available. CMake's
port computes it in preprocessor logic because universal binaries on
macOS do not know type sizes until compile time.
Fixes: #18477
The_CURL_STATICLIB option was replaced by BUILD_SHARED_LIBS.
Drop our own CURL_STATICLIB compile definition because it is now
provided by curl's usage requirements.
Curl 7.61.1 requires CMake 3.4 to build from source and also exposes
a dependency on OpenSSL imported targets. Revert that part of the
changes imported from curl upstream.
Some are user facing.
Found using
codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt`
whereby the whitelist contained:
ans
dum
helpfull
emmited
emmitted
buil
iff
isnt
nto
ot
pathes
substract
te
todays
upto
whitespaces
* upstream-curl:
curl 2017-06-14 (54b636f1)
Resolve a logical conflict in `Utilities/cmcurl/CMakeLists.txt`
by disabling CA bundle/path detection for build within CMake.
CMake already handles locating a CA bundle/path at runtime.
Restore settings to match what we had before resolving conflicts in the
latest update. Use native APIs on Windows and Apple. Pass CA
bundle/path options.
* upstream-curl:
curl 2017-04-19 (d957e218)
Resolve conflicts in `CMakeLists.txt` in favor of the upstream version.
We will re-apply our logic as needed in following commits.
Define `_WINSOCKAPI_` blank rather than to 1 in order to match the
value used by Microsoft's winsock header files.
Backported from upstream curl commit 192466e0 (cmake: Fix passing
_WINSOCKAPI_ macro to compiler, 2017-01-09).
Fixes: #16545
Starting with OS X 10.11 there is a library called libnetwork
which will be picked up during curl configuration.
This breaks backward compatibility of the resulting binaries
because libnetwork is not available on older OS X versions.
Fix the check code to pass 5 arguments instead of 6. This typo was
introduced in curl 7.39 but was not noticed because the result of
this check is used only if ENABLE_IPV6 is OFF.
Resolve conflicts by taking upstream side when possible and otherwise
integrating the changes from both sides. Be carful in CMakeLists.txt
where the OPENSSL code block that we modified previously has moved, and
preserve our previous modifications in the new location.
Our Windows API header checks are conditioned on if(NOT UNIX) but
libarchive checks HAVE_WINDOWS_H anyway so the result leaks into
the cache and influenes the curl build. Set the check results to
false explicitly for curl when not on Windows to tolerate this.
Reported-by: Vyacheslav Karpukhin <Vyacheslav.Karpukhin@jetbrains.com>
Move CMAKE_USE_OPENSSL and CURL_CA_BUNDLE up to the top of CMake so that
CMake's own sources can know their values. Add the CURL_CA_PATH option
at the top and honor it as part of the curl build.
On OS X, when CMAKE_USE_OPENSSL is OFF, use the OS implementation.
This will allow the OS-configured CA list to be trusted automatically.
This is supported on OS X 10.6 and above using AppleClang, Clang, and
GNU compilers.