Commit Graph

203 Commits

Author SHA1 Message Date
Dubach, Joev 9dbcfb8fdd MSVC: Recognize -XYZ as well as /XYZ when parsing MS tool command lines
Fixes: #23772
2022-07-27 16:51:15 -04:00
makise-homura de16db0f64 curl: make libcmcurl buildable with old LibreSSL
LibreSSL older than 2.6.0 is not supported correctly
in upstream curl, and as a consequence, in libcmcurl.
Such LibreSSL versions can be used in old distros,
like OS Elbrus 4.x and 5.x, so until this fix, CMake
wasn't buildable there either.
2022-06-28 11:12:04 -04:00
Brad King c7c3e39e4f Utilities: Activate POSIX APIs even without compiler extensions
Compile some third-party libraries with preprocessor definitions that
activate POSIX APIs even when compiler extensions are not enabled.
We already do this in libuv, inherited from the upstream buildsystem.

This extends commit f034b0f663 (CMake compilation: do not use compiler
extensions, 2020-03-14, v3.18.0-rc1~494^2).

Issue: #20454
2022-06-04 09:08:27 -04:00
Brad King 71747a28ea Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2022-05-11 (462196e6)
2022-05-16 11:43:51 -04:00
Brad King 30aba1ce8c Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2022-04-27 (1669b17d)
2022-04-28 15:21:23 -04:00
Aaron Liu 24da80b70a Utilities: Suppress warnings in third-party code with IBMClang 2022-01-27 09:38:01 -05:00
Brad King 9341e63233 curl: Set build options the way we need for CMake 2022-01-07 11:42:30 -05:00
Brad King 697e8871a1 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2022-01-05 (801bd513)
2022-01-07 11:41:57 -05:00
makise-homura e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
Divert LCC compiler as a new one, instead of treating it as GNU.

Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).

This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.

Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
2021-10-15 05:05:19 +03:00
Brad King 5b117bddd0 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2021-09-22 (c7aef0a9)
2021-09-24 10:04:49 -04:00
Brad King 412189bce7 curl: Set build options the way we need for CMake 2021-09-15 15:28:53 -04:00
Brad King 8ecd95845c Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2021-09-14 (8e82f2a0)
2021-09-15 15:28:38 -04:00
Brad King 3faa3d3a38 curl: backport upstream fix to 7.77.0 regression
Backport upstream curl commit `ee97f1769` (schannel: set ALPN length
correctly for HTTP/2, 2021-05-26) to get a fix to curl issue 7138,
a regression in 7.77.0.

Fixes: #22355
2021-06-28 12:59:23 -04:00
Brad King cd40922edb Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2021-05-26 (6b951a69)
2021-05-27 15:23:20 -04:00
Brad King 408e6d6185 Utilities: Suppress warnings in third-party code with NVHPC 2021-04-20 11:44:25 -04:00
Brad King 24f3388fa4 curl: Set build options the way we need for CMake 2021-02-03 11:58:10 -05:00
Brad King 426ef61cc8 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2021-02-03 (2f33be81)
2021-02-03 11:55:06 -05:00
Brad King 87909f0600 Utilities: Suppress warnings in third-party code when using IntelLLVM 2021-01-28 09:07:00 -05:00
Brad King d0bac89cea curl: Set build options the way we need for CMake 2020-12-11 08:39:40 -05:00
Brad King 54931fdff0 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-12-09 (e0528597)
2020-12-09 11:45:25 -05:00
Brad King 387ea71853 curl: Set build options the way we need for CMake 2020-08-19 13:07:30 -04:00
Brad King 7d0fa4a943 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-08-19 (9d954e49)
2020-08-19 12:50:05 -04:00
Brad King 6d423195d5 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-06-30 (5a1fc8d3)
2020-07-01 10:10:23 -04:00
Brad King e5ff413f41 curl: Set build options the way we need for CMake 2020-06-24 08:23:52 -04:00
Brad King 0ef8fa5000 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-06-23 (e9db32a0)
2020-06-24 08:13:02 -04:00
Brad King 1dd785b02c curl: Use KWIML to get integer type sizes 2020-06-02 07:00:35 -04:00
Brad King 0a46eb11af curl: Avoid checking 'send' and 'recv' signatures
cURL detects the `send` and `recv` signatures using a large loop
of `try_compile` checks.  The results are used for the following:

