514 Commits

Author SHA1 Message Date
Brad King 3fe8e33f27 Clang: Record Clang 16.0 flags for our experimental C++ modules support
LLVM/Clang 16.0 now contains official support for what CMake needs.
2023-03-03 12:44:53 -05:00
Brad King 7c60a2625d gitlab-ci: Optionally upload release packages to custom URL 2023-02-28 13:39:52 -05:00
Brad King fc8a981893 gitlab-ci: Generalize package and help upload URLs 2023-02-28 13:39:52 -05:00
Brad King f73649823b gitlab-ci: Stage unsigned release package artifacts in a dedicated directory
These artifacts need to be manually signed before distribution.
Move them to a dedicated `unsigned/` directory to avoid accidental
distribution without signing.
2023-02-28 13:39:52 -05:00
Brad King 0929221ca3 gitlab-ci: Simplify Windows packaging pipeline
In commit 4c7c66dcf5 (gitlab-ci: Add jobs to make Windows x86_64 and
i386 packages, 2022-05-19, v3.24.0-rc1~112^2) we used a separate Windows
packaging job in nightly packaging pipelines.  It did not run in release
pipelines, where we need to run the final packaging step manually with
signing.  Simplify nightly packaging pipelines by running `cpack` at the
end of the build job as we do for other platforms.

For release packaging pipelines, create an archive of the files needed
to build a package, and present this as the built "package" on Windows.
2023-02-28 13:39:44 -05:00
Brad King ce2e825306 gitlab-ci: Simplify macOS packaging jobs
Run cpack in a post-build step instead of duplicating the job script.
2023-02-28 10:18:31 -05:00
Brad King 05531a7c4e gitlab-ci: add pre-build and post-build steps to Windows
Apply the approach from commit 372ce5bffe (ci: add pre-build and
post-build steps to Linux, 2022-12-05, v3.26.0-rc1~225^2~1) to
build jobs on Windows.
2023-02-28 10:12:03 -05:00
Brad King 5ab92d8e71 gitlab-ci: add pre-build and post-build steps to macOS
Apply the approach from commit 372ce5bffe (ci: add pre-build and
post-build steps to Linux, 2022-12-05, v3.26.0-rc1~225^2~1) to
build jobs on macOS.
2023-02-28 10:12:03 -05:00
Brad King 9da7009bfc gitlab-ci: Update Windows builds to MSVC 14.35 toolset 2023-02-22 12:35:46 -05:00
Kefu Chai 65ff605e44 ci: use the latest clang-scan-deps options
P1689 support has been merged in Clang trunk and Clang 16 branch, so we
are now able to use the finalized clang-scan-deps command line options.

See also llvm-project's clang/test/ClangScanDeps/P1689.cppm [1] for the
samples of clang-scan-deps usages.

[1] https://github.com/llvm/llvm-project/blob/6d859df46e/clang/test/ClangScanDeps/P1689.cppm

Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
2023-02-15 14:40:11 -05:00
Brad King 3350c17451 ci: Enable file(DOWNLOAD) TLS_VERIFY test case in CI jobs 2023-02-10 12:22:00 -05:00
Alex Turbov fc8335a17f ci: Reduce Fedora and Debian image sizes even more
Apply the approach from commit 354fdf2116 (ci: Reduce intermediate
docker layers and final image size, 2023-02-01) to more stages.

Also:

* Use cache (prefetch metadata and packages) to reduce network I/O
  and speedup image build.

