5ce0f03cce VS: Add a variable to report the Visual Studio version build number
55529c5e93 Help: Factor out VS Build Number components document fragment
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8000
The "In makefile terms" explanation is left from very early days of
CMake to help developers migrating from hand-written makefiles.
These days it is often misinterpreted, particularly in the context
of multiple `add_custom_command` calls, to mean that we generate a
single Makefile containing rules for all custom commands. This
leads to an incorrect mental model of the expressed build system.
The actual generated build system may spread the rules across multiple
targets that do not see the each other's file-level rules, which makes
target-level dependencies important too.
On AIX, including `<curses.h>` includes `<term.h>` which defines
a bunch of non-prefixed, lower-case macro names. Undefine one
that conflicts with our source code.
Fixes: #24229
VS 2017 and above come with a Visual Studio Installer tool that tracks
four-component Visual Studio version numbers. We already detect the VS
version number because it is needed to make some generation decisions.
Provide the number to projects in a `CMAKE_VS_VERSION_BUILD_NUMBER`
variable so they can use it similarly.
Fixes: #24230
Some package managers provide a minimal set of static libraries,
which historically has caused problems for FindCUDAToolkit.
Resolve this issue by creating a CUDA image with only the minimal
set of static libraries.
c922722ec0 Merge branch 'backport-ci-os-arch' into ci-os-arch
2bf1ce6cc3 gitlab-ci: drop unnecessary linux kernel version tag on 3.25 release branch
429574a94e gitlab-ci: replace '$os' tags with '$os-x86_64' on 3.25 release branch
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7995
2bf1ce6cc3 gitlab-ci: drop unnecessary linux kernel version tag on 3.25 release branch
429574a94e gitlab-ci: replace '$os' tags with '$os-x86_64' on 3.25 release branch
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7995
All our CI hosts now have Linux kernel version 3.17 or higher,
so we no longer need a dedicated tag.
This backports commit c212c7dc8b (gitlab-ci: drop unnecessary linux
kernel version tag, 2022-11-30) to the 3.25 release branch.
The latter tags are now available on our CI runners to more explicitly
distinguish `linux-x86_64` from `linux-aarch64` and to distinguish
`{macos,windows}-x86_64` from `{macos,windows}-arm64`.
This backports commit 33fe37a660 (gitlab-ci: replace '{macos,windows}'
tags with '{macos,windows}-x86_64', 2022-11-30) and commit 94d82d91d5
(gitlab-ci: replace 'linux' tags with 'linux-x86_64', 2022-11-30) to
the 3.25 release branch.
2c558cfd1b gitlab-ci: add CI jobs for Clang with C++20 modules
abd42e9cfc ci: add a Docker container for clang support of C++20 modules
51093f3002 Clang-FindBinUtils: also find `clang-scan-deps`
0b333de923 ci: add C++ module rules file for Clang
21b9fb1e8c cmCxxModuleMapper: support the `clang` module map format
9c66224668 cmNinjaTargetGenerator: skip setting `depfile` for `none` scantypes
9123a0991f cmNinjaTargetGenerator: use `.clear()` to empty out some strings
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Merge-request: !7978
The pre-build step will allow actions to be executed before the
CMake build but after Ninja and sccache have been downloaded, so
they can be used in the pre-build step. The env step is meant for
setting up environment variables anyway, rather than performing
actions.
The post-build step will allow extra artifacts to be computed after
the build is complete.
The job added by commit 16a5c36795 (gitlab-ci: add nightly job testing
NVHPC with Ninja on Linux, 2022-11-21) started failing after CI hosts
were updated from NVIDIA driver version 520 to version 525. Somehow
this causes the NVHPC multi-cuda `nvcc` wrapper to select CUDA 10.2
instead of 11.7 as with older driver versions.
As a workaround, add the preferred version of `nvcc` to the PATH.
Issue: #24225