* Casting argument types in calls to `send` and `recv`, perhaps
  to avoid conversion warnings.  We compile with `-w` anyway.

* Providing debug variants for `CURLDEBUG`, which we do not use.

Replace the detection loops with hard-coded results that should work
well enough everywhere.  This significantly reduces the number of
configure-time checks for building CMake on some platforms.
2020-05-20 15:17:26 -04:00
Brad King 02dd24a928 curl: Enable HTTP/2 support by using nghttp2 2020-04-03 06:43:00 -04:00
Brad King a24dd93e93 curl: When building inside CMake, link dependencies as PRIVATE 2020-04-03 06:43:00 -04:00
Brad King 85ad7190f3 curl: Set build options the way we need for CMake 2020-03-04 14:35:09 -05:00
Brad King d61c3bd505 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-03-04 (b8d13668)
2020-03-04 14:34:39 -05:00
Johnny Jazeix 2d0100fac7 replace remove and remove_directory with rm in tests 2019-11-13 18:02:18 -05:00
Kyle Edwards dd3e476786 OpenSSL: Issue an error if OpenSSL is not found
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>
2019-07-18 11:10:36 -04:00
Artalus f4ed56ab63 Fix elseif() in place of else() 2019-07-03 11:57:53 +03:00
Brad King 90766347db curl: Update build within CMake to account for 7.65 changes 2019-05-22 14:22:22 -04:00
Brad King a39138ef9a Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2019-05-22 (885ce314)
2019-05-22 14:15:06 -04:00
Brad King 1699f5c231 Utilities: Suppress warnings in third-party code when using XLClang 2019-02-25 08:26:17 -05:00
Brad King 214fcefa52 Remove now-unused code once used for MIPSpro on IRIX
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.
2019-02-21 11:12:51 -05:00
Rechi Rechi 971d490e5b curl: do not disable IPv6 support
Allow curl's detection of IPv6 to proceed when building in CMake.
2019-01-10 13:54:25 -05:00
Brad King b83420e45d Merge topic 'update-curl'
c1ad5118de curl: backport upstream fix to 7.62.0 regression
03bf934fbe curl: Modernize tiny test code used for build inside CMake
2b3c1bb9b0 curl: Update build within CMake to account for 7.62 changes
636bcefeab Merge branch 'upstream-curl' into update-curl
9835e90750 curl 2018-10-30 (19667715)
9c6574795c curl: Update script to get curl 7.62.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2550
2018-11-05 07:43:41 -05:00
Brad King c1ad5118de curl: backport upstream fix to 7.62.0 regression
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.
2018-11-02 08:14:12 -04:00
Brad King 03bf934fbe curl: Modernize tiny test code used for build inside CMake
Drop unused code.  Report the error message on failure.
Format the source file using clang-format.
2018-11-01 08:55:50 -04:00
Brad King 2b3c1bb9b0 curl: Update build within CMake to account for 7.62 changes 2018-10-31 09:50:04 -04:00
Brad King 636bcefeab Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2018-10-30 (19667715)
2018-10-31 09:46:23 -04:00
Brad King 53e65e8e0a curl: Do not call cmake_minimum_required inside CMake itself
Re-use the requirements from the top-level.
2018-10-25 11:49:59 -04:00
Brad King a834bcaa91 Tests: Add missing BUILD_TESTING conditions
We should not call `add_test` unless `BUILD_TESTING` is enabled.

Fixes: #18500
2018-10-24 15:51:17 -04:00
Brad King ec13ba36b5 Merge branch 'update-curl' into release-3.13
Merge-request: !2509
2018-10-22 12:55:14 -04:00
Brad King 3dc484e531 curl: add missing type sizes for 'long long' and '__int64'
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
2018-10-22 12:02:38 -04:00
Brad King 0310024563 curl: Update build within CMake to account for 7.61 changes
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.
2018-10-22 08:55:40 -04:00
Brad King b9d1107790 curl: Backport to work with CMake 3.1 again
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.
2018-10-22 08:51:01 -04:00