We did this previously on Linux and Windows:
* commit 45feab3c00 (gitlab-ci: enable assertions on fedora34-ninja jobs,
2022-01-31, v3.23.0-rc1~37^2)
* commit bec34592a6 (ci: Enable assertions in CMake build job on Windows,
2024-12-19)
The macOS build jobs were already building the `Release` configuration
by default. Make it explicit to be sure we use these flags.
Since commit 5b564c371e (gitlab-ci: add Windows infrastructure,
2020-05-20, v3.18.0-rc1~102^2~1) we build with the `Release`
configuration on Windows to avoid the `-Zi` flag. However, that also
compiles with `-DNDEBUG` by default, thus suppressing assertions.
Since the build is meant for testing, enable assertions again.
Extend commit 0f82d07266 (ci: add job to update CMake Nightly Date
Stamp, 2024-12-17) to update the year range in `Copyright.txt` on
January 1 so we don't have to update it manually once per year.
Our `CMake.Copyright` test verifies that these match.
The problem that motivated commit 3a44b8dfc0 (ci: Move job for HIP tests
on Fedora 39 to a dedicated base image, 2024-04-24, v3.30.0-rc1~202^2~11)
turns out to be exposed by spaces in the path to HIP binaries. Move the
CI work directory to a path without spaces.
Closes: #25932
The `set` command in `cmd` has terrible properties in that there's no
real structure to it. Sensitive sequences in values or variable names
that are escaping sequences can be interpreted at the wrong time or
things like newlines in values are not escaped at all and cause
ambiguities in parsing. Avoid all of that and use PowerShell to use JSON
as a communication mechanism.
Since commit 84db8506ff (Deprecate compatibility with CMake versions
older than 3.10, 2024-10-03) some of the scripts warned when executed
with a `ctest` built earlier in the pipeline.
022d16659b curl: Work around missing OpenSSL symbol with LCC 1.23
01dde28dab ci: curl with Secure Transport on macOS does not support TLS 1.3
da52e4e571 curl: Set build options the way we need for CMake
ce908c42a3 Merge branch 'upstream-curl' into update-curl
1a2b208170 curl 2024-09-18 (7eb8c048)
862bd5defc curl: Update script to get curl 8.10.1
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9832
cc293b4963 ci: Run RunCMake.ExternalProject serially in macos-x86_64 Xcode job
26359076c8 gitlab-ci: update macOS jobs to use Xcode 16.0
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9830
Although there is no `cl -std:c++23` flag, the underlying Clang compiler
does have a C++23 mode we can activate by passing `-std=c++23` through a
`clang-cl` wrapper flag.
Fixes: #26061
e77655555c cmExperimental: gate build database support behind a flag
23cbeb5035 ci: enable `build_database` CXXModules tests
6863c1d823 Tests/CXXModules: add tests for module commands
123107c1a4 Tests/CXXModules: add support for running targets under a given config
438038b5e1 Tests/CXXModules: support building specific targets of example trees
84bc710d84 cmGlobalGenerator: generate build database files for targets
670f753f24 cmDyndepCollation: write build database metadata
dcf9a66ffe cxxmodules: plumb control data for exporting build databases
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9708
The SwiftMixLib test was failing on Windows due to a missing link
against swiftCore. On macOS and Linux, there are mechanisms for
extracting the libraries that the object depends on and passing that to
the linker so that the library dependencies don't need to be listed
explicitly. The Windows Swift toolchain does not have this mechanism.
In the future, it would likely make sense for CMake to pass some of the
implicitly required libraries for linking Swift via
`CMAKE_Swift_IMPLICIT_LINK_LIBRARIES`. Unlike the normal mechanisms
though, these libraries would need to be passed even when the link
language is Swift.
For now though, we should get the test up and running again.
Fixes: #25573