* Use `tmpfs` to drop logs produced by the package manager.
2023-02-07 11:58:21 -05:00
Alex Turbov 354fdf2116 ci: Reduce intermediate docker layers and final image size
Instead of `COPY` to get tar files, execute `RUN` w/ `--mount`.
Note that this requires the docker "buildkit" feature to be enabled.
2023-02-06 10:13:06 -05:00
Ben Boeckel d5ee82104f ci: support debugging IWYU in CI
Instead of requiring setting up a mock CI environment with the official
image locally. While such docs would be handy anyways, requiring that
entire setup to get a small piece of information from a build is
unnecessary.
2023-01-30 15:25:24 -05:00
Brad King 09cb6c48e2 Merge topic 'iwyu-better-ci-logs'
bf3425c3d2 ci: add a comment to run IWYU in verbose mode
25f0b4f397 CMake: add an option to run IWYU in verbose mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8130
2023-01-30 10:19:31 -05:00
Ben Boeckel bf3425c3d2 ci: add a comment to run IWYU in verbose mode
Useful to avoid setting up the CI locally to get a single extra message.
2023-01-27 11:18:59 -05:00
hstejas 1bba218214 FindImageMagick: Define targets for specific components
- With this change we can use e.g. ImageMagick::Magick++ directly
  in targt_link_libraries.
- This change also adds CFLAGS which was missing before.
- Also adds example on how to use the targets.
2023-01-27 10:33:10 -05:00
Brad King 85f16fe913 ci: add ImageMagick to Debian and Fedora base images 2023-01-26 13:00:28 -05:00
Brad King ebd81d0e12 ci: rebase nvidia-derived docker images on tags we control
According to NVIDIA's container image support policy [1], they will
remove tags for older images over time.  In order to preserve our
ability to rebuild CI images based on them in the future, base them on
tags we control.

[1] https://gitlab.com/nvidia/container-images/cuda/blob/85fbd45b92/doc/support-policy.md
2023-01-20 13:00:19 -05:00
Brad King 02599da236 Merge topic 'cxxmodules-clang-update'
5dc17d0a7a gitlab-ci: update to new Clang CI image for C++ modules
e84fcbcb0b cxxmodules: support new round of Clang patches
5e35913382 ci: update `llvm` snapshot to newest patch revisions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8019
2022-12-17 08:47:31 -05:00
Brad King b04e53035a Merge topic 'ci-xcode-14.2'
85d2ce0bfe gitlab-ci: update macOS jobs to use Xcode 14.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8023
2022-12-16 08:49:49 -05:00
Ben Boeckel 5dc17d0a7a gitlab-ci: update to new Clang CI image for C++ modules 2022-12-15 18:43:55 -05:00
Ben Boeckel e84fcbcb0b cxxmodules: support new round of Clang patches
These patches now support the `-MF` output, so remove the `none` support
added just for the old patchset which did not use it.

Also update the flag name to `-fmodule-output=`.

