Go to file
Viktor Szakats fb711b5098
build: fix clang-cl builds, add CI job
- appveyor: add build-only job for clang-cl.

- cmake: `-pedantic-errors` enables `-Werror,-Wlanguage-extension-token`
  automatically, which makes `__int64` detection fail.
  Explictly disable this compiler warning for clang-cl to make the
  feature detection work and to accept `__int64` in the source code.

- cmake: disable `-Wlanguage-extension-token` warning for clang-cl
  to fix these when encountering `__int64`:
  ```
  lib/formdata.c(797,29): error : extension used [-Werror,-Wlanguage-extension-token]
  lib/warnless.c(117,33): error : extension used [-Werror,-Wlanguage-extension-token]
  lib/warnless.c(60,28): message : expanded from macro 'CURL_MASK_SCOFFT'
  lib/warnless.c(59,38): message : expanded from macro 'CURL_MASK_UCOFFT'
  include\curl/system.h(352,40): message : expanded from macro 'CURL_TYPEOF_CURL_OFF_T'
  ```

- make `__GNUC__` warning suppressions apply to `__clang__` too.
  Necessary for clang-cl, which defines the latter, but not the former.
  (Regular clang defines both.)

- examples: fix clang-cl compiler warning in `http2-upload.c`.
  ```
  docs\examples\http2-upload.c(56,5): error : no previous prototype for function 'my_gettimeofday' [-Werror,-Wmissing-prototypes]
  docs\examples\http2-upload.c(56,1): message : declare 'static' if the function is not intended to be used outside of this translation unit
  ```

- unit2604: add missing `#pragma GCC diagnostic pop`.
  Follow-up to e53523fef0 #14859

- unit1652: limit compiler warning suppression to GCC.
  They do not affect clang builds.
  Follow-up to 71cf0d1fca #14772

Closes #15449
2024-10-30 23:15:32 +01:00
.circleci CI: bump wolfSSH and wolfSSL 2024-10-28 09:38:37 +01:00
.github tidy-up: whitespace, fix CI spacecheck for docs 2024-10-30 23:15:28 +01:00
CMake build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
docs build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
include source: avoid use of 'very' in comments 2024-10-17 13:36:33 +02:00
lib build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
LICENSES copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
m4 tidy-up: whitespace, fix CI spacecheck for docs 2024-10-30 23:15:28 +01:00
packages config: rename the OS define to CURL_OS to reduce collision risk 2024-10-30 14:59:54 +01:00
plan9 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
projects misc: general C style cleanups 2024-08-22 23:43:45 +02:00
scripts checksrc: add check for spaces around logical AND operators 2024-10-21 09:35:00 +02:00
src build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
tests build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
winbuild winbuild/README: consolidate command prompt section 2024-10-30 01:30:15 -04:00
.dir-locals.el copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.git-blame-ignore-revs copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitattributes winbuild: MS-DOS batch tidy-ups 2024-07-02 19:26:15 +02:00
.gitignore build: buildinfo.txt improvements 2024-09-19 15:56:30 +02:00
.mailmap mprintf: treat %o as unsigned, add tests for %o, %x, %X 2024-10-24 10:17:24 +02:00
acinclude.m4 cmake: use the BSD variable 2024-10-22 20:20:41 +02:00
appveyor.sh build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
appveyor.yml build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
buildconf copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
buildconf.bat buildconf.bat: remove outdated groff/nroff use 2024-03-07 22:38:16 +01:00
CHANGES.md CHANGES: rename to CHANGES.md, no longer generated 2024-08-01 13:37:12 +02:00
CMakeLists.txt config: rename the OS define to CURL_OS to reduce collision risk 2024-10-30 14:59:54 +01:00
configure.ac config: rename the OS define to CURL_OS to reduce collision risk 2024-10-30 14:59:54 +01:00
COPYING COPYING: update copyright year 2024-01-08 18:40:06 +01:00
curl-config.in GHA/configure-vs-cmake: check libcurl.pc/curl-config, fix issues 2024-09-21 12:08:35 +02:00
Dockerfile Dockerfile: update Docker digest to d830561 2024-10-18 16:39:26 +02:00
GIT-INFO.md GIT-INFO.md: remove version requirements 2024-07-08 23:06:05 +02:00
libcurl.pc.in GHA/configure-vs-cmake: check libcurl.pc/curl-config, fix issues 2024-09-21 12:08:35 +02:00
Makefile.am build: add pytest targets 2024-09-25 09:25:44 +02:00
Makefile.dist Makefile.dist: fix ca-firefox target 2024-09-06 21:46:05 +02:00
README docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
README.md GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +02:00
RELEASE-NOTES RELEASE-NOTES: synced 2024-10-30 09:47:06 +01:00
renovate.json GHA: drop "3" from openssl names and keys 2024-10-23 19:36:03 +02:00
REUSE.toml tests/server/util.c: remove use of strncpy 2024-10-10 07:47:01 +02:00
SECURITY.md docs: Clarify OpenSSF Best Practices vs Scorecard 2024-08-22 11:50:20 +02:00

curl logo

Curl is a command-line tool for transferring data specified with URL syntax. Learn how to use curl by reading the manpage or everything curl.

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. Read the libcurl manpage to learn how.

Open Source

curl is Open Source and is distributed under an MIT-like license.

Contact

Contact us on a suitable mailing list or use GitHub issues/ pull requests/ discussions.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Source code

Download the latest source from the Git server:

git clone https://github.com/curl/curl.git

Security problems

Report suspected security problems via our HackerOne page and not in public.

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers 🙏 Become a backer.

Sponsors

Support this project by becoming a sponsor.