Commit Graph

66 Commits

Author SHA1 Message Date
Brad King 4a2ff2b7f2 curl: Never consider using Windows APIs on Cygwin
Our Windows API header checks are conditioned on if(NOT UNIX) but
libarchive checks HAVE_WINDOWS_H anyway so the result leaks into
the cache and influenes the curl build.  Set the check results to
false explicitly for curl when not on Windows to tolerate this.

Reported-by: Vyacheslav Karpukhin <Vyacheslav.Karpukhin@jetbrains.com>
2015-03-26 14:04:39 -04:00
Brad King 6ce346c53c curl: Add CURL_CA_PATH option to CMake build process
Move CMAKE_USE_OPENSSL and CURL_CA_BUNDLE up to the top of CMake so that
CMake's own sources can know their values.  Add the CURL_CA_PATH option
at the top and honor it as part of the curl build.
2015-01-23 08:23:52 -05:00
Brad King e4563257ba curl: Use OS X SSL/TLS native implementation
On OS X, when CMAKE_USE_OPENSSL is OFF, use the OS implementation.
This will allow the OS-configured CA list to be trusted automatically.

This is supported on OS X 10.6 and above using AppleClang, Clang, and
GNU compilers.
2014-12-18 09:44:19 -05:00
Brad King ba8c663219 curl: Use Windows SSL/TLS native implementation
On Windows, when CMAKE_USE_OPENSSL is OFF, use the OS implementation.
This will allow the OS-configured CA list to be trusted automatically.
2014-12-12 13:52:46 -05:00
Brad King 46bbf94783 curl: Check for OpenSSL headers independently
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.
2014-11-17 09:52:49 -05:00
Brad King 17b24d552b curl: Disable warnings to avoid changing 3rd party code 2014-11-10 10:13:38 -05:00
Brad King 4c3bd34080 curl: Skip check for inet_pton on Windows
Re-apply part of the logic from commit v2.8.0~802 (ENH: allow for shared
build of libcurl ..., 2009-04-10) to skip inet_pton on Windows.  On
versions of Windows prior to Vista the function is not available at
runtime.
2014-11-10 10:13:38 -05:00
Brad King c50f032754 curl: Restore CURL_CA_BUNDLE option
Restore the option added by commit v2.8.8~200^2 (Add CURL_CA_BUNDLE
option for SSL support, 2012-02-09).
2014-11-10 10:13:38 -05:00
Brad King 681693c993 curl: Restore CMake-specific zlib selection code 2014-11-10 10:13:38 -05:00
Brad King 10d80b68e4 curl: Restore CMake-specific test and install code
Restore the LIBCURL test used previously within CMake.  Restore
installation of the 'COPYING' file with the CMake documentation.
2014-11-10 10:13:38 -05:00
Brad King 1959304295 curl: Configure build to work within CMake
Set curl build options as needed for CMake rather than presenting them
to the user in the cache.  Drop the CMAKE_BUILD_CURL_SHARED option for
now.

Change the curl library name to 'cmcurl'.  Disable blocks of code within
curl CMakeLists.txt files that we do not need for CMake, but leave the
code in place to make merging with curl updates easier.
2014-11-10 10:13:37 -05:00
Brad King c17e3207fb curl: Use arch-aware CHECK_TYPE_SIZE results
Re-apply the logic change made by commit v2.8.2~536 (Use arch-aware
CHECK_TYPE_SIZE result, 2009-12-17).  The size of some types must be
selected at preprocessing time when building for multiple archs on OS X.
2014-11-10 10:13:37 -05:00
Brad King 5a3b55ed7c curl: Do not use 'dl' on HP-UX
Re-apply the logic change made by commit v2.8.0~1427 (fix warning on
HPUX, 2008-11-26).
2014-11-10 10:00:45 -05:00
Brad King 4063f26b65 curl: Port to Haiku again
Re-apply change from commit v2.8.0~1683 (add initial support for HAIKU
OS, 2008-09-15) on updated upstream curl.  However, leave out the part
that was reverted by commit v3.0.0-rc1~541^2~1 (Haiku: Remove outdated
preprocessor checks, 2013-10-05).
2014-10-29 16:43:45 -04:00
Brad King 6db59302d0 curl: Remove unused SIZEOF_LONG_DOUBLE
Re-apply change from commit v2.8.2~537 (cmcurl: Remove unused
SIZEOF_LONG_DOUBLE, 2009-12-17) on updated upstream curl.
2014-10-29 16:43:27 -04:00
Brad King 80c881f793 Merge branch 'curl-upstream' into update-curl
Resolve all conflicts in favor of the upstream side.
We can re-apply specific changes later.
2014-10-29 16:43:21 -04:00
Brad King ff67d2b579 curl: Drop our CMake infrastructure to make room for the upstream
Remove our curl CMake build files since upstream now provides some.
After merging the upstream versions we may then port them to build
inside CMake and take code from our old build files as needed.
2014-10-29 16:42:10 -04:00
Brad King 661fa7c917 curl: Drop unused testing code
Remove our "Testing/" directory renames of the upstream examples.
2014-10-29 16:41:14 -04:00
Brad King 9cf069f88b curl: Move sources back into upstream layout
Update our build files as needed to compensate.
2014-10-29 16:41:10 -04:00
Stephen Kelly 2db55ffa56 Remove borland workarounds.
CMake 3.0 is the last release to require to be able to build with
Borland.
2014-10-15 23:16:44 +02:00
Brad King 425acc522f cmcurl: Use if(DEFINED) to simplify conditions
Replace old hacks of the form 'if("${VAR}" MATCHES "^${VAR}$")'
with the much simpler 'if(NOT DEFINED ${VAR})'.
2014-09-11 21:23:24 +02:00
Raphael Kubo da Costa e8c027bcc0 cmcurl: Include the local curl directories before all others.
In some cases, it was possible for the include directory of the system-wide
libcurl to be added to the include path before cmcurl's, which would result
in them being picked up and causing the build to fail if the curl versions
differ too much.

