aboutsummaryrefslogtreecommitdiff
path: root/CMake
AgeCommit message (Collapse)Author
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-02-03URLs: change all http:// URLs to https://Daniel Stenberg
2015-09-23CMake: Put "winsock2.h" before "windows.h" during configure checksJakub Zakrzewski
"windows.h" includes "winsock.h" what causes many redefinition errors if "winsock2.h" is included afterwards and can cause build to fail.
2015-08-14cmake: Fix CurlTests check for gethostbyname_r with 5 argumentsBrad King
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).
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>
2014-11-19CMake: Simplify if() conditions on check result variablesBrad King
Remove use of an old hack that takes advantage of the auto-dereference behavior of the if() command to detect if a variable is defined. The hack has the form: if("${VAR} MATCHES "^${VAR}$") where "${VAR}" is a macro argument reference. Use if(DEFINED) instead. This also avoids warnings for CMake Policy CMP0054 in CMake 3.1.
2014-11-13CMake: Restore order-dependent library checksBrad King
Revert commit 2257deb502 (Cmake: Avoid cycle directory dependencies, 2014-08-22) and add a comment explaining the purpose of the original code. The check_library_exists_concat macro is intended to be called multiple times on a sequence of possibly dependent libraries. Later libraries may depend on earlier libraries when they are static. They cannot be safely linked in reverse order on some platforms. Signed-off-by: Brad King <brad.king@kitware.com>
2014-11-13CMake: Restore order-dependent header checksBrad King
Revert commit 1269df2e3b (Cmake: Don't check for all headers each time, 2014-08-15) and add a comment explaining the purpose of the original code. The check_include_file_concat macro is intended to be called multiple times on a sequence of possibly dependent headers. Later headers may depend on earlier headers to provide declarations. They cannot be safely included independently on some platforms. For example, many POSIX APIs document including sys/types.h before some other headers. Also on some OS X versions sys/socket.h must be included before net/if.h or the check for the latter will fail. Signed-off-by: Brad King <brad.king@kitware.com>
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-03cmake: fix struct sockaddr_storage checkPeter Wu
CHECK_TYPE_SIZE_PREINCLUDE is an internal, undocumented variable which was removed in cmake 2.8.1. According to the MSDN docs[1], inclusion of winsock2.h is sufficient. WIN32_LEAN_AND_MEAN does not really seem to affect the tests, so remove it too[2]. For the non-windows case, remove inet headers as POSIX only requires sys/socket.h. [1]: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740504%28v=vs.85%29.aspx [2]: http://stackoverflow.com/questions/11040133/what-does-defining-win32-lean-and-mean-exclude-exactly Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-11-03cmake: clean OtherTests, fixing -WerrorPeter Wu
There were several -Wunused warnings and one duplicate macro definition. The EXTRA_DEFINES variable of the CurlCheckCSources macro was being abused ("__unused1\n#undef inline\n#define __unused2", seriously?) to insert extra C code. Avoid this broken abstraction and use cmake's check_c_source_compiles directly (works fine with CMake 2.8, maybe even cmake 2.6). After cleaning up all related variables (EXTRA_DEFINES, HEADER_INCLUDES, auxiliary headers_hack), also remove a duplicate add_headers_include macro and remove duplicate header additions before the struct timeval check. Oh, and now the code is converted to use CheckCSourceRuns and CheckCSourceCompiles, the two curl-specific helpers can be removed. Unfortunately, the cmake output is now slightly more verbose. Before: Performing Test int send(int, const void *, size_t, int) (curl_cv_func_send_test) Performing Test int send(int, const void *, size_t, int) (curl_cv_func_send_test) - Failed Since check_c_source_compiles prints the varname, now you see: Performing Test curl_cv_func_send_test Performing Test curl_cv_func_send_test - Failed Tested: int send(int, const void *, size_t, int) Compared cmake output with each other using vimdiff, no functional differences were found. Tested with GCC 4.9.1 and Clang 3.5.0. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2014-11-03cmake: fix gethostby{addr,name}_r in CurlTestsPeter Wu
This patch cleans up the automatically-generated (?) code and fixes one case that will always fail due to syntax error. HAVE_GETHOSTBYADDR_R_5_REENTRANT always failed because of a trailing character ("int length;q"). Several parameter type and unused variable warnings popped up. This causes a detection failure with -Werror. Observe that the REENTRANT cases are exactly the same as their non-REENTRANT cases except for a `_REENTRANT` macro definition. Merge all these pieces and build one big main function with different cases, but reusing variables where logical. For the cases where the parameters where NULL, I looked at lib/hostip4.c to get an idea of the parameters types. void-cast variables such as 'rc' to avoid -Wuninitialized errors. Signed-off-by: Peter Wu <peter@lekensteyn.nl>
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-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: Avoid cycle directory dependencies.Jakub Zakrzewski
Because we prepended libraries to list, CMake had troubles resolving link directory order as it detected some cycles. Appending to list ensures that dependencies will preceed dependees.
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 repeated content from ending blocksJakub Zakrzewski
They are unnecesary in modern CMake and removing them improves readability.
2014-08-25Cmake: Removed some useless empty SET statements.Jakub Zakrzewski
Undefined variables resolve to empty strings and we do not ever test if the variable is defined thus those SETs are superfluous.
2014-08-25Cmake: Don't check for all headers each timeJakub Zakrzewski
One header at a time is the right way. Apart from that the output on windows goes from: ... -- Looking for include files I:/src/libssh2-1.4.3/include/libssh2.h, ws2tcpip.h -- Looking for include files I:/src/libssh2-1.4.3/include/libssh2.h, ws2tcpip.h - found -- Looking for 3 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins ock2.h -- Looking for 3 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins ock2.h - found -- Looking for 4 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., stdi o.h -- Looking for 4 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., stdi o.h - found -- Looking for 5 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wind ows.h -- Looking for 5 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wind ows.h - found -- Looking for 6 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins ock.h -- Looking for 6 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins ock.h - found -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/ filio.h -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/ filio.h - not found -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/ ioctl.h -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/ ioctl.h - not found -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/ resource.h ... To much nicer: ... -- Looking for ws2tcpip.h -- Looking for ws2tcpip.h - found -- Looking for winsock2.h -- Looking for winsock2.h - found -- Looking for stdio.h -- Looking for stdio.h - found -- Looking for windows.h -- Looking for windows.h - found -- Looking for winsock.h -- Looking for winsock.h - found -- Looking for sys/filio.h -- Looking for sys/filio.h - not found -- Looking for sys/ioctl.h -- Looking for sys/ioctl.h - not found -- Looking for sys/resource.h
2014-08-25Cmake: LibSSH2 detection and use.Jakub Zakrzewski
2014-08-25Cmake: Moved macros out of the main CMakeLists.txtJakub Zakrzewski
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.
2013-11-09cmake: fix Windows build with IPv6 supportDaniel Stenberg
Patch-by: "Z98"
2012-09-17cmake: use standard findxxx modules for cmake v2.8+Sergei Nikulov
2011-12-30removed execute file permissionYang Tse
2011-12-30removed trailing whitespaceYang Tse
2011-03-10sources: update source headersDaniel Stenberg
All C and H files now (should) feature the proper project curl source code header, which includes basic info, a copyright statement and some basic disclaimers.
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-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-02-16replaced tabs with spacesYang Tse
2010-02-14removed trailing whitespaceYang Tse
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-06-09ENH: lower case cmake functions and remove tabs and re-indent cmake codeBill Hoffman
2009-06-06ENH: add some cmake docs and fix build with socklen_tBill Hoffman
2009-04-25removed pointless fileDaniel Stenberg
2009-04-09(Minor update) Moved some utilities to a separate file.Benoit Neil
2009-04-02Added basic OpenSSL support in CMake scripts (Thanks to Bill Hoffman)Benoit Neil
2009-04-02Initial CMake scripts (libcurl only), based on the merge of tetest scripts ↵Benoit Neil
and mine. These are far to be functionnal yet. PS: Hello world :)