Dereferencing a 0-pointer is undefined behavior, not a deterministic
crash. Use a 1-pointer instead. This also avoids a warning by Clang
about the undefined behavior.
At least one version of GNU tar (1.15.1 with Fedora patches) does not
recognize these attributes and exits with error. Do not generate them.
Patch from upstream libarchive svn r2563.
Change types of local variables, or casting, or re-arrange
expressions to get rid of "conversion may alter value" warnings
as seen on recent dashboard submissions from londinium.kitware.
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.
Organize Utilities/CMakeLists.txt to avoid duplicate install command
calls. We collect each type of documentation in a variable listing its
files for installation and then use one install call at the end.
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.
We use CHECK_TYPE_SIZE in libarchive to check for the existence of some
types. For universal binary builds on the Mac, the size check can fail
if it is inconsistent across architectures. However, we do not actually
need the size so it is safe to do the checks for only one architecture.
See issue #9913.
In libarchive/archive_platform.h we should include <stdint.h> or
<inttypes.h> immediately after "config.h" to define integer types
referenced by configuration results. For example, on a non-conformant
platform ssize_t might default to int64_t, so int64_t must be defined
before ssize_t is used (and ssize_t is used in archive_windows.h).
In libarchive we configure an internal header file called 'config.h'.
This commits moves the include directory containing the file to the
beginning of the include path to avoid conflicts from system headers.
The commit "libarchive: Define _XOPEN_SOURCE for get(pwu|grg)id_r"
introduced a comment referring to get(pwu|grg)id_r in a source file that
actually uses the functions get(pw|gr)name_r. We fix the comment.
The "result" argument to functions get(pwu|grg)id_r and get(pw|gr)name_r
does not appear in the signatures provided on older platforms. We set
the pointer to the result memory in case the function ignores it, thus
ensuring initialization.
The commit "Fix libarchive linker errors on SunOS for mkdev/major/minor"
hard-coded #include lines for getting mkdev/major/minor on the Sun.
Instead we add missing try-compile tests to make sure the proper headers
get included through the standard mechanism.
The commit "Fixed a few of the SunOS build errors in libarchive" changed
the call to these functions to use the old signatures. Instead we now
define _XOPEN_SOURCE to get the improved modern signatures.
Most of the integer type defaults needed for MSVC and Borland actually
work with all Windows compilers. This commit generalizes the defaults
to avoid compiler-specific tests.
The commit "libarchive: Fix Borland integer constants" introduced use of
HAVE_* configured macros into archive.h and archive_entry.h where they
are not allowed. This commit replaces the logic with something that
does not depend on the configured macros.
The VS 6 version of wincrypt.h only works if _WIN32_WINNT >= 0x0400.
We block its inclusion through windows.h by defining NOCRYPT, and then
define _WIN32_WINNT and include it only when necessary.
Some versions of Borland provide <stdint.h>, so we use it when possible.
However, the 64-bit signed and unsigned integer min/max constants cause
overflow warnings from Borland itself! For these constants we fall back
on our default definitions.
This allows for a built in bzip and zip capability, so external tools
will not be needed for these packagers. The cmake -E tar xf should be
able to handle all compression types now as well.
This converts the CMake license to a pure 3-clause OSI-approved BSD
License. We drop the previous license clause requiring modified
versions to be plainly marked. We also update the CMake copyright to
cover the full development time range.
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.
We've chosen to drop our default dependence on xmlrpc. Thus we disable
the corresponding CTest submission method and remove the sources for
building xmlrpc locally. Users can re-enable the method by setting the
CTEST_USE_XMLRPC option to use a system-installed xmlrpc library.
This version of curl was added experimentally but does not address the
problem we were hoping it fixed (an occasional upload hang). Importing
a new curl can wait until the problem is fully diagnosed and addressed.
We use a custom command to run 'cmake-gui --help...' to generate the
documentation for the application. Since this is a Qt application, the
executable must find the Qt DLLs in order to run. As a convenience, if
QtCore4.dll appears next to qmake.exe, we put its location in the PATH
environment variable when running the custom command on Windows.