Commit Graph

1793 Commits

Author SHA1 Message Date
Marc Chevrier
95a1b2c7b8 stl containers: enhance compatibility with C++14, C++17 and C++20
* Ensure various functions working with containers are available through
all headers as specified by the standard.
* Add C++20 std::ssize() function.
2022-05-07 11:04:06 +02:00
Brad King
891266cacc Merge topic 'update-curl'
30aba1ce8c Merge branch 'upstream-curl' into update-curl
2a9bc9ebf0 curl 2022-04-27 (1669b17d)
5239672e64 curl: Update script to get curl 7.83.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7219
2022-05-03 11:21:54 -04:00
Marc Chevrier
f42d0c9322 cm::enum_set: fix compilation warning 2022-04-29 16:49:14 +02:00
Brad King
756e83fbe2 Merge topic 'doc-cmake.org-tutorial-archive'
4cb616fed6 Tutorial: Provide a source archive when published on cmake.org
37fb70591e Utilities/Sphinx: Add variables listing pre-sphinx commands
eb7d913a21 Utilities/Sphinx: Clarify names of variables listing post-sphinx commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7215
2022-04-29 09:26:17 -04:00
Brad King
30aba1ce8c Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2022-04-27 (1669b17d)
2022-04-28 15:21:23 -04:00
Brad King
5239672e64 curl: Update script to get curl 7.83.0 2022-04-28 15:15:34 -04:00
Brad King
4cb616fed6 Tutorial: Provide a source archive when published on cmake.org
Provide readers following the tutorial on `cmake.org` a direct link to
download the tutorial's source examples.  Previously readers had to
fetch the CMake source tree separately and look for the tutorial source
examples inside it.

Fixes: #22475
2022-04-28 13:36:20 -04:00
Brad King
37fb70591e Utilities/Sphinx: Add variables listing pre-sphinx commands 2022-04-27 15:22:31 -04:00
Brad King
eb7d913a21 Utilities/Sphinx: Clarify names of variables listing post-sphinx commands 2022-04-27 15:22:31 -04:00
Marc Chevrier
b13eef5a90 cm::enum_set: container that contains a set of unique enum values.
The enum must be an `enum class` with an unsigned integer as base type.
2022-04-27 19:40:40 +02:00
Kyle Edwards
313ea361b0 CMake: Use FindPython instead of FindPythonInterp to build CMake itself
Fixes: #23444
2022-04-21 14:23:36 -04:00
Brad King
2167fce99b Utilities/Release: Drop SLA from CMake macOS DMG package
macOS 12 deprecates the tools needed to attach a SLA to a `.dmg`.
CMake 3.23 added `CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE` to
control whether `CPACK_RESOURCE_FILE_LICENSE` is used as the SLA.
CMake 3.24 will add policy CMP0133 to disable the SLA by default.

Explicitly turn off the SLA for CMake's official macOS binaries.
This will allow them to build on future macOS versions that have
no SLA tooling available.

Issue: #22978
2022-04-20 13:27:39 -04:00
Brad King
de6038aaf4 Merge branch 'doc-qhelpgenerator' into release-3.23
Merge-request: !7150
2022-04-08 08:52:55 -04:00
Brad King
261b29bccc Merge topic 'doc-qhelpgenerator'
bf69fa32c4 Utilities/Sphinx: Update qthelp generation to qhelpgenerator
37904abb58 Help: Add "Updates" section header in 3.22 release notes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7150
2022-04-08 08:51:22 -04:00
Brad King
bf69fa32c4 Utilities/Sphinx: Update qthelp generation to qhelpgenerator
`qcollectiongenerator` is deprecated in favor of `qhelpgenerator`.
2022-04-07 09:37:37 -04:00
Brad King
5c429c5b40 Merge topic 'ci-cmake.org-help'
b691906d27 gitlab-ci: Build qthelp-format release documentation for cmake.org
1ceec19c20 gitlab-ci: Add objects.inv to cmake.org html documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7146
2022-04-06 13:02:38 -04:00
Brad King
76632f9f47 Merge topic 'ci-cmake.org-help' into release-3.23
b691906d27 gitlab-ci: Build qthelp-format release documentation for cmake.org
1ceec19c20 gitlab-ci: Add objects.inv to cmake.org html documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7146
2022-04-06 13:02:37 -04:00
Brad King
b691906d27 gitlab-ci: Build qthelp-format release documentation for cmake.org
Previously the qthelp-format release documentation on `cmake.org` was
built manually.
2022-04-06 09:59:14 -04:00
Brad King
f38fbdb65b Merge topic 'ci-cmake.org-help' into release-3.23
2808281730 gitlab-ci: update cmake.org documentation in release package pipeline
ed00a29cce gitlab-ci: consolidate jobs for cmake.org/cmake/help/git-{master,stage} docs
5c2e8ce515 Utilities/Sphinx: Add OpenSearch link to html page headers on cmake.org
a14905d4df Utilities/Sphinx: Add option to build outdated version banner for cmake.org
cca73b54ae Utilities/Sphinx: Add undocumented option to build docs for cmake.org

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7144
2022-04-05 17:46:01 -04:00
Brad King
2ce668b11d Merge branch 'backport-ci-cmake.org-help' into ci-cmake.org-help 2022-04-05 16:51:04 -04:00
Brad King
5c2e8ce515 Utilities/Sphinx: Add OpenSearch link to html page headers on cmake.org
Reference an OpenSearch description file that sits outside the content
of any specific version so we only need to maintain one and so that
it can reference the latest version.

