1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00
Commit Graph

1577 Commits

Author SHA1 Message Date
Kitware Robot
bdca8b01d2 Modernize: Use #pragma once in all header files
#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.
2020-09-03 09:30:21 -04:00
Kyle Edwards
093ba4061d Utilities/Scripts: Add temporary #pragma once conversion script 2020-09-03 09:26:57 -04:00
Brad King
387ea71853 curl: Set build options the way we need for CMake 2020-08-19 13:07:30 -04:00
Brad King
7d0fa4a943 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-08-19 (9d954e49)
2020-08-19 12:50:05 -04:00
Brad King
c156948327 curl: Update script to get curl 7.72.0 2020-08-19 12:44:12 -04:00
Fred Baksik
bfed613132 STL Support: Fix cm::filesystem warnings; check for '\' not multichar ' \'.
Utilities/std/cm/bits/fs_path.cxx:334:24: warning: multi-character character constant [-Wmultichar]
             || *ptr == ' \\'
                        ^~~~~
2020-07-24 19:36:46 -04:00
Brad King
e771330dd4 bootstrap: Fix libuv target platform conditions on macOS
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.
2020-07-22 14:42:04 -04:00
Marc Chevrier
259356f3b5 STL Support: cm::filesystem::path: add support of Cygwin 2020-07-20 16:20:42 +02:00
Marc Chevrier
d654bf3449 STL Support: Add cm::filesystem::path in <cm/filesystem> 2020-07-09 17:02:42 +02:00
Marc Chevrier
e5798126fc STL Support: introduce dedicated configuration file 2020-07-09 15:24:43 +02:00
Marc Chevrier
4408f34cfe STL Support: Add function cm::quoted in <cm/iomanip> 2020-07-09 15:24:43 +02:00
Brad King
ee781ac59d Merge topic 'doc-versionadded'
496ec6036f Help: Add Sphinx 'versionadded' directives to each top-level document
0c87afceab Help/dev: Add maintainer guide step for 'versionadded' documentation markup
dbd453c2ff Utilities/Sphinx: Add script for inserting ".. versionadded" directive

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !4947
2020-07-07 09:22:28 -04:00
Sumit Bhardwaj
782d7387d5 Implement cm::static_reference_cast by declval
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.
2020-07-04 11:03:46 -07:00
Nikita Nemkin
dbd453c2ff Utilities/Sphinx: Add script for inserting ".. versionadded" directive 2020-07-03 20:14:31 +05:00
Brad King
8a4dc44361 Merge topic 'update-curl'
6d423195d5 Merge branch 'upstream-curl' into update-curl
4446fda8e0 curl 2020-06-30 (5a1fc8d3)
4e9685f657 curl: Update script to get curl 7.71.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4958
2020-07-02 08:32:54 -04:00
Brad King
6d423195d5 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-06-30 (5a1fc8d3)
2020-07-01 10:10:23 -04:00
Brad King
4e9685f657 curl: Update script to get curl 7.71.1 2020-07-01 10:09:40 -04:00
Brad King
ac4ac03597 Merge topic 'update-curl'
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
2020-06-26 09:30:25 -04:00
Brad King
e5ff413f41 curl: Set build options the way we need for CMake 2020-06-24 08:23:52 -04:00
Brad King
0ef8fa5000 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2020-06-23 (e9db32a0)
2020-06-24 08:13:02 -04:00
Brad King
39f7cfad31 curl: Update script to get curl 7.71.0 2020-06-24 07:54:53 -04:00
Rolf Eike Beer
42dcc2bd51 CTestConfig: allow nightly build submission using https
The idea is that one may set `CTEST_DROP_METHOD` in custom CTest
scripting.
2020-06-09 09:33:01 -04:00
Brad King
3414ee155e Merge topic 'reduce-try_compile'
9f3923893c libarchive: Map fixed-size integer types from KWIML as typedefs
d20bf471c8 liblzma: Map fixed-size integer types from KWIML as typedefs
92c4316d81 KWSys: Hard-code try_compile results on Windows
2bc89f1a03 cmSystemTools: Hard-code try_compile results for Windows
d350d4668a libarchive: Hard-code try_compile results for bundled dependencies
bf60ac24ae Source: Assume elf.h does not exist on Windows
f408cc2c40 expat: Remove unused try_compile checks
6c4f3dcd7b Utilities: Update hard-coded try_compile results for third-party libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4848
2020-06-05 07:58:38 -04:00
Ben Boeckel
c5b072800d gitlab-ci: add jobs for reproducing the release binaries 2020-06-03 12:50:15 -04:00
Brad King
9f3923893c libarchive: Map fixed-size integer types from KWIML as typedefs
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>
2020-06-03 11:54:37 -04:00
Brad King
d20bf471c8 liblzma: Map fixed-size integer types from KWIML as typedefs
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>
2020-06-03 11:54:13 -04:00
Ben Boeckel
45f2786ff7 Release/linux: remove explicit LANG setting
It shouldn't be needed anymore now that the Sphinx scripts are reading
UTF-8 content explicitly.
2020-06-03 11:51:21 -04:00
Ben Boeckel
c540fcaa6b Sphinx/create_identifiers: handle qhp contents as utf-8 2020-06-03 11:51:21 -04:00
Ben Boeckel
e237fc65b7 Sphinx/create_identifiers: use not in not not _ in 2020-06-03 11:40:47 -04:00
Ben Boeckel
0aa061f6f8 Sphinx/create_identifiers: remove unused import 2020-06-03 11:40:47 -04:00
Brad King
f408cc2c40 expat: Remove unused try_compile checks 2020-06-03 07:48:52 -04:00
Brad King
6c4f3dcd7b Utilities: Update hard-coded try_compile results for third-party libraries
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.
2020-06-03 07:48:52 -04:00
Brad King
1936955b66 Merge topic 'libarchive-reduce-checks'
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
2020-06-03 05:58:46 -04:00
Brad King
1dd785b02c curl: Use KWIML to get integer type sizes 2020-06-02 07:00:35 -04:00
Brad King
ade3b16e63 libarchive: Use KWIML to get fixed-size integer types 2020-06-02 06:56:51 -04:00
Brad King
22c5b0c244 libarchive: Avoid configure-time checks for integer range constants 2020-06-01 15:59:10 -04:00
Brad King
a7e66cac16 libarchive: Drop unused code providing uintmax_t and intmax_t
The libarchive library code we use within CMake does not need these.
2020-06-01 15:38:06 -04:00
Brad King
bc681fc372 Hard-code some try_compile results for third-party libraries
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.
2020-05-27 14:09:20 -04:00
Brad King
d8359713e5 liblzma: Assume 'string.h' exists 2020-05-25 15:19:42 -04:00
Brad King
12e7bfcbf4 liblzma: Use KWIML to get fixed-size integer types 2020-05-25 15:16:56 -04:00
Brad King
3cd5ed7cb1 liblzma: Drop unused code providing uintmax_t and intmax_t
The lzma library code we use within CMake does not need these.
2020-05-25 15:06:34 -04:00
Brad King
0a46eb11af curl: Avoid checking 'send' and 'recv' signatures
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.
2020-05-20 15:17:26 -04:00
Brad King
171bf5fa92 Merge topic 'third-parties-layout'
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
2020-05-08 08:18:17 -04:00
Brad King
8887414432 Merge topic 'gitlab-ci-sphinx'
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
2020-05-08 08:06:03 -04:00
Ben Boeckel
758ab4dbd3 Utilities/Sphinx: allow CDash submission for the standalone build 2020-05-07 13:25:57 -04:00
Ben Boeckel
16de8e3544 Utilities/Sphinx: support finding Qt5's qcollectiongenerator too 2020-05-07 13:25:57 -04:00
Marc Chevrier
2faa3f6c55 Refactoring: Third-parties public headers are under cm3p prefix
Fixes: #20666
2020-05-07 12:06:08 +02:00
Brad King
7670ba8b0a Utilities/Release: Drop win{32,64} scripts in favor of docker build
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).
2020-05-05 14:56:56 -04:00
Brad King
ff929badb3 Utilities/Release: Add docker specs to build and test Windows binaries
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`.
2020-05-05 14:56:26 -04:00
Brad King
5f4f7e637a Utilities/Release: Generalize OS in README docker instructions
Replace the hard-coded OS name `linux` with an `<os>` placeholder.
Mention `linux` in an explicit list of supported `<os>/<arch>` pairs.
2020-05-05 14:50:26 -04:00