summaryrefslogtreecommitdiff
path: root/CMake
Commit message (Collapse)AuthorAgeFilesLines
* CMake: add HTTP/3 support (ngtcp2+nghttp3, quiche)Peter Wu2020-05-103-0/+257
| | | | | | | | | | | | | | | | | | | | | | Add three new CMake Find modules (using the curl license, but I grant others the right to apply the CMake BSD license instead). This CMake config is simpler than the autotools one because it assumes ngtcp2 and nghttp3 to be used together. Another difference is that this CMake config checks whether QUIC is actually supported by the TLS library (patched OpenSSL or boringssl) since this can be a common configuration mistake that could result in build errors later. Unlike autotools, CMake does not warn you that the features are experimental. The user is supposed to already know that and read the documentation. It requires a very special build environment anyway. Tested with ngtcp2+OpenSSL+nghttp3 and quiche+boringssl, both built from current git master. Use `LD_DEBUG=files src/curl |& grep need` to figure out which features (libldap-2.4, libssh2) to disable due to conflicts with boringssl. Closes #5359
* cmake: Avoid MSVC C4273 warnings in send/recv checksBrad King2020-04-141-0/+6
| | | | | | | | | | | | | | | We use `check_c_source_compiles` to check possible send/recv signatures by reproducing the forward declarations from system headers. On Windows the `winsock2.h` header adds dll linkage settings to its forward declaration. If ours does not match the compiler warns: warning C4273: 'recv': inconsistent dll linkage Add `WINSOCK_API_LINKAGE` to our test signatures when it is defined so that our linkage is consistent with that from `winsock2.h`. Fixes #4764 Closes #5232
* copyright: fix out-of-date copyright ranges and missing headersDaniel Stenberg2020-03-2417-0/+357
| | | | | | | | | Reported by the new script 'scripts/copyright.pl'. The script has a regex whitelist for the files that don't need copyright headers. Removed three (mostly usesless) README files from docs/ Closes #5141
* cmake: add support for building with wolfSSLbagder/cmake-wolfsslDaniel Stenberg2020-03-161-0/+13
| | | | | | | | | My working build cmdline: $ cmake -DCMAKE_PREFIX_PATH=$HOME/build-wolfssl -DCMAKE_USE_WOLFSSL=ON . Assisted-by: Brad King Closes #5095
* CMake: clean up and improve build proceduresRolf Eike Beer2020-02-297-58/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - remove check for unsupported old CMake versions - do not link to c-ares library twice - modernize custom Find modules - FindLibSSH2: - pass version to FPHSA to show it in the output - use LIBSSH2_VERSION define to extract the version number in one shot. This variable exists in the header for 10 years. - remove unneeded code - FindNGHTTP2.cmake: - drop needless FPHSA argument - mark found variables as advanced - FindNSS.cmake: - show version number - FindCARES.cmake: - drop default paths - use FPHSA instead of checking things by hand - remove needless explict variable dereference - simplify count_true() - allow all policies up to version 3.16 to be set to NEW - do not rerun check for -Wstrict-aliasing=3 every time In contrast to every other compiler flag this has a = in it, which CMake can't have in a variable name. - only read the interesting strings from curlver.h Reviewed-by: Peter Wu Closes https://github.com/curl/curl/pull/4975
* cmake: Improve libssh2 check on Windowsnicoguillier2020-01-111-1/+1
| | | | | | | | | | | | | - Add "libssh2" name to FindLibSSH2 library search. On Windows systems, libSSH2 CMake installation may name the library "LibSSH2". Prior to this change cmake only checked for name "ssh2". On Linux that works fine because it will prepend the "lib", but it doesn't do that on Windows. Closes https://github.com/curl/curl/pull/4804
* CMake: add support for building with the NSS vtls backendPeter Wu2019-12-041-0/+15
| | | | | | | | Options are cross-checked with configure.ac and acinclude.m4. Tested on Arch Linux, untested on other platforms like Windows or macOS. Closes #4663 Reviewed-by: Kamil Dudka
* TLS: add BearSSL vtls implementationMichael Forney2019-11-261-0/+9
| | | | Closes #4597
* copyrights: update all copyright notices to 2019 on files changed this yearVilhelm Prytz2019-11-021-1/+1
| | | | Closes #4547
* build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO definesPaul B. Omta2019-10-051-1/+0
| | | | Closes https://github.com/curl/curl/pull/4460
* CMake: remove needless newlines at end of gss variablesRolf Eike Beer2019-08-311-0/+4
|
* CMake: fix typos and spellingDaniel Gustafsson2019-07-092-3/+3
|
* CMake: Convert errant elseif() to else()Kyle Edwards2019-07-091-1/+1
| | | | | | | | | | | CMake interprets an elseif() with no arguments as elseif(FALSE), resulting in the elseif() block not being executed. That is not what was intended here. Change the empty elseif() to an else() as it was intended. Closes #4101 Reported-by: Artalus <artalus-mail@yandex.ru> Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
* build: fix Codacy warningsMarcel Raad2019-06-051-0/+2
| | | | | | Reduce variable scopes and remove redundant variable stores. Closes https://github.com/curl/curl/pull/3975
* cmake: restore C89 compatibility of CurlTests.cMarcel Raad2019-05-121-2/+2
| | | | | | | | | I broke it in d1b5cf830bfe169745721b21245d2217d2c2453e and 97de97daefc2ed084c91eff34af2426f2e55e134. Reported-by: Viktor Szakats Ref: https://github.com/curl/curl/commit/97de97daefc2ed084c91eff34af2426f2e55e134#commitcomment-33499044 Closes https://github.com/curl/curl/pull/3868
* CMake: suppress unused variable warningsMarcel Raad2019-05-111-0/+2
| | | | I missed these in commit d1b5cf830bfe169745721b21245d2217d2c2453e.
* build: fix Codacy/CppCheck warningsMarcel Raad2019-04-111-0/+4
| | | | | | | | | | - remove unused variables - declare conditionally used variables conditionally - suppress unused variable warnings in the CMake tests - remove dead variable stores - consistently use WIN32 macro to detect Windows Closes https://github.com/curl/curl/pull/3739
* cmake: avoid linking executable for some tests with cmake 3.6+Jakub Zakrzewski2019-04-101-35/+40
| | | | | | | | | | | | With CMAKE_TRY_COMPILE_TARGET_TYPE set to STATIC_LIBRARY, the try_compile() (which is used by check_c_source_compiles()) will build static library instead of executable. This avoids linking additional libraries in and thus speeds up those checks a little. This commit also avoids #3743 (GSSAPI build errors) on itself with cmake 3.6 or above. That issue was fixed separately for all versions. Ref: #3744
* cmake: updated check for HAVE_POLL_FINE to match autotoolsSergei Nikulov2019-01-161-7/+35
|
* cmake: added checks for HAVE_VARIADIC_MACROS_C99 and HAVE_VARIADIC_MACROS_GCCSergei Nikulov2019-01-111-2/+44
|
* CMake: fix MIT/Heimdal Kerberos detectionKonstantin Kushnir2018-11-291-2/+2
| | | | | | | | - fix syntax error in FindGSS.cmake - correct krb5 include directory. FindGSS exports "GSS_INCLUDE_DIR" variable. Closes https://github.com/curl/curl/pull/3316
* cmake: uniform ZLIB to use USE_ variable and clean curl-config.cmake.inTuomo Rinne2018-10-291-9/+6
| | | | Closes #3123
* cmake: add find_dependency call for ZLIB to CMake config fileTuomo Rinne2018-10-291-2/+8
|
* cmake: test and set missed defines during configurationdmitrykos2018-10-051-0/+16
| | | | | | Added configuration checks for HAVE_BUILTIN_AVAILABLE and HAVE_CLOCK_GETTIME_MONOTONIC. Closes #3097
* CMake: Improve config installationRuslan Baratov2018-10-011-58/+3
| | | | | | | | | | | | | | | | | | | | | | Use 'GNUInstallDirs' standard module to set destinations of installed files. Use uppercase "CURL" names instead of lowercase "curl" to match standard 'FindCURL.cmake' CMake module: * https://cmake.org/cmake/help/latest/module/FindCURL.html Meaning: * Install 'CURLConfig.cmake' instead of 'curl-config.cmake' * User should call 'find_package(CURL)' instead of 'find_package(curl)' Use 'configure_package_config_file' function to generate 'CURLConfig.cmake' file. This will make 'curl-config.cmake.in' template file smaller and handle components better. E.g. current configuration report no error if user specified unknown components (note: new configuration expects no components, report error if user will try to specify any). Closes https://github.com/curl/curl/pull/2849
* whitespace fixesViktor Szakats2018-09-231-1/+0
| | | | | | | | | | | - replace tabs with spaces where possible - remove line ending spaces - remove double/triple newlines at EOF - fix a non-UTF-8 character - cleanup a few indentations/line continuations in manual examples Closes https://github.com/curl/curl/pull/3037
* cmake: don't require OpenSSL if USE_OPENSSL=OFFslodki2018-09-181-2/+2
| | | | | | | | | User must have OpenSSL installed even if not used by libcurl at all since 7.61.1 release. Broken at 7867aaa9a01decf93711428462335be8cef70212 Reviewed-by: Sergei Nikulov Closes #3001
* cmake: link curl to the OpenSSL targets instead of lib absolute pathsJohn Butterfield2018-08-081-0/+5
| | | | | | Reviewed-by: Jakub Zakrzewski Reviewed-by: Sergei Nikulov Closes #2753
* CMake: Update scripts to use consistent styleRuslan Baratov2018-07-178-369/+329
| | | | | Closes #2727 Reviewed-by: Sergei Nikulov
* CMake: remove redundant and old end-of-block syntaxRuslan Baratov2018-07-093-49/+47
| | | | | Reviewed-by: Jakub Zakrzewski Closes #2715
* CMake: Remove unused 'output_var' from 'collect_true'Ruslan Baratov2018-07-061-6/+5
| | | | | Variable 'output_var' is not used and can be removed. Function 'collect_true' renamed to 'count_true'.
* CMake: Remove unused functionsRuslan Baratov2018-07-061-30/+0
| | | | Closes #2711
* cmake: fixed comments in compile checks codeSergei Nikulov2018-05-291-3/+3
|
* Fix the test for fsetxattr and strerror_r tests in CMake to work without ↵maxed2018-05-281-15/+15
| | | | compiling
* cmake: add support for brotliDon2018-03-191-0/+20
| | | | | | | | Currently CMake cannot detect Brotli support. This adds detection of the libraries and associated header files. It also adds this to the generated config. Closes #2392
* spelling fixesViktor Szakats2018-02-231-1/+1
| | | | | | | | Detected using the `codespell` tool. Also contains one URL protocol upgrade. Closes https://github.com/curl/curl/pull/2334
* cmake: Export libcurl and curl targets to use by other cmake projectsJakub Zakrzewski2017-10-281-0/+59
| | | | | | | | | The config files define curl and libcurl targets as imported targets CURL::curl and CURL::libcurl. For backward compatibility with CMake- provided find-module the CURL_INCLUDE_DIRS and CURL_LIBRARIES are also set. Closes #1879
* cmake: disable tests and man generation if perl/nroff not foundSergei Nikulov2017-10-021-0/+29
| | | | | | | | | | | | Fixes https://github.com/curl/curl/issues/1500 Reported-by: Jay Satiro Fixes https://github.com/curl/curl/pull/1662 Assisted-by: Tom Seddon Assisted-by: dpull@users.noreply.github.com Assisted-by: elelel@users.noreply.github.com Closes https://github.com/curl/curl/pull/1924
* cmake: move cmake_uninstall.cmake to CMake/Daniel Stenberg2017-08-101-0/+26
| | | | Closes #1756
* cmake: fix send/recv argument scanner for windowsDaniel Stenberg2017-07-051-6/+6
| | | | | | ... by simply trying the Windows argument types first. Fixes #1640
* spelling fixesklemens2017-03-261-1/+1
| | | | Closes #1356
* CMake: Set at most one SSL libraryMichael Maltese2017-03-051-0/+13
| | | | Ref: https://github.com/curl/curl/pull/1228
* CMake: Add mbedTLS supportMichael Maltese2017-03-051-0/+13
| | | | Ref: https://github.com/curl/curl/pull/1228
* cmake: Support curl --xattr when built with cmakeSean Burford2017-02-011-0/+16
| | | | | | | - Test for and set HAVE_FSETXATTR when support for extended file attributes is present. Closes https://github.com/curl/curl/pull/1176
* cmake: disable poll for macOSPeter Wu2016-11-061-11/+14
| | | | | | Mirrors the autotools behavior introduced with curl-7_50_3-83-ga34c7ce. Fixes #1089
* cmake: add nghttp2 supportRemo E2016-10-101-0/+18
| | | | Closes #922
* CMake: Try to (un-)hide private library symbolsJakub Zakrzewski2016-09-101-0/+61
| | | | | | | | | | Detect support for compiler symbol visibility flags and apply those according to CURL_HIDDEN_SYMBOLS option. It should work true to the autotools build except it tries to unhide symbols on Windows when requested and prints warning if it fails. Ref: https://github.com/curl/curl/issues/981#issuecomment-242665951 Reported-by: Daniel Stenberg
* URLs: change all http:// URLs to https://Daniel Stenberg2016-02-031-1/+1
|
* CMake: Put "winsock2.h" before "windows.h" during configure checksJakub Zakrzewski2015-09-231-1/+1
| | | | | "windows.h" includes "winsock.h" what causes many redefinition errors if "winsock2.h" is included afterwards and can cause build to fail.
* cmake: Fix CurlTests check for gethostbyname_r with 5 argumentsBrad King2015-08-141-1/+1
| | | | | | Fix the check code to pass 5 arguments instead of 6. This typo was introduced by commit aebfd4cfbf (cmake: fix gethostby{addr,name}_r in CurlTests, 2014-10-31).