This was previously added in a custom branch for building the
cmake.org reference documentation.
2022-04-05 16:09:54 -04:00
Brad King
a14905d4df Utilities/Sphinx: Add option to build outdated version banner for cmake.org
This was previously added in a custom branch for building the
cmake.org reference documentation.
2022-04-05 16:09:54 -04:00
Brad King
cca73b54ae Utilities/Sphinx: Add undocumented option to build docs for cmake.org 2022-04-05 16:09:54 -04:00
Brad King
11cc728e75 cmConstStack: Factor out of cmListFileBacktrace
This presents value semantics for a stack of constant values.
Internally it shares ownership to avoid copies.  Previously
this was implemented by `cmListFileBacktrace` explicitly,
but the approach can be re-used for other kinds of stacks.
2022-04-02 05:55:31 -04:00
Brad King
2b0f96ce56 Merge branch 'rel-win-docker' into release-3.22
Merge-request: !7087
2022-03-21 14:13:44 -04:00
Brad King
2e93f6ac1a Merge topic 'rel-win-docker'
a6aa88e51f Utilities/Release: Add "source" stage to Windows docker spec

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7087
2022-03-21 14:12:38 -04:00
Brad King
4b89761df1 Merge topic 'rel-win-docker' into release-3.23
a6aa88e51f Utilities/Release: Add "source" stage to Windows docker spec

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7087
2022-03-21 14:12:37 -04:00
Brad King
a6aa88e51f Utilities/Release: Add "source" stage to Windows docker spec
Revise the spec added by commit ff929badb3 (Utilities/Release: Add
docker specs to build and test Windows binaries, 2020-05-05,
v3.18.0-rc1~203^2~1) to add a `source` stage that stops just after
copying the source tree into the image.  This provides more granular
control to driving scripts.
2022-03-18 09:50:55 -04:00
Brad King
31101e0fde Merge topic 'cmake-minimum'
14eb8a6ab9 libarchive: Simplify hard-coded options for build within CMake
d6b811fb82 Require CMake 3.13+ to configure CMake itself

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7016
2022-02-24 13:00:14 -05:00
Brad King
0956b3bc92 Merge topic 'update-expat'
07f9ce4f8c Merge branch 'upstream-expat' into update-expat
4c031b9417 expat 2022-02-20 (65a21f2b)
9d035ba28d expat: Update script to get Expat 2.4.6

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7015
2022-02-23 09:00:37 -05:00
Brad King
d6b811fb82 Require CMake 3.13+ to configure CMake itself
In particular, guarantee that policy `CMP0077` has `NEW` behavior.
This will be useful to hard-code options of third-party libraries
without polluting our own cache.
2022-02-22 17:50:06 -05:00
Brad King
07f9ce4f8c Merge branch 'upstream-expat' into update-expat
# By Expat Upstream
* upstream-expat:
  expat 2022-02-20 (65a21f2b)
2022-02-22 17:11:37 -05:00
Brad King
9d035ba28d expat: Update script to get Expat 2.4.6 2022-02-22 17:11:28 -05:00
Ben Boeckel
93f52b0931 Utilities/Git: add a file for refs to ignore when blaming
This file may be passed to `git blame` through either the
`--ignore-revs-file` argument or the `blame.ignoreRevsFile`
configuration to ignore certain commits when performing blames.

Note that if Git is unable to find an older commit for a given line,
commits in this file may still be given as the source of a line.

