#pragma once is a widely supported compiler pragma, even though it is
not part of the C++ standard. Many of the issues keeping #pragma once
from being standardized (distributed filesystems, build farms, hard
links, etc.) do not apply to CMake - it is easy to build CMake on a
single machine. CMake also does not install any header files which can
be consumed by other projects (though cmCPluginAPI.h has been
deliberately omitted from this conversion in case anyone is still using
it.) Finally, #pragma once has been required to build CMake since at
least August 2017 (7f29bbe6 enabled server mode unconditionally, which
had been using #pragma once since September 2016 (b13d3e0d)). The fact
that we now require C++11 filters out old compilers, and it is unlikely
that there is a compiler which supports C++11 but does not support
#pragma once.
In commit 714ce72882 (bootstrap: Make libuv available during bootstrap,
2017-09-13, v3.10.0-rc1~106^2) we modified libuv to use POSIX interfaces
during bootstrap. However, some code still expects `TARGET_OS_IPHONE`
to be defined on Apple platforms to either `0` or `1`. In order to
offer this, include `<TargetConditionals.h>` on Apple platforms even
when bootstrapping.
Previously, cm::static_reference_cast used invoke_result_t and took the
address of O::get. This is not in complete conformance with standard.
This MR changes the implementation to use std::declval<O>.get() which is
always well-defined.
e5ff413f41 curl: Set build options the way we need for CMake
0ef8fa5000 Merge branch 'upstream-curl' into update-curl
5717fdc114 curl 2020-06-23 (e9db32a0)
39f7cfad31 curl: Update script to get curl 7.71.0
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4937
Refactoring in commit ade3b16e63 (libarchive: Use KWIML to get
fixed-size integer types, 2020-06-01) accidentally changed the method of
defining `int#_t` types from `typedef` to `#define`. Change it back to
`typedef`.
Reported-by: Rolf Eike Beer <eike@sf-mail.de>
Refactoring in commit 12e7bfcbf4 (liblzma: Use KWIML to get fixed-size
integer types, 2020-05-25) accidentally changed the method of defining
`int#_t` types from `typedef` to `#define`. Change it back to
`typedef`.
Reported-by: Rolf Eike Beer <eike@sf-mail.de>
The integer size checks have been replaced with KWIML so their
hard-coded results are no longer needed.
Tell `TEST_BIG_ENDIAN` to use `unsigned short` as the 16-bit integer.
UNIX device APIs do not exist on Windows.
FreeBSD libmd does not exist on Windows.
Fix typo in existing `HAVE_READPASSPHRASE_H` setting.
ade3b16e63 libarchive: Use KWIML to get fixed-size integer types
22c5b0c244 libarchive: Avoid configure-time checks for integer range constants
a7e66cac16 libarchive: Drop unused code providing uintmax_t and intmax_t
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4839
Our bundled third-party libraries perform many `try_compile` checks for
compatibility with their upstream build systems. For many of the checks
we already know the result for compilers we support for building CMake
itself, especially on Windows. Hard-code known results to avoid running
the checks.
cURL detects the `send` and `recv` signatures using a large loop
of `try_compile` checks. The results are used for the following:
* Casting argument types in calls to `send` and `recv`, perhaps
to avoid conversion warnings. We compile with `-w` anyway.
* Providing debug variants for `CURLDEBUG`, which we do not use.
Replace the detection loops with hard-coded results that should work
well enough everywhere. This significantly reduces the number of
configure-time checks for building CMake on some platforms.
2faa3f6c55 Refactoring: Third-parties public headers are under cm3p prefix
75e87e3db4 bootstrap: update list of problematic files
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4705
50cbc9b77a gitlab-ci: add a sphinx builder
d78bf2f229 ci: install sphinx into the CI image
671ff5f1ac ci: skip weak dependencies in the CI image
bdce0fc317 CTestCustom: fix indentation
e4f398e0af Help: add alt text to embedded images
758ab4dbd3 Utilities/Sphinx: allow CDash submission for the standalone build
16de8e3544 Utilities/Sphinx: support finding Qt5's qcollectiongenerator too
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4713
Also drop the `CMakeNightlyWin{32,64}` tests that use the scripts.
Follow the pattern from commit 689fdbfc61 (Utilities/Release: Drop
linux64 script in favor of docker build, 2019-08-27, v3.16.0-rc1~184^2).
These will allow anyone to produce portable binaries like those
published on `cmake.org`.
Follow the pattern from commit facc240a45 (Utilities/Release: Add docker
specs to build and test Linux binaries, 2019-08-23, v3.16.0-rc1~184^2~2).
Parameterize the architecture to support both `x86_64` and `i386`.