Due to the new Clang module mapper flag, use a new experimental support
UUID as well.
2022-12-15 18:43:47 -05:00
Brad King 85d2ce0bfe gitlab-ci: update macOS jobs to use Xcode 14.2 2022-12-15 17:43:58 -05:00
Ben Boeckel 5e35913382 ci: update llvm snapshot to newest patch revisions 2022-12-15 10:02:03 -05:00
Kyle Edwards 42445b2c04 ci: run commit messages through codespell 2022-12-13 10:29:20 -05:00
Brad King ae610be60f gitlab-ci: de-duplicate cuda job settings 2022-12-07 09:41:04 -05:00
Brad King 602c24f778 Merge topic 'ci-nvhpc'
12d032b265 gitlab-ci: Update NVHPC to version 22.11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7994
2022-12-07 08:15:13 -05:00
Brad King 5f94655808 Merge topic 'ci-cuda-no-static'
004f954401 ci: Add job to test minimal CUDA install (no static libs)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7996
2022-12-07 08:13:48 -05:00
Robert Maynard 004f954401 ci: Add job to test minimal CUDA install (no static libs)
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.
2022-12-06 15:44:33 -05:00
Brad King 12d032b265 gitlab-ci: Update NVHPC to version 22.11
Fixes: #24225
2022-12-06 10:59:24 -05:00
Brad King 6f619d2de6 Merge topic 'ci-pre-build-post-build'
a7be3c961f ci: build clang-tidy plugin in pre-build step
372ce5bffe ci: add pre-build and post-build steps to Linux

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7989
2022-12-06 08:09:07 -05:00
Brad King 2f5acfa801 Merge topic 'ci-nvhpc'
7d2979d6eb gitlab-ci: Select CUDA version explicitly in NVHPC job

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7987
2022-12-06 08:08:00 -05:00
Brad King f1f064b7b2 Merge topic 'cxx-module-map-clang'
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
2022-12-06 08:04:18 -05:00
Kyle Edwards a7be3c961f ci: build clang-tidy plugin in pre-build step
And use sccache and Ninja.
2022-12-05 17:43:35 -05:00
Kyle Edwards 372ce5bffe ci: add pre-build and post-build steps to Linux
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.
2022-12-05 17:43:31 -05:00
Brad King 7d2979d6eb gitlab-ci: Select CUDA version explicitly in NVHPC job
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
2022-12-05 13:17:39 -05:00
Ben Boeckel 2c558cfd1b gitlab-ci: add CI jobs for Clang with C++20 modules 2022-12-02 13:16:16 -05:00
Ben Boeckel abd42e9cfc ci: add a Docker container for clang support of C++20 modules 2022-12-02 13:16:16 -05:00
Ben Boeckel 0b333de923 ci: add C++ module rules file for Clang 2022-12-02 13:04:34 -05:00
Brad King 399d62db8b Merge topic 'cxxmodules-vs'
52c21cbbda ci: enable C++20 module testing with the VS 2022 generator
2991e92ea7 cmExperimental: recycle C++20 module support UUID
82833fb3c0 Help/dev/experimental: document C++20 module limitations
388acfd46d Tests/RunCMake/CXXModules: add support for Visual Studio
069a32b03c Tests/RunCMake/CXXModules: split out collation-requiring tests
ef03a3a2f5 Tests/RunCMake/CXXModules: factor out generator support detection
736123464f Tests/RunCMake/CXXModules: update `NoDyndepSupport` for VS2019 and older
4a4ce031cd Tests/RunCMake/CXXModules: catch VS circular error message
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7972
2022-12-02 08:24:05 -05:00
Brad King 3c07549b51 Merge topic 'ci-os-arch'
6a38c5dccb gitlab-ci: replace 'linux' tags with 'linux-x86_64' in upload jobs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !7976
2022-12-02 08:22:33 -05:00
Ben Boeckel 52c21cbbda ci: enable C++20 module testing with the VS 2022 generator 2022-12-01 11:42:46 -05:00
Ben Boeckel 069a32b03c Tests/RunCMake/CXXModules: split out collation-requiring tests
Visual Studio does not currently have a place to insert the logic
required to implement this test, so skip it if possible.
2022-12-01 11:42:46 -05:00
Brad King 2a139018ce Merge topic 'find_cudatoolkit_avoid_nvhpc_symlinks'
9d012b1f69 FindCUDAToolkit: Ensure that paths provided have no symlinks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7974
2022-12-01 08:02:49 -05:00
Brad King 6a38c5dccb gitlab-ci: replace 'linux' tags with 'linux-x86_64' in upload jobs
These were missed by commit 94d82d91d5 (gitlab-ci: replace 'linux'
tags with 'linux-x86_64', 2022-11-30).
2022-12-01 07:55:51 -05:00
Robert Maynard 9d012b1f69 FindCUDAToolkit: Ensure that paths provided have no symlinks
Fixes: #24188
2022-11-30 16:39:00 -05:00
Brad King c212c7dc8b gitlab-ci: drop unnecessary linux kernel version tag
All our CI hosts now have Linux kernel version 3.17 or higher,
so we no longer need a dedicated tag.
2022-11-30 13:11:11 -05:00
Brad King 33fe37a660 gitlab-ci: replace '{macos,windows}' tags with '{macos,windows}-x86_64'
The latter tags are now available on our CI runners to more explicitly
distinguish `{macos,windows}-x86_64` from `{macos,windows}-arm64`.
2022-11-30 11:32:31 -05:00
Brad King 94d82d91d5 gitlab-ci: replace 'linux' tags with 'linux-x86_64'
The latter tag is now available on our CI runners to more explicitly
distinguish `linux-x86_64` from `linux-aarch64`.
2022-11-30 11:32:10 -05:00