aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2017-03-05CMake: Add DarwinSSL supportMichael Maltese
Assisted-by: Simon Warta <simon@kullo.net> Ref: https://github.com/curl/curl/pull/1228
2017-03-05CMake: Reorganize SSL support, separate WinSSL and SSPIMichael Maltese
This is closer to how configure.ac does it Ref: https://github.com/curl/curl/pull/1228
2017-02-25cmake: Replace invalid UTF-8 byte sequenceSimon Warta
- Change the encoding of the regex temp placeholder token to UTF-8. Prior to this change the file contained special chars in a different encoding than ASCII or UTF-8 making text editors and Python complain when reading the file. Closes https://github.com/curl/curl/pull/1271 Closes https://github.com/curl/curl/pull/1275
2017-02-01cmake: Support curl --xattr when built with cmakeSean Burford
- Test for and set HAVE_FSETXATTR when support for extended file attributes is present. Closes https://github.com/curl/curl/pull/1176
2017-01-09cmake: Fix passing _WINSOCKAPI_ macro to compilerJiri Malak
Define _WINSOCKAPI_ blank rather than to 1 in order to match the value used by Microsoft's winsock header files. Closes https://github.com/curl/curl/pull/1195
2016-12-27cmake: use crypt32.lib when building with OpenSSL on windowsKyselgov E.N
Reviewed-by: Peter Wu Closes #1149 Fixes #1147
2016-11-06cmake: disable poll for macOSPeter Wu
Mirrors the autotools behavior introduced with curl-7_50_3-83-ga34c7ce. Fixes #1089
2016-10-31idn: switch to libidn2 use and IDNA2008 supportDaniel Stenberg
CVE-2016-8625 Bug: https://curl.haxx.se/docs/adv_20161102K.html Reported-by: Christian Heimes
2016-10-18s/cURL/curlDaniel Stenberg
The tool was never called cURL, only the project. But even so, we have more and more over time switched to just use lower case.
2016-10-10cmake: add nghttp2 supportRemo E
Closes #922
2016-09-19openssl: don’t call CRYTPO_cleanup_all_ex_dataDaniel Stenberg
The OpenSSL function CRYTPO_cleanup_all_ex_data() cannot be called multiple times without crashing - and other libs might call it! We basically cannot call it without risking a crash. The function is a no-op since OpenSSL 1.1.0. Not calling this function only risks a small memory leak with OpenSSL < 1.1.0. Bug: https://curl.haxx.se/mail/lib-2016-09/0045.html Reported-by: Todd Short
2016-09-11cmake: fix curl-config --static-libsPeter Wu
The `curl-config --static-libs` command should not output paths like -l/usr/lib/libssl.so, instead print the absolute path without `-l`. This also removes the confusing message "Static linking is broken" which was printed because curl-config --static-libs was disfunctional even though the static libcurl.a library works properly. Fixes https://github.com/curl/curl/issues/841
2016-09-10CMake: Try to (un-)hide private library symbolsJakub Zakrzewski
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
2016-08-08cmake: Enable win32 threaded resolver by defaultJay Satiro
- Turn on USE_THREADS_WIN32 in Windows if ares isn't on This change is similar to what we already do in the autotools build.
2016-08-08cmake: Enable win32 large file support by defaultJay Satiro
All compilers used by cmake in Windows should support large files. - Add test SIZEOF_OFF_T - Remove outdated test SIZEOF_CURL_OFF_T - Turn on USE_WIN32_LARGE_FILES in Windows - Check for 'Largefile' during the features output
2016-07-28cmake: Fix for schannel supportYonggang Luo
The check_library_exists_concat do not check crypt32 library properly. So include it directly. Bug: https://github.com/curl/curl/pull/917 Reported-by: Yonggang Luo Bug: https://github.com/curl/curl/issues/935 Reported-by: Alain Danteny
2016-06-21cmake: now using BUILD_TESTING=ON/OFFSergei Nikulov
CMake build now using BUILD_TESTING=ON/OFF (default is OFF) to build tests and enabling CTest integration. Options BUILD_CURL_TESTS and BUILD_DASHBOARD_REPORTS was removed. Closes #882 Reviewed-by: Brad King
2016-06-15cmake: Fix build with winldapSergei Nikulov
Bug: https://github.com/curl/curl/pull/874 Reported-by: Sergei Nikulov
2016-06-01schannel: add CURLOPT_CERTINFO supportAndrew Kurushin
Closes #822
2016-02-03URLs: change all http:// URLs to https://Daniel Stenberg
2016-01-28cmake: fixed when OpenSSL enabled on Windows and schannel detectedSergei Nikulov
Closes #617
2015-10-19cmake: Fix for add_subdirectory(curl) use-caseJavier G. Sogo
- Use CURL_BINARY_DIR instead of CMAKE_BINARY_DIR. When including CURL using add_subdirectory the variables CMAKE_BINARY_DIR and CURL_BINARY_DIR hold different paths. Closes https://github.com/bagder/curl/pull/488 Closes https://github.com/bagder/curl/pull/498
2015-09-23CMake: Ensure discovered include dirs are consideredJakub Zakrzewski
...during header checks. Otherwise some following header tests (incorrectly) fail. Closes #436
2015-09-08cmake: IPv6 : disable Unix header check on Windows platformSergei Nikulov
Closes #409
2015-08-25cmake: added Windows SSL supportSergei Nikulov
Closes #399
2015-08-10CMake: s/HAVE_GSS_API/HAVE_GSSAPI/ to match header defineJakub Zakrzewski
Otherwise the build only pretended to use GSS-API Closes #370
2015-03-05openssl: remove all uses of USE_SSLEAYDaniel Stenberg
SSLeay was the name of the library that was subsequently turned into OpenSSL many moons ago (1999). curl does not work with the old SSLeay library since years. This is now reflected by only using USE_OPENSSL in code that depends on OpenSSL.
2015-03-05cmake: handle build definitions CURLDEBUG/DEBUGBUILDSergei Nikulov
Acked-by: Brad King
2015-02-19CMake: fix winsock2 detection on windowsSergei Nikulov
Set CMAKE_REQUIRED_DEFINITIONS to include definitions needed to get the winsock2 API from windows.h. Simplify the order of checks to avoid extra conditions. Use check_include_file instead of check_include_file_concat to look for OpenSSL headers. They do not need to participate in a sequence of dependent system headers. Also they may cause winsock.h to be included before ws2tcpip.h, causing the latter to not be detected in the sequence. Reviewed-by: Brad King <brad.king@kitware.com>
2015-01-18ldap: Renamed the CURL_LDAP_WIN definition to USE_WIN32_LDAPSteve Holme
For consistency with other USE_WIN32_ defines as well as the USE_OPENLDAP define.
2014-12-26code/docs: Use Unix rather than UNIX to avoid use of the trademarkSteve Holme
Use Unix when generically writing about Unix based systems as UNIX is the trademark and should only be used in a particular product's name.
2014-12-04libcurl: add UNIX domain sockets supportPeter Wu
The ability to do HTTP requests over a UNIX domain socket has been requested before, in Apr 2008 [0][1] and Sep 2010 [2]. While a discussion happened, no patch seems to get through. I decided to give it a go since I need to test a nginx HTTP server which listens on a UNIX domain socket. One patch [3] seems to make it possible to use the CURLOPT_OPENSOCKETFUNCTION function to gain a UNIX domain socket. Another person wrote a Go program which can do HTTP over a UNIX socket for Docker[4] which uses a special URL scheme (though the name contains cURL, it has no relation to the cURL library). This patch considers support for UNIX domain sockets at the same level as HTTP proxies / IPv6, it acts as an intermediate socket provider and not as a separate protocol. Since this feature affects network operations, a new feature flag was added ("unix-sockets") with a corresponding CURL_VERSION_UNIX_SOCKETS macro. A new CURLOPT_UNIX_SOCKET_PATH option is added and documented. This option enables UNIX domain sockets support for all requests on the handle (replacing IP sockets and skipping proxies). A new configure option (--enable-unix-sockets) and CMake option (ENABLE_UNIX_SOCKETS) can disable this optional feature. Note that I deliberately did not mark this feature as advanced, this is a feature/component that should easily be available. [0]: http://curl.haxx.se/mail/lib-2008-04/0279.html [1]: http://daniel.haxx.se/blog/2008/04/14/http-over-unix-domain-sockets/ [2]: http://sourceforge.net/p/curl/feature-requests/53/ [3]: http://curl.haxx.se/mail/lib-2008-04/0361.html [4]: https://github.com/Soulou/curl-unix-socket Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-11-19cmake: add Kerberos to the supported featuresPeter Wu
Updated following commit eda919f and a4b7f71. Acked-by: Brad King <brad.king@kitware.com> Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-11-19cmake: fix NTLM detection when CURL_DISABLE_HTTP definedPeter Wu
Updated following changes in commit f0d860d. Acked-by: Brad King <brad.king@kitware.com> Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-11-10cmake: add ENABLE_THREADED_RESOLVER, rename ARESPeter Wu
Fix detection of the AsynchDNS feature which not just depends on pthreads support, but also on whether USE_POSIX_THREADS is set or not. Caught by test 1014. This patch adds a new ENABLE_THREADED_RESOLVER option (corresponding to --enable-threaded-resolver of autotools) which also needs a check for HAVE_PTHREAD_H. For symmetry with autotools, CURL_USE_ARES is renamed to ENABLE_ARES (--enable-ares). Checks that test for the availability actually use USE_ARES instead as that is the result of whether a-res is available or not (in practice this does not matter as CARES is marked as required package, but nevertheless it is better to write the intent). Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-11-10cmake: fix HAVE_GETHOSTNAME definitionPeter Wu
Otherwise Curl_gethostname always fails. Windows has gethostname since Vista according to http://msdn.microsoft.com/en-us/library/ms738527%28VS.85%29.aspx, but accordings to byte_bucket's VC 2005 documentation, it is available even in Windows 95. (possibly after installing a Platform SDK, the Windows Server 2003 SP1 Platform SDK should be sufficient). Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-11-04cmake: fix ZLIB_INCLUDE_DIRS useK. R. Walker
CMake 2.8's FindZLIB.cmake documents ZLIB_INCLUDE_DIRS, see http://www.cmake.org/cmake/help/v2.8.0/cmake.html#module:FindZLIB Bug: https://github.com/bagder/curl/pull/123
2014-11-03cmake: drop _BSD_SOURCE macro usagePeter Wu
autotools does not use features.h nor _BSD_SOURCE. As this macro triggers warnings since glibc 2.20, remove it. It should not have functional differences. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-10-20cmake: generate pkg-config and curl-configPeter Wu
Initial work to generate a pkg-config and curl-config script. Static linking (`curl-config --static-libs` and `pkg-config --shared --libs libcurl`) is broken and therefore disabled. CONFIGURE_OPTIONS does not make sense for CMake, use an empty string for now. At least `curl-config --features` and `curl-config --protocols` work which is needed by runtests.pl. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-10-20cmake: use LIBCURL_VERSION from curlver.hPeter Wu
This matches the behavior from autotools. The auxiliary major, minor and patch components are not needed anymore and therefore removed. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-10-20cmake: add SUPPORT_FEATURES and SUPPORT_PROTOCOLSPeter Wu
For compatibility with autoconf, it will be used later for curl-config and pkg-config. Not all features and or protocols can be enabled as these are missing additional checks (see new TODOs). SUPPORT_PROTOCOLS is partially scripted (grep for SUPPORT_PROTOCOLS=) and manually verified/modified. SUPPORT_FEATURES is manually added. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-10-13cmake: enable IPv6 by default if availablePeter Wu
ENABLE_IPV6 depends on HAVE_GETADDRINFO or you will get a Curl_getaddrinfo_ex error. Enable IPv6 by default, disabling it if struct sockaddr_in6 is not found in netinet/in.h. Note that HAVE_GETADDRINFO_THREADSAFE is still not set as it needs more platform checks even though POSIX requires a thread-safe getaddrinfo. Verified on Arch Linux x86_64 with glibc 2.20-2 and Linux 3.16-rc7. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-10-12cmake: build tool_hugehelp (ENABLE_MANUAL)Peter Wu
Rather than always outputting an empty manual page for the '-M' option, generate a full manual page as done by autotools. For simplicity in CMake, always generate the gzipped page as it will not be used anyway when zlib is not available. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-10-09Cmake: Build with GSSAPI (MIT or Heimdal)Jakub Zakrzewski
It tries hard to recognise SDK's on different platforms. On windows MIT Kerberos installs SDK with other things and puts path into registry. Heimdal have separate zip archive. On linux pkg-config is tried, then krb5-config script and finally old-style libs and headers detection. Command line args: * CMAKE_USE_GSSAPI - enables GSSAPI detection * GSS_ROOT_DIR - if set, should point to the root of GSSAPI installation (the one with include and lib directories)
2014-10-09Cmake: Got rid of setup_curl_dependenciesJakub Zakrzewski
There is no need for such function. Include_directories propagate by themselves and having a function with one simple link statement makes little sense.
2014-10-09Cmake: Fix library list provided to cURL tests.Jakub Zakrzewski
The list must be set after those nice CMake tests as we mess with CMAKE_REQUIRED_LIBRARIES there.
2014-10-09Cmake: Check for OpenSSL before OpenLDAP.Jakub Zakrzewski
OpenLDAP might have been build with OpenSSL. Checking for OpenLDAP first may result in undefined symbols. Of course, the found OpenSSL libraries must also be linked whenever OpenLDAP is.
2014-08-25Cmake: Possibility to use OpenLDAP, OpenSSL, LibSSH2 on windowsJakub Zakrzewski
At this point I can build libcurl on windows. It provides at least the same list of protocols as for linux build and works with our software.
2014-08-25Cmake: Removed useless comments from CMakeLists.txtJakub Zakrzewski
They look like some relics after changes.
2014-08-25Cmake: Append OpenSSL include directory to search pathJakub Zakrzewski
At this point I can build libcurl with OpenSSL, OpenLDAP and LibSSH2. Supported protocols are at least: HTTP, HTTPS, FTP, SFTP, TFTP, LDAP, LDAPS, POP3, SMTP (those are the ones we have regression tests for in our product's testsuite)