One way to trigger this is to have OpenSSL installed into a non-default
location together with libcurl (/usr/local, for example). If cmcurl is built
with CMAKE_USE_OPENSSL on, -I/usr/local/include would end up being added
before -I${PATH_TO_CMCURL}.
2014-03-10 11:40:12 -04:00
Brad King 1763c31c3b Set policy CMP0025 to NEW while building CMake itself
CMake is aware of the policy's NEW behavior and the AppleClang compiler
id.  Set the policy to NEW explicitly to avoid the warning and get the
NEW behavior.

Also teach the RunCMake test infrastructure to build tests with
-DCMAKE_POLICY_DEFAULT_CMP0025=NEW to avoid the policy warning
in test output that must match specific regular expressions.
2013-10-07 20:12:46 -04:00
Brad King df62f64db7 Clean up install rules of CMake itself (#14371)
Ensure CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR are always
relative paths in CMake code, and set defaults accordingly.  Use the
install() command instead of install_files() and install_targets().
This is more modern and also avoids stripping of the first character
from user-specified destinations.

While at it, fix the default destinations reported in the bootstrap
help.
2013-08-26 11:54:07 -04:00
Brad King e643e0259d cmcurl: Backport curl bug 1192 fix (#14250)
LLVM headers define strlcat as a macro rather than as a function.
See upstream Curl issue:

 http://curl.haxx.se/bug/view.cgi?id=1192

It was addressed by removing use of strlcat altogether.  Port the
upstream fix to CMake's curl.
2013-06-27 16:46:23 -04:00
Bill Hoffman bc0e8c28ec curl: Make OpenSSL DLLs available to CMake on Windows
Find the OpenSSL runtime DLLs and place them next to the CMake
executables in the build tree and the install tree.
2012-09-07 11:07:31 -04:00
Bill Hoffman c2f47590ef curl: Use find_package(OpenSSL)
Change the code to use the standard CMake FindOpenSSL instead of the
handcrafted attempt that was there before.
2012-09-07 11:03:19 -04:00
Brad King 2d59c9ab17 cmcurl: Do not hard-coded Windows check results for MinGW (#13001)
The WindowsCache.cmake file hard-codes results for MS and similar
Windows toolchains.  They are not valid for MinGW tools and also
interfere with cmlibarchive checks.  Allow the checks to run.
2012-03-02 10:15:06 -05:00
David Cole 8ef15df700 Merge topic 'HandleTargetsInCMakeRequiredLibraries'
35c48e1 Check*.cmake: Expand imported targets in CMAKE_REQUIRED_LIBRARIES
61cb4ea bootstrap: move while() and endwhile() into the bootstrap build
c9f2886 -don't pull in CheckTypeSize.cmake from the cmake which is being built
628f365 -remove trailing whitespace
2012-02-21 15:58:27 -05:00
Alex Neundorf c9f2886b3d -don't pull in CheckTypeSize.cmake from the cmake which is being built
We can be sure that at least cmake 2.6.3 is used when building cmcurl.
This means we always get in the first branch of the if().
I think it is not a good idea to pull a cmake module from the cmake
which is being built in, since this may use features which are not
supported in the cmake which is used to build cmake (e.g. CMAKE_CURRENT_LIST_DIR
which does not exist in cmake 2.6.3 which is the minimum for cmcurl).

A bit further below there is anyway code to handle the case that cmake is
older than 2.8.0, so it should be ok.

Alex
2012-02-21 15:33:39 -05:00
Alex Neundorf 628f365140 -remove trailing whitespace
Alex
2012-02-21 15:33:31 -05:00
Artur Kedzierski ed14435b23 Add CURL_CA_BUNDLE option for SSL support (#12946)
This adds the ability to specify the location of SSL CA bundle at
compile time.
2012-02-09 09:09:54 -05:00
Brad King c3e452e944 Require at least CMake 2.6.3 to build current CMake
Remove some cruft left for supporting builds with CMake 2.4.
2011-02-24 15:14:08 -05:00
Ben Boeckel c5cbb318c5 Ignore strerror_r since CMake isn't threaded 2010-12-16 14:58:05 -05:00
Alex Neundorf 421952c7d8 fix build on SUSE 11.2 in cmcurl due to ssize_t
Alex
2010-06-30 19:27:26 +02:00
David Cole a61c5ab6e5 Add CMAKE_TESTS_CDASH_SERVER variable and CTestSubmitLargeOutput test.
If defined and non-empty, the value of CMAKE_TESTS_CDASH_SERVER should point
to a CDash server willing to accept submissions for a project named
PublicDashboard. On machines that also run a CDash dashboard, set this
variable to "http://localhost/CDash-trunk-Testing" so that the CMake tests
that submit dashboards do not have to send those submissions over the wire.

The CTestSubmitLargeOutput test runs a dashboard that has a test that produces
very large amount of output on stdout/stderr. Since we do not even want	 to
attempt to send such large output over the wire, this test is off by default
unless the CMAKE_TESTS_CDASH_SERVER server is localhost. This test is expected
to cause a submission failure when sent to CDash. It passes if the submit
results contain error output. It fails if the submit succeeds.

CMAKE_TESTS_CDASH_SERVER: CDash server used by CMake/Tests.

If not defined or "", this variable defaults to the server at
http://www.cdash.org/CDash.

If set explicitly to "NOTFOUND", curl tests and ctest tests that use the
network are skipped.

If set to something starting with "http://localhost/", the CDash is expected
to be an instance of CDash used for CDash testing, pointing to a
cdash4simpletest database. In these cases, the CDash dashboards should be
run first.
2010-03-08 13:25:58 -05:00
Brad King ba7ccc8bf4 cmcurl: Use arch-aware CHECK_TYPE_SIZE result
Our new CHECK_TYPE_SIZE macro produces a SIZEOF_<type>_CODE value for
use in configured headers to get architecture-aware type size results.
In this commit we teach cmcurl to use the SIZEOF_<type>_CODE value to
get proper configured type sizes in OS X Universal Binaries.
2009-12-17 15:16:13 -05:00
Brad King 5d4a07462d cmcurl: Remove unused SIZEOF_LONG_DOUBLE 2009-12-17 15:15:53 -05:00
Brad King 633c296552 cmcurl: Fix test and dll output directories
The commit "Clean up CMake build tree 'bin' directory" changed the
setting of EXECUTABLE_OUTPUT_PATH that affects the cmcurl directory to
empty.  We now fix the 'curl' test to refer to the LIBCURL executable
locally.  When CMAKE_BUILD_CURL_SHARED is enabled we now put cmcurl.dll
next to the cmake executable.

These changes remove use of EXECUTABLE_OUTPUT_PATH from cmcurl.
2009-12-15 14:32:39 -05:00
Brad King 93407682fe cmcurl: Drop custom CHECK_TYPE_SIZE macro
We now require a version of CMake that provides CHECK_TYPE_SIZE, so we
do not need a custom one for curl.
2009-12-15 14:20:28 -05:00
Brad King d4e26b7e88 Remove useless include file filters
The commit "Cleanup regular expressions" removed real include filter
expressions and replaced them with lines like

  INCLUDE_REGULAR_EXPRESSION("^.*$")

that do no filtering.  We simplify the change by removing the lines
altogether.
2009-12-08 11:27:38 -05:00
Brad King 997fd839ed curl: Hard-code HAVE_W* macros on UNIX for Cygwin
The curl library code assumes that HAVE_WINDOWS_H and similar macros are
not defined on Cygwin.  Its CMake code achieved this by not even testing
for the corresponding headers on UNIX platforms.  However, libarchive
does test HAVE_WINDOWS_H and confuses our curl build.  We avoid the
conflict by hard-coding the macros to 0 for UNIX builds inside the curl
tree.
2009-12-01 12:03:32 -05:00
Brad King 9737ea074a Install third-party utility copyright notices
Some of our third-party utilities have licenses that require their
copyright and license notices to be distributed with binary forms.  This
commit adds installation rules to include these notices with installed
CMake documentation.
2009-09-28 11:36:17 -04:00
Bill Hoffman 5783d5aab1 ENH: allow for shared build of libcurl and fix build with openssl option (ssl tested on linux and windows 2009-04-10 11:59:31 -04:00
Bill Hoffman 7c39cdc80d ENH: fix warning on HPUX 2008-11-26 16:19:27 -05:00
Bill Hoffman 64fc597de2 ENH: add initial support for HAIKU OS from bug# 7425 2008-09-15 17:53:28 -04:00
Brad King 129f3bef2d COMP: Check for -Wno-long-double before using
Older GCC on the Mac warns for use of long double, so we use
-Wno-long-double.  Newer GCC on the Mac does not have this flag and
gives an error.  We now check for the flag before using it.
See bug #7357.
2008-07-17 15:19:25 -04:00
Brad King 33c84b50e9 ENH: Set CMake Policy CMP0003 to NEW behavior to build without warnings with the upcoming CMake 2.6 release. 2008-03-17 16:22:28 -04:00
Bill Hoffman 333ff59c23 ENH: remove memdebug.c from list 2007-11-07 14:35:56 -05:00
Bill Hoffman 8edcbecb7a ENH: add a check for basename to cmcurl 2007-09-27 08:53:19 -04:00