cmake: enable `-Wall` for MSVC when `PICKY_COMPILER=ON`

Enable it for `_MSC_VER <= 1943`.

Omit it for not yet CI-tested MSVC versions, to avoid hitting unfixed
warnings emitted by future toolchain releases. It means we need
to explicitly opt-in to newer MSVC versions while fixing any new issues.

The newly enabled warnings did not reveal new issues. It hints that we
catch those with clang/gcc. Yet, these warnings may be useful for local
development done with MSVC.

Also:
- disable and document warnings that don't seem useful, unactionable,
  or unfixable.
- disable and document warnings found in Windows SDK headers.
- tidy up a few comments, also to avoid
  `-Wdocumentation-unknown-command`, part of llvm/clang `-Wall`.
  ```
  lib\dynhds.h(159,29): error : unknown command tag name [-Werror,-Wdocumentation-unknown-command]
  lib\ftp.c(337,15): error : unknown command tag name [-Werror,-Wdocumentation-unknown-command]
  ```
  (This patch did not end up enabling `-Wall` for clang-cl.)

Closes #17050
3 files changed
tree: 9287c97948f89bc0e3f068f5d02766cb96e93824
  1. .circleci/
  2. .github/
  3. CMake/
  4. docs/
  5. include/
  6. lib/
  7. LICENSES/
  8. m4/
  9. packages/
  10. plan9/
  11. projects/
  12. scripts/
  13. src/
  14. tests/
  15. winbuild/
  16. .dir-locals.el
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .mailmap
  21. acinclude.m4
  22. appveyor.sh
  23. appveyor.yml
  24. buildconf
  25. CHANGES.md
  26. CMakeLists.txt
  27. configure.ac
  28. COPYING
  29. curl-config.in
  30. Dockerfile
  31. GIT-INFO.md
  32. libcurl.pc.in
  33. Makefile.am
  34. README
  35. README.md
  36. RELEASE-NOTES
  37. renovate.json
  38. REUSE.toml
  39. SECURITY.md
README.md

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.