aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
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)
2014-08-25Cmake: Search for liblber, LDAP SSL headers, swith for using OpenLDAP code.Jakub Zakrzewski
2014-08-25Cmake: LibSSH2 detection and use.Jakub Zakrzewski
2014-08-25Cmake: Moved macros out of the main CMakeLists.txtJakub Zakrzewski
2014-08-25Cmake: Added missing protocol-disable switchesJakub Zakrzewski
They already have their defines in config.h. This makes it possible to disable the protocols from command line during configure step.
2014-08-25Cmake: Require at least CMake 2.8.Jakub Zakrzewski
CMake 2.6 is already a bit old. Many bugs have been fixed since its release. We use 2.8 in our company and we have no intention of polluting our environment with old software, so 2.6 would not be tested. This shouldn't be a problem since all one need to build CMake from source is C and C++ compiler.
2014-01-01CMakeLists.txt: add standard curl source code headerDaniel Stenberg
2014-01-01CMakeLists.txt: add warning about the cmake build's stateDaniel Stenberg
2013-10-20cmake: unbreak for non-Windows platformsDaniel Stenberg
Patch-by: Oliver Kuckertz Bug: http://curl.haxx.se/bug/view.cgi?id=1292
2013-02-04cmake: Fix mingw buildMatt Arsenault
2013-02-04cmake: updated OpenSSL buildSergei Nikulov
2013-01-06Revert changes relative to lib/*.[ch] recent renamingYang Tse
This reverts renaming and usage of lib/*.h header files done 28-12-2012, reverting 2 commits: f871de0... build: make use of 76 lib/*.h renamed files ffd8e12... build: rename 76 lib/*.h files This also reverts removal of redundant include guard (redundant thanks to changes in above commits) done 2-12-2013, reverting 1 commit: c087374... curl_setup.h: remove redundant include guard This also reverts renaming and usage of lib/*.c source files done 3-12-2013, reverting 3 commits: 13606bb... build: make use of 93 lib/*.c renamed files 5b6e792... build: rename 93 lib/*.c files 7d83dff... build: commit 13606bbfde follow-up 1 Start of related discussion thread: http://curl.haxx.se/mail/lib-2013-01/0012.html Asking for confirmation on pushing this revertion commit: http://curl.haxx.se/mail/lib-2013-01/0048.html Confirmation summary: http://curl.haxx.se/mail/lib-2013-01/0079.html NOTICE: The list of 2 files that have been modified by other intermixed commits, while renamed, and also by at least one of the 6 commits this one reverts follows below. These 2 files will exhibit a hole in history unless git's '--follow' option is used when viewing logs. lib/curl_imap.h lib/curl_smtp.h
2013-01-03build: make use of 93 lib/*.c renamed filesYang Tse
93 *.c source files renamed to use our standard naming scheme. This change affects 77 files in libcurl's source tree.
2012-04-12configure: NATIVE_WINDOWS no longer defined in config filesYang Tse
2012-03-30CMakeLists.txt: fix Windows LDAP/LDAPS option handlingtetetest tetetest
bug: http://curl.haxx.se/mail/lib-2012-03/0278.html
2012-03-29CMakeLists.txt: fix MS Visual Studio x64 unsigned long long literal suffixtetetest tetetest
bug: http://curl.haxx.se/mail/lib-2012-03/0255.html
2012-03-16cmake: list_spaces_append_once fails with spaces in filenameDaniel Stenberg
Windows standard libraries are located in C:/Program Files/Microsoft SDKs/[...]. They are already included in the default MSVC LIBPATH. Hence, find_library(WSOCK32_LIBRARY wsock32) and find_library(WS2_32_LIBRARY ws2_32) are not needed. They return the full path to the libraries including spaces. Of course, list_spaces_append_once will mangle the result and the build fails. Bug: http://curl.haxx.se/bug/view.cgi?id=3494968
2011-12-30removed trailing whitespaceYang Tse
2011-08-13cmake: find winsock when building on windowsDaniel Stenberg
When building on Windows, with CMake and mingw, curl fails to compile because the CMake build system is not properly looking for the Winsock libraries Patch by: Pau Garcia i Quiles Bug: http://curl.haxx.se/bug/view.cgi?id=3389231
2011-04-28CMake: improve library search, implement install.Zmey Petroff
Improved library search by check_function_exists_concat() macro: it does not revert the list of libraries any more. Improved OpenSSL library search: first find zlib, then search for openssl libraries that may depend on zlib. For Unix: openssl libraries can now be detected in nonstandard locations. Supply CMAKE_LIBRARY_PATH to CMake on command line. Added installation capability (very basic one yet).
2011-01-06CMake: Use upstream CheckTypeSize moduleBrad King
The CheckTypeSize module that comes with CMake 2.6.2 and above does everything we need and also supports cross-compiling. Avoid duplicating an older version of it here. This also fixes a cross-compiling error because the old line include ("${CMAKE_MODULE_PATH}/CheckTypeSize.cmake") failed because CMAKE_MODULE_PATH is a search path and not a directory. Signed-off-by: Brad King <brad.king@kitware.com>
2010-10-12CMake: Build fix.Julien Chaffraix
Do not match the trailing '\n' in the regular expression as this would make us dump a ) parenthesis on a new line. This fixes the following error: would get transformed into: ) Bug: http://curl.haxx.se/mail/lib-2010-10/0065.html Reported by: Dimitre Dimitrov
2010-06-04Enable OpenLDAP support for cygwin builds.Yang Tse
Enable OpenLDAP support for cygwin builds. This support was disabled back in 2008 due to incompatibilities between OpenSSL and OpenLDAP headers. cygwin's OpenSSL 0.9.8l and OpenLDAP 2.3.43 versions on cygwin 1.5.25 allow building an OpenLDAP enabled libcurl supporting back to Windows 95. Remove non-functional CURL_LDAP_HYBRID code and references.
2010-03-24Enable LDAP by default since it is now disabled when ldap.h is not found,Bill Hoffman
2010-03-24CMake fixes for Linux.Bill Hoffman
Make sure <sys/socket.h> is included if around when testing/using socklen_t. Also, disable LDAP if LDAP_H is not found on the system.
2010-03-24Fix curl CMake build.Bill Hoffman
This commit fixes the cmake build of curl, and cleans up the cmake code a little. It removes some commented out code and some trailing whitespace. To get curl to build the binary tree include/curl directory needed to be added to the include path. Also, SIZEOF_SHORT needed to be added. A check for the lack of defines of SIZEOF_* for warnless.c was added.
2009-07-15ENH: fix build with sslBill Hoffman
2009-07-15BUG: curl did not build with cmake with VS 2005 for two reasons, ws2tcpip.h ↵Bill Hoffman
requires winsock2.h to be included before it with that compiler, and wldap32 is not available with the default install of the compiler, so disable ldap support if that is not found
2009-07-14ENH: add optional support for c-aresBill Hoffman
2009-07-14ENH: do not report if zlib is not found as it still worksBill Hoffman
2009-06-10ENH: extract version from curlver.hBill Hoffman