The file uses features (namely empty lines and comments) which were
added in Git 2.20, released Dec 2018.
2022-02-21 10:53:42 -05:00
Brad King
0bd5685867 Merge topic 'update-libarchive'
be9ebc104a libarchive: Simplify code selecting CMake-specific build options
4a7a5718c6 libarchive: Update build within CMake after changes in 3.6.0
85cdeefc37 libarchive: include archive_platform.h first in blake2s sources
b3644e460f Merge branch 'upstream-LibArchive' into update-libarchive
5d50940288 LibArchive 2022-02-09 (9147def1)
406503f620 libarchive: Update script to get 3.6.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6988
2022-02-18 09:04:00 -05:00
Brad King
535f79656e Merge topic 'libarchive-openssl-crypto-checks'
483a1c248c libarchive: Fix OpenSSL crypto library checks for build inside CMake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6997
2022-02-18 08:51:55 -05:00
Brad King
483a1c248c libarchive: Fix OpenSSL crypto library checks for build inside CMake
libarchive's crypto library checks use its `config.h` inside the
`try_compile` project.  Since commit ade3b16e63 (libarchive: Use KWIML
to get fixed-size integer types, 2020-06-01, v3.18.0-rc1~33^2),
that header depends on KWIML inside CMake.  Add the include directory
for KWIML to the crypto library checks.  Otherwise, they always fail
due to not finding the KWIML headers, and libarchive decides not
to link the crypto library.

libarchive has other code besides the hash algorithms that depends on
the crypto library if its ENABLE_OPENSSL option is enabled (which in
CMake is controlled by CMAKE_USE_OPENSSL).  It seems to be missing some
conditions to link the crypto library in those cases, and instead relies
on at least one of the above-mentioned checks to pass.  If they all
fail, and we are using system curl, we might not link the crypto
library.

Fixes: #23234
2022-02-17 08:06:01 -05:00
Brad King
be9ebc104a libarchive: Simplify code selecting CMake-specific build options
Reduce differences from upstream libarchive `CMakeLists.txt` code.
Remove modifications inside code we disable anyway.
2022-02-17 07:28:09 -05:00
Brad King
4a7a5718c6 libarchive: Update build within CMake after changes in 3.6.0 2022-02-16 07:41:50 -05:00
Brad King
85cdeefc37 libarchive: include archive_platform.h first in blake2s sources
Move the inclusion added in 3.6.0 to be first.  This is the libarchive
convention in all other `.c` sources.  It ensures that the configured
`_WIN32_WINNT` value is defined before including any system headers.
2022-02-16 07:41:49 -05:00
Brad King
b3644e460f Merge branch 'upstream-LibArchive' into update-libarchive
* upstream-LibArchive:
  LibArchive 2022-02-09 (9147def1)
2022-02-15 13:03:49 -05:00
Brad King
406503f620 libarchive: Update script to get 3.6.0 2022-02-15 12:54:20 -05:00
Brad King
f84dcbd496 Merge topic 'post-rel-dev'
9a48012f93 Configure CMake itself with policies through CMake 3.22
a5a9687799 export: Increase maximum policy version in exported files to 3.22
a9ffded98c Add deprecation warnings for policies CMP0097 and below

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6948
2022-02-04 08:24:26 -05:00
Brad King
9a48012f93 Configure CMake itself with policies through CMake 3.22 2022-02-03 14:13:12 -05:00
Brad King
9d621ceba1 Tests: Run MFC test only when explicitly enabled
Previously we used a complicated heuristic to decide whether or not to
run the MFC test, but it sometimes decided incorrectly to run the test.
Since that was first written, we have developed a convention for other
tests to enable them via undocumented cache entries that are added only
on machines known to meet the tests' requirements.  Do that for MFC.
2022-02-03 06:45:53 -05:00
Brad King
490e58905d Merge topic 'update-expat'
338240fd21 Merge branch 'upstream-expat' into update-expat
8e0070b905 expat 2022-01-30 (81b89678)
f06a4c2406 expat: Update script to get Expat 2.4.4

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6933
2022-02-02 08:18:45 -05:00
Brad King
a541c8f510 Utilities/Sphinx: Ignore warning in generated texinfo documentation 2022-02-01 17:20:28 -05:00
Brad King
338240fd21 Merge branch 'upstream-expat' into update-expat
# By Expat Upstream
* upstream-expat:
  expat 2022-01-30 (81b89678)
2022-02-01 10:43:53 -05:00
Brad King
f06a4c2406 expat: Update script to get Expat 2.4.4 2022-02-01 10:43:39 -05:00
Aaron Liu
24da80b70a Utilities: Suppress warnings in third-party code with IBMClang 2022-01-27 09:38:01 -05:00