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}.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.