Commit Graph

619 Commits

Author SHA1 Message Date
Ben Boeckel
80ef50a191 CXXModules: add a variable for BMI-only compilation
This will be required when dealing with imported targets which contain
modules.
2023-08-17 14:42:54 -04:00
Ben Boeckel
0d837ba0f0 ci: update gcc module rules file for new flag spellings 2023-08-14 12:36:25 -04:00
Ben Boeckel
945c4b1771 ci: update to Fedora 38 for GCC C++ module container 2023-08-14 08:15:17 -04:00
Ben Boeckel
38251e00e1 ci: update to v7 of the GCC p1689r5 patches 2023-08-14 08:15:17 -04:00
Brad King
cffa56c918 ci: Add HIP job based on Fedora image
The Fedora `rocm-hip-devel` package organizes the `hip-lang` cmake package
differently from the official ROCm base images.  Cover it separately.

Issue: #25050
2023-08-07 16:46:38 -04:00
Brad King
05277d92da ci: Add ROCm HIP to Fedora base image 2023-08-07 16:39:42 -04:00
Brad King
f0c95e2630 Merge topic 'ci-debian-legacy'
9d64df3e1c ci: Add job for Debian 10 legacy packages
07f42b3690 ci: Add an image for Python 2 on Debian 10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8676
2023-08-01 09:24:52 -04:00
Brad King
9d64df3e1c ci: Add job for Debian 10 legacy packages
Test Python 2 packages in Debian 10.  They are not available in Debian 12.
2023-07-31 13:48:37 -04:00
Brad King
07f42b3690 ci: Add an image for Python 2 on Debian 10
Debian 12 no longer packages Python 2, so we test Python 2 find
modules on an older version.
2023-07-31 13:47:41 -04:00
Brad King
1177d5c127 ci: Add HIP job based on Debian image
The Debian package for `hipcc` organizes the `hip-lang` cmake package
differently from the official ROCm base images.  Cover it separately.

Issue: #24562
2023-07-31 12:08:36 -04:00
Brad King
241ee252ce IWYU: Update for Debian 12 CI job
`include-what-you-use` diagnostics, in practice, are specific to
the environment's compiler and standard library.  Update includes
to satisfy IWYU for our CI job under Debian 12.
2023-07-28 09:14:08 -04:00
Brad King
09db788636 ci: use Debian 12 images and environments 2023-07-28 09:14:07 -04:00
Brad King
9526679bbc ci: Update base images to Debian 12 2023-07-28 09:14:07 -04:00
Ben Boeckel
077678d3f9 ci: test CDash submission tests on some nightly dashboards
One from each platform, and a mix of architectures and generators.
2023-07-25 16:21:31 -04:00
Ben Boeckel
fe55a0ebf4 ci: enable more tests to better match nightly dashboards 2023-07-25 16:21:31 -04:00
Brad King
27302fa005 Merge topic 'compile-commands-modules'
677b28dc7b Ninja: include module mapper flags in `compile_commands.json`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8611
2023-07-12 10:02:53 -04:00
Ben Boeckel
677b28dc7b Ninja: include module mapper flags in compile_commands.json
Fixes: #24618
2023-07-09 11:04:29 -04:00
Brad King
994e88ec38 Merge topic 'build-pch'
aba5bab62e ci: Add nightly job to build CMake with PCH on macOS
44f08e94ff ci: Add nightly job to build CMake with PCH on Windows
e0eb97e923 libuv: Precompile common expensive headers
e2efa89c7f cmcppdap: Precompile common expensive headers
9d7921d388 liblzma: Precompile common expensive headers
6aaefdb3be libarchive: Precompile common expensive headers
a8d91e2719 curl: Precompile common expensive headers
59277bccd3 bzip: Precompile common expensive headers
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8571
2023-06-23 11:20:00 -04:00
Brad King
93c379430d Merge topic 'vs-cxxmodules-public-bmis'
d90a61d671 VS: Make C++ module BMIs public by default for shared libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8549
2023-06-23 10:48:15 -04:00
Brad King
aba5bab62e ci: Add nightly job to build CMake with PCH on macOS 2023-06-22 14:27:50 -04:00
Andreas Weis
d90a61d671 VS: Make C++ module BMIs public by default for shared libraries
Enable the `AllProjectBMIsArePublic` option for shared libraries in the
VS project files when building with C++20 modules support.
2023-06-22 14:22:56 -04:00
Brad King
44f08e94ff ci: Add nightly job to build CMake with PCH on Windows 2023-06-22 13:48:56 -04:00
Brad King
15edabf575 Merge topic 'rel-macos-c++17'
7b205b7078 ci: Build macOS 10.13+ package as C++17
7f6cebb1cd ci: Split macOS 10.10+ and 10.13+ package language standard selection
aab16d4bfc ci: Drop unnecessary -stdlib flag from macOS package

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8567
2023-06-20 09:26:29 -04:00
Brad King
7b205b7078 ci: Build macOS 10.13+ package as C++17
Take advantage of the standard library implementations of those C++17
features available when targeting macOS 10.13.  Note that the standard
library `std::filesystem` implementation is not available until 10.15.
2023-06-16 08:16:43 -04:00
Marc Chevrier
711d1da125 FindPython: add capability to select python version for the tests 2023-06-15 15:28:55 +02:00
Brad King
7f6cebb1cd ci: Split macOS 10.10+ and 10.13+ package language standard selection
Prepare to use a different language standard level for each package.
2023-06-15 09:21:07 -04:00
Brad King
aab16d4bfc ci: Drop unnecessary -stdlib flag from macOS package
AppleClang uses `libc++` by default.
2023-06-15 09:21:07 -04:00
Brad King
c42fb292e9 Merge topic 'ci-macos-ninja-multi-no-sccache'
ac44557c7b ci: Disable sccache for macOS Ninja Multi-Config nightly job

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8560
2023-06-14 09:15:54 -04:00
Brad King
ac44557c7b ci: Disable sccache for macOS Ninja Multi-Config nightly job
The job frequently fails during `ctest_build`, and the log shows

    sccache: Compiler killed by signal 9

It does not compile much anyway, so disable sccache pending further
investigation.
2023-06-13 11:23:49 -04:00
Brad King
15b1cdd67b ci: Update ISPC 1.20.0 macOS binary hashes
The ISPC 1.20.0 release page on GitHub replaced existing macOS release
binaries with new ones.  Update the hashes added by commit 44d13f50a2
(ci: Update to ISPC 1.20.0, 2023-05-09, v3.27.0-rc1~110^2).
2023-06-13 10:44:24 -04:00
Brad King
679d201df7 gitlab-ci: Update HIP job to ROCm 5.5 2023-06-02 09:46:47 -04:00
Brad King
427b0d24ba ci: Update HIP image to ROCm 5.5 on Ubuntu 22.04 2023-06-02 09:46:47 -04:00
Ben Boeckel
0183e1bca3 cxxmodules: remove CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP variable
It is now subsumed by the UUID setting completely.
2023-06-01 14:43:26 -04:00
Brad King
4a84f71049 ci: Provide cppdap in extdeps jobs
Debian 10 and Fedora 37 do not yet package cppdap, so our
base images do not include it.  Build it in extdeps jobs.
2023-05-26 09:36:42 -04:00
Brad King
1689e0a118 ci: Subsume Clang C++ modules testing in main Fedora+Clang jobs
Fedora 38 comes with LLVM/Clang 16.0, which supports the features we
need for C++ modules.
2023-05-22 17:16:13 -04:00
Brad King
bdaa9e1e4e ci: use Fedora 38 images and environments 2023-05-22 17:16:12 -04:00
Brad King
b69c63d3aa ci: update Linux image to Fedora 38 2023-05-22 17:16:12 -04:00
Brad King
9c388fb064 ci: Remove nlohmann-json from Fedora base image
Revert commit f24c6ae5b8 (ci: Add nlohmann-json to Fedora base image,
2023-05-17).  The previously-upcoming dependency on nlohmann-json has
been replaced with our existing dependency on jsoncpp.
2023-05-22 17:16:12 -04:00
Brad King
d9d061d19f ci: Disable sccache in clang-analyzer job
The `ccc-analyzer` compiler wrapper preprocesses differently
for clang-analyzer than for normal compilation.  In particular,
the `__clang_analyzer__` preprocessor definition is added.

This does not interact well with `sccache` because it indexes based on
the compiler's normal preprocessing but stores results from the entire
`ccc-analyzer` invocation.
2023-05-22 17:16:12 -04:00
Brad King
f1438379c2 Merge topic 'test-bootstrap'
80181da866 Tests: Add option to control timeout of BootstrapTest
21df34b255 Tests: Modernize name of option to control existence of BootstrapTest

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8491
2023-05-19 08:46:23 -04:00
Brad King
9939f606a6 Merge topic 'cxxmodules-private-between-targets'
d38779df2a ci: Enable RunCMake.CXXModules collation cases in clang jobs
69e4525241 Tests/CXXModules: add example for private modules between targets
18f87c87f8 cmCxxModuleMapper: track whether modules are private or not
56f7d6f827 cmCxxModuleMapper: add a structure to represent BMI locations
8207a3a266 cmDyndepCollation: add a query for visibility of an object's modules
e8efcbec8c iwyu: ignore `std::remove_reference` requirements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8476
2023-05-19 08:35:17 -04:00
Brad King
21df34b255 Tests: Modernize name of option to control existence of BootstrapTest 2023-05-18 13:41:31 -04:00
Brad King
51c343b788 ci: Enable C++20 module testing with VS 2022 on ARM64 2023-05-18 09:15:14 -04:00
Brad King
d38779df2a ci: Enable RunCMake.CXXModules collation cases in clang jobs
Since commit 069a32b03c (Tests/RunCMake/CXXModules: split out
collation-requiring tests, 2022-11-28, v3.26.0-rc1~243^2~4)
these cases require explicit configuration.
2023-05-18 08:44:23 -04:00
Brad King
406a103318 VS: Add support for C++ module internal partitions in VS 17.6 and newer
VS 17.6 now implements `ScanSourceforModuleDependencies` using the same
`cl /scanDependencies` scanner that our Ninja generator uses.  It can
distinguish module internal partitions from module interface units based
on their content.  Switch from `CompileAsCppModule` to `CompileAsCpp`
for `CXX_MODULES` sources so that MSBuild can scan and classify them.
2023-05-17 11:59:24 -04:00
Brad King
f24c6ae5b8 ci: Add nlohmann-json to Fedora base image
We need version 3.11.2 or higher, which Debian 10 does not package,
so leave it out of the Debian base images.
2023-05-17 09:50:24 -04:00
Brad King
30e4be0d1b ci: Use distro packaged clang-tidy headers in Fedora base image
Since commit 703f39354e (ci: add clang-tidy development headers to
Fedora base image, 2022-08-31, v3.25.0-rc1~215^2), Fedora has added the
`clang-tools-extra-devel` package.
2023-05-17 09:50:17 -04:00
Brad King
3a20a5f149 gitlab-ci: Move macOS+Xcode universal binaries job to arm64
Over time we are adding `arm64` hosts and removing `x86_64` hosts.
2023-05-10 10:13:01 -04:00
Brad King
5210b98ec2 gitlab-ci: Move macOS Ninja Multi-Config nightly job to arm64 architecture 2023-05-10 10:13:00 -04:00
Brad King
44d13f50a2 ci: Update to ISPC 1.20.0 2023-05-09 14:26:55 -04:00
Brad King
195339e7ac gitlab-ci: Add job testing Intel 2021.9.0 compilers on Windows 2023-05-01 15:51:32 -04:00
Brad King
1b44973343 gitlab-ci: Add job testing IntelLLVM 2023.1.0 compilers on Windows 2023-05-01 15:51:21 -04:00
Jannik Alber
1d6db66179 CPack: Add Inno Setup generator 2023-04-28 09:33:28 -04:00
Brad King
9b0dc652ff ci: Provide Inno Setup tools to some Windows CI jobs 2023-04-27 21:55:18 +02:00
Brad King
99bf8418ee ci: Update to Python 3.11.3 in Windows jobs
Use the official embedded distribution `.zip` files,
but put copies at URLs we control.
2023-04-05 15:03:14 -04:00
Brad King
3532823dd7 ci: De-duplicate Windows test script for NMake job
Move job-specific setup to an environment script.
2023-04-05 10:47:49 -04:00
Brad King
3f1a1bad76 ci: De-duplicate Windows test script for JOM job
Move job-specific setup to an environment script.
2023-04-05 10:47:32 -04:00
Brad King
e2cf20e58c ci: De-duplicate Windows test script for Borland jobs
Move job-specific setup to environment scripts.
2023-04-05 10:47:05 -04:00
Brad King
8af9a52d3e ci: De-duplicate Windows test script for MSVC v71 NMake job
Move job-specific setup to an environment script.
2023-04-05 10:46:48 -04:00
Brad King
430aa379d4 ci: De-duplicate Windows test script for OpenWatcom job
Move job-specific setup to an environment script.
2023-04-05 10:46:15 -04:00
Brad King
919de8785b ci: Patch HDF5 Fortran compiler wrappers in Fedora jobs
In Fedora's HDF5 packages for OpenMPI and MPICH, the `h5pfc` compiler
wrappers for Fortran use the wrong search path for their Fortran
modules.  Patch them locally in CI jobs until it is fixed in Fedora
upstream.
2023-03-30 15:05:39 -04:00
Brad King
1d1ee2b049 Merge topic 'ci-FindHDF5'
d38c752de2 ci: Enable FindHDF5 tests on Linux builds
28c4945a8a ci: Add HDF5 to Debian and Fedora base images
ad9e151045 Tests: Add cases covering FindHDF5 variables and imported targets
0e87e6c1a4 Tests: Add FindMPI test environment modification option
ee075a53c8 FindHDF5: Record compiler wrapper checks to configure log
72915b1068 FindHDF5: Fix compiler wrapper checks with spaces in path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8378
2023-03-30 07:22:17 -04:00
Brad King
d38c752de2 ci: Enable FindHDF5 tests on Linux builds 2023-03-29 17:18:30 -04:00
Brad King
28c4945a8a ci: Add HDF5 to Debian and Fedora base images 2023-03-29 17:18:30 -04:00
Brad King
0e87e6c1a4 Tests: Add FindMPI test environment modification option
Provide a way to configure an environment specific to this test.
Avoid setting the environment globally for it in CI jobs.
2023-03-29 17:18:30 -04:00
nega
f05bd762f5 ci: Enable FindOpenAL test on macOS jobs 2023-03-29 13:42:06 -04:00
Brad King
be1549d950 ci: Enable C++ modules tests with LLVM/Clang 16.0 on Windows
This works only with the GNU-like front-end and the Ninja generator.
2023-03-21 09:00:03 -04:00
Brad King
eb93e1ff18 ci: Update LLVM/Clang to 16.0 in nightly CI jobs on Windows 2023-03-21 09:00:03 -04:00
CheesyNacho10
e36e455b7c FindwxWidgets: Add an imported target 2023-03-08 16:39:38 -05:00
Brad King
42c84b1e2e ci: Add wxWidgets to Debian and Fedora base images 2023-03-08 16:38:33 -05:00
Brad King
617b8df7cf Merge topic 'clang-16-cxx-modules'
3fe8e33f27 Clang: Record Clang 16.0 flags for our experimental C++ modules support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !8285
2023-03-06 08:59:21 -05:00
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
1c1f67a77e Merge topic 'ci-package-pipeline'
7c60a2625d gitlab-ci: Optionally upload release packages to custom URL
fc8a981893 gitlab-ci: Generalize package and help upload URLs
f73649823b gitlab-ci: Stage unsigned release package artifacts in a dedicated directory
0929221ca3 gitlab-ci: Simplify Windows packaging pipeline
ce2e825306 gitlab-ci: Simplify macOS packaging jobs
05531a7c4e gitlab-ci: add pre-build and post-build steps to Windows
5ab92d8e71 gitlab-ci: add pre-build and post-build steps to macOS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8266
2023-03-01 09:12:53 -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
557c3934ee gitlab-ci: Add nightly jobs covering macOS universal binaries on x86_64 2023-02-21 12:25:47 -05:00
Brad King
f83fecded0 Merge topic 'ci-cxx-modules-clang'
65ff605e44 ci: use the latest clang-scan-deps options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8208
2023-02-16 11:20:50 -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
1e35257ee1 ci: Enable FindPatch tests on Windows VS builds
The `patch` tool comes with Git for Windows, which is installed on our
Windows CI hosts as part of running their gitlab-runner.
2023-02-13 12:35:46 -05:00
Brad King
49f32b27ed Merge topic 'test-https-connections'
3350c17451 ci: Enable file(DOWNLOAD) TLS_VERIFY test case in CI jobs
17b47da3d8 Tests: Add test for file(DOWNLOAD) with TLS_VERIFY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8194
2023-02-11 06:33:20 -05:00
Brad King
3350c17451 ci: Enable file(DOWNLOAD) TLS_VERIFY test case in CI jobs 2023-02-10 12:22:00 -05:00
Brad King
61f271f6ed Merge topic 'feature/sphinx-linkcheck'
6789af36bf Help: Fix broken links found by `linkcheck`
8f4bd3bf7e ci: Check for broken links when build HTML manual

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8177
2023-02-08 11:44:57 -05:00
Alex Turbov
8f4bd3bf7e ci: Check for broken links when build HTML manual 2023-02-07 23:32:48 +04: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
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
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
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
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
Robert Maynard
9d012b1f69 FindCUDAToolkit: Ensure that paths provided have no symlinks
Fixes: #24188
2022-11-30 16:39:00 -05:00
Brad King
f72c405d4e Merge topic 'ci-nvhpc'
16a5c36795 gitlab-ci: add nightly job testing NVHPC with Ninja on Linux
9474d02386 Tests: Clarify CudaOnly.SeparateCompilationPTX output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7946
2022-11-29 10:39:40 -05:00
Brad King
a7a7a76e02 Merge topic 'msvc-cxx-no-optin-experimental-flag'
12e4bc73cb MSVC: don't opt into dyndep support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7965
2022-11-29 10:22:48 -05:00
Brad King
16a5c36795 gitlab-ci: add nightly job testing NVHPC with Ninja on Linux 2022-11-28 18:05:13 -05:00
Ben Boeckel
12e4bc73cb MSVC: don't opt into dyndep support
Instead, just set the variables for how scanning works since that is
part of the compiler mechanisms.

Fixes: #24198
2022-11-28 18:02:51 -05:00
Brad King
99370e990e gitlab-ci: add jobs to test with Clang and LLVMFlang on Fedora
We already have `t:debian10-{makefiles,ninja}-clang` jobs covering old
versions of Clang with Makefile and Ninja generators.  Complement them
with new `t:fedora37-{makefiles,ninja}-clang` jobs covering recent
versions of Clang.

Fedora 37 now packages LLVMFlang, so enable Fortran tests with that
compiler too.

Issue: #22387
2022-11-18 09:13:51 -05:00
Brad King
757d9f1507 gitlab-ci: use Fedora 37 images and environments 2022-11-17 08:23:52 -05:00
Brad King
919ac4c937 ci: add LLVMFlang compiler to Fedora base image
Also explicitly install `clang`.

Issue: #22387
2022-11-17 08:23:52 -05:00
Brad King
960a2cf124 ci: update Linux image to Fedora 37 2022-11-17 08:23:52 -05:00
Brad King
7ef3638454 ci: Enable FindOpenMP tests on macOS Ninja and Makefiles jobs
Since Apple does not distribute the OpenMP header and library
with its AppleClang compiler, download them as part of the jobs.
2022-11-14 14:26:10 -05:00
Brad King
4bf832086a Merge topic 'ci-windows-arm64'
09c1b1db07 gitlab-ci: Add windows-arm64 native jobs for Ninja and VS
61ebd7d083 ci: Download cmake on windows-arm64
93a5d89b42 ci: Teach cmake download script on Windows to branch on host architecture
1ccffcf0ea ci: Factor out helper to load python into environment on Windows
781303c0e2 ci: Factor out helper to load qt into environment on Windows
b0d16c7f74 Tests: Fix CTest.UpdateGIT under repo-local defaultBranch config

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !7905
2022-11-14 10:20:32 -05:00
Brad King
38c8866dd1 Merge topic 'msvc-19.34-cpp-modules'
0e9782b336 msvc: bless MSVC 19.34 support for C++ modules as experimental

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7745
2022-11-14 10:18:21 -05:00
Ben Boeckel
0e9782b336 msvc: bless MSVC 19.34 support for C++ modules as experimental
Visual Studio 17.4 now contains official support for what CMake needs.
2022-11-11 16:54:05 -05:00
Brad King
09c1b1db07 gitlab-ci: Add windows-arm64 native jobs for Ninja and VS
Add Windows ARM64 native CI jobs to build and test with Ninja,
and to test with VS.

Issue: #23624
2022-11-11 15:05:30 -05:00
Brad King
61ebd7d083 ci: Download cmake on windows-arm64 2022-11-11 15:05:30 -05:00
Brad King
93a5d89b42 ci: Teach cmake download script on Windows to branch on host architecture 2022-11-11 15:05:30 -05:00
Brad King
1ccffcf0ea ci: Factor out helper to load python into environment on Windows 2022-11-11 15:05:30 -05:00
Brad King
781303c0e2 ci: Factor out helper to load qt into environment on Windows 2022-11-11 15:05:30 -05:00
Brad King
b0f02511e5 Merge topic 'ci-clang15-windows'
46b2849550 ci: Update LLVM/Clang to 15.0 in nightly CI jobs on Windows
3eb94e4d51 ci: Simplify LLVM/Clang CI job specs on Windows
8ba5835c8d ci: Factor out helper to load clang into environment on Windows
bf2e4a2e85 ci: Factor out helper to load ninja into environment on Windows
93ff726114 Tests: Fix TryCompile bad source case for clang-cl 15 on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7897
2022-11-11 08:26:32 -05:00
Brad King
46b2849550 ci: Update LLVM/Clang to 15.0 in nightly CI jobs on Windows 2022-11-10 13:24:57 -05:00
Brad King
3eb94e4d51 ci: Simplify LLVM/Clang CI job specs on Windows
Move environment setup to job-specific scripts so we can reuse
the common `.cmake_test_windows_external` code path.
2022-11-10 13:24:51 -05:00
Brad King
8ba5835c8d ci: Factor out helper to load clang into environment on Windows 2022-11-10 13:24:31 -05:00
Brad King
bf2e4a2e85 ci: Factor out helper to load ninja into environment on Windows 2022-11-10 12:57:55 -05:00
Brad King
7299be0765 Merge topic 'ci-swift-5.7'
48ea2ce504 ci: Update debian10-ninja job to use Swift 5.7.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7860
2022-11-03 08:19:04 -04:00
Brad King
3624295c9b ci: add MSYS Makefiles nightly CI job
Use the MinGW/MSYS 1.0 distribution from `mingw.osdn.io`.
2022-11-02 17:17:02 -04:00
Brad King
01c58daec7 ci: add MinGW Makefiles nightly CI job
Use the MinGW/MSYS 1.0 distribution from `mingw.osdn.io`.
2022-11-02 17:16:46 -04:00
Brad King
48ea2ce504 ci: Update debian10-ninja job to use Swift 5.7.1 2022-11-02 13:28:52 -04:00
Kyle Edwards
18d2bd71af clang-tidy module: build as release, output on test failure
Build the module with -DCMAKE_BUILD_TYPE=Release, and run ctest
with --output-on-failure.
2022-10-26 18:13:13 -04:00
Kyle Edwards
0a2093d0c5 clang-tidy module: add test framework 2022-10-14 11:09:38 -04:00
Igor-Mikhail-Valentin Glebov
d6f5e67f7b ci: add clang-tidy plugin to clang-tidy job 2022-10-12 13:39:30 -04:00
Kyle Edwards
c239e7c259 ci: add include-what-you-use to Fedora base image 2022-10-04 13:30:52 -04:00
Brad King
9c8c965435 ci: Revert "add clang-tidy to Debian x86_64 base image"
Revert commit 0ac9ec47f6 (ci: add clang-tidy to Debian x86_64 base
image, 2022-09-20).  Our clang-tidy job runs under Fedora, and we need
the plugin to compile there anyway, so lints like IWYU will best be done
in the Fedora image.

Issue: #23912
2022-09-29 11:19:42 -04:00
Kyle Edwards
0ac9ec47f6 ci: add clang-tidy to Debian x86_64 base image
Issue: #23912
2022-09-22 11:44:59 -04:00
Brad King
94b27ccc36 ci: add support for gitlab-runner 'shell = pwsh' executor
Run powershell child scripts using the same powershell tool as the
parent script.
2022-09-12 12:47:42 -04:00
Brad King
906b1a0bc4 ci: allow powershell variables assigned in env scripts to persist
Load env scripts with `.` sourcing instead of `Invoke-Expression`.
This allows powershell variables to persist, much like bash.

Leave helper script loading unchanged, as those scripts may set
powershell variables that we do not want to persist.
2022-09-12 12:42:25 -04:00
Kyle Edwards
703f39354e ci: add clang-tidy development headers to Fedora base image
Prepare to build our own clang-tidy plugin in CI.
2022-08-31 15:07:20 -04:00
Dawid Wróbel
e706da5f7e FindOpenSP: Add module to find the OpenSP library
OpenSP has not seen a release in seventeen years, so is unlikely to ever
provide a CMake package configuration file.  Add a find module instead.
2022-08-30 13:55:07 -04:00
Brad King
4bcdf1b992 ci: add OpenSP to Debian and Fedora base images 2022-08-30 12:46:03 -04:00
Brad King
3490d7a9fc ci: Enable MSVC C++ module support tests
Since commit b87645b6a5 (gitlab-ci: Update non-packaging Windows builds
to MSVC 14.33 toolset, 2022-08-18), the version of MSVC used in CI test
jobs supports the `cl -scanDependencies` functionality we need to
support C++ modules.  Enable the corresponding tests.
2022-08-22 16:50:51 -04:00
Brad King
fbef4c6ced Merge topic 'ci-linux-extdeps'
b55152e7ad gitlab-ci: add jobs to test CMake with external dependencies on Linux
6a05d107ca ci: add CMake external build dependencies to Debian and Fedora base images
d3c1b8a491 jsoncpp: Require version 1.6.0 when using system-provided library
68d3ca7008 Tests: Fix RunCMake.FileAPI test with jsoncpp < 1.7.5

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7592
2022-08-19 07:20:18 -04:00
Brad King
dc4c0e29a4 Merge topic 'ci-cmake-update'
05a1464689 ci: use CMake 3.24.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7590
2022-08-19 07:17:34 -04:00
Brad King
b55152e7ad gitlab-ci: add jobs to test CMake with external dependencies on Linux
Test that CMake works without its bundled dependencies.
For some dependencies, test using the minimum supported version.
2022-08-18 15:49:08 -04:00
Brad King
6a05d107ca ci: add CMake external build dependencies to Debian and Fedora base images 2022-08-18 15:49:08 -04:00
Brad King
05a1464689 ci: use CMake 3.24.1 2022-08-18 10:01:20 -04:00
Brad King
e2112b3778 Merge topic 'cpp-named-module-support-msvc'
4f95e6b284 ci: test BMI exporting and installation with GCC in CI
c49d5f137b RunCMake/CXXModules: add a "deep-chain" test
297e0f4dce cmCxxModuleMapper: support MSVC module map format
b3c2880cb2 cmCxxModuleMapper: track transitive modules for MSVC
a43713d615 CTestCustom: ignore `cm::optional` uninitialized memory false positive
b90de0b492 RunCMake/CXXModules: support MSVC extensions
a84c186a7d cmScanDepFormat: support the MSVC 17.3 toolchain temporarily
d7f5064ff7 cmScanDepFormat: support P1689R5
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7481
2022-08-03 09:45:15 -04:00
Brad King
734c2f8944 Merge topic 'ci-wix-host'
9ff7fffbf4 ci: host WiX 3.14.0.6526 binaries ourselves

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7538
2022-08-03 09:37:55 -04:00
Brad King
9ff7fffbf4 ci: host WiX 3.14.0.6526 binaries ourselves
Since commit 06c6e76a12 (ci: update to WiX 3.14.0.6526, 2022-06-10,
v3.24.0-rc1~4^2~2) we download the WiX binaries from `wixtoolset.org`
instead of a `github.com` CDN.  Avoid hitting their organization site
on every CI job by hosting the binaries at `cmake.org`.
2022-08-02 14:38:22 -04:00
Ben Boeckel
4f95e6b284 ci: test BMI exporting and installation with GCC in CI 2022-08-02 10:53:38 -04:00
Brad King
71a6982e91 Merge topic 'gcc-modules-ci-missing-git'
5db79b5cd3 gitlab-ci: update to an image with git installed
3e1ace7f46 ci: add git to the CI image

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7398
2022-06-23 09:37:40 -04:00
Brad King
91e3f2e088 ci: Enable FindOpenAL test on Linux builds 2022-06-22 09:16:26 -04:00
Brad King
2f3ea66a76 Merge topic 'ci-openal'
b97d371007 ci: Add OpenAL to Debian and Fedora base images

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7394
2022-06-22 08:46:31 -04:00
Ben Boeckel
3e1ace7f46 ci: add git to the CI image
This allows the CDash submission to know what commit is being submitted
and show up in MR pipeline status links made by our workflow processes.
2022-06-21 14:17:59 -04:00
Brad King
b97d371007 ci: Add OpenAL to Debian and Fedora base images 2022-06-21 12:27:58 -04:00
Brad King
32604113b6 Merge topic 'ci-rel-win-arm64'
41ea4d4de8 ci: Rebuild Qt 6.3.0 windows-arm64 dependency with LLVM/Clang
e0d9ee0cc4 Utilities/Release: Simplify script to build Qt 6.3.0 Windows binaries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7380
2022-06-20 09:57:23 -04:00
Brad King
d94e09ec88 Merge topic 'cpp-named-module-file-sets'
07bc3b07ec gitlab-ci: test C++ modules using GCC
1b2270aa4e ci: add a Docker image to test out C++ modules with GCC
8c5a53096a Tests/RunCMake/CXXModules: add module-using examples
4151547e2f cmGlobalNinjaGenerator: use `cmModuleMapper` implementation
b43bdaff3c cmCxxModuleMapper: implement support for GCC's module map format
02d0f0e752 cmCxxModuleMapper: add source to handle module mapper contents
a046a45aad cmGlobalNinjaGenerator: add a TODO for header units
386465bf83 cmTarget: add support for C++ module fileset types
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7369
2022-06-17 11:35:12 -04:00
Brad King
41ea4d4de8 ci: Rebuild Qt 6.3.0 windows-arm64 dependency with LLVM/Clang
In commit 7a21173b0e (gitlab-ci: Add job to build Windows arm64
binaries, 2022-06-13, v3.24.0-rc1~4^2~1) we built the Qt binaries using
the MSVC 14.32 toolset targeting arm64.  However, the `cmake-gui` built
with them does not start, perhaps due to a bug in MSVC's ARM64 support.
Run the `Utilities/Release/win/qtbase-6.3.0-win-msvc.cmake` script for
`i386` and `x86_64`.  Run it for `arm64` with the `clang-cl` argument.

Issue: #21902
2022-06-17 11:04:11 -04:00
Ben Boeckel
07bc3b07ec gitlab-ci: test C++ modules using GCC 2022-06-16 10:28:34 -04:00
Ben Boeckel
1b2270aa4e ci: add a Docker image to test out C++ modules with GCC 2022-06-16 10:28:34 -04:00
Brad King
dfa5401af6 ci: use CMake 3.24.0-rc1 2022-06-14 14:21:01 -04:00
Brad King
7a21173b0e gitlab-ci: Add job to build Windows arm64 binaries
Base it on the approach from commit 4c7c66dcf5 (gitlab-ci: Add jobs to
make Windows x86_64 and i386 packages, 2022-05-19).  Leave out the
packaging and upload steps for now because they are only for the nightly
binaries, and will need a new release of CPack to pass the `arm64`
architecture to WiX.

Issue: #21902
2022-06-13 15:04:24 -04:00
Brad King
06c6e76a12 ci: update to WiX 3.14.0.6526
This version supports the `arm64` architecture.
2022-06-13 15:02:51 -04:00
Brad King
cca3a73ef0 ci: Factor out Windows x86-family-specific package configuration 2022-06-13 15:02:51 -04:00
Brad King
add3dc9508 ci: Re-order logic for downloading Qt during packaging
Prepare to support per-architecture URLs.
2022-06-13 15:02:51 -04:00
Brad King
3ed06404bf gitlab-ci: add nightly job testing Ninja Multi-Config on Windows 2022-06-07 12:38:50 -04:00
Brad King
e39acc2b3a gitlab-ci: add nightly job testing Ninja Multi-Config on macOS 2022-06-07 12:21:02 -04:00
Brad King
d14349c907 ci: Enable ISPC tests on Linux, Windows, and macOS nightly builds 2022-06-06 17:00:07 -04:00
Brad King
49996faaac ci: remove ISPC from the Fedora CI image
Revert commit 5ece12b7e4 (gitlab-ci: add ISPC to the Fedora CI image,
2020-08-18, v3.19.0-rc1~244^2).  Later we will download ISPC in specific
jobs.

Update a `RunCMake.NinjaMultiConfig` test expectation to account for
a change to the Qt deployed on Fedora 36.
2022-06-06 16:59:25 -04:00
Brad King
3e791592ad gitlab-ci: init macOS and Windows jobs with per-CMAKE_CONFIGURATION scripts
Apply the approach from commit 747940157f (gitlab-ci: init environment
with per-CMAKE_CONFIGURATION shell scripts, 2021-03-12,
v3.21.0-rc1~480^2~4) to macOS and Windows too.
2022-06-06 13:52:30 -04:00
Brad King
0faf485de2 Merge topic 'ci-ninja-1.11.0'
62689fcf9c ci: update to use ninja 1.11.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7319
2022-06-03 09:46:18 -04:00
Brad King
62689fcf9c ci: update to use ninja 1.11.0 2022-06-02 12:38:00 -04:00
Brad King
9eb81b2f9a Merge topic 'ci-fedora-36'
ef6a7921e5 gitlab-ci: use Fedora 36 images and environments
483ff3b903 ci: update Linux image to Fedora 36
13c5153ccd ci: make rvm version comments consistent
6c08dd972c clang-tidy: suppress `google-readability-casting` lint
17b7bbf2a0 clang-tidy: suppress new `readability-identifier-length` lint
16e6e4e7dd cmFileCommand: remove an unnecessary cast
b89c085237 clang-tidy: fix `readability-static-definition-in-anonymous-namespace` lints
c8c9d7de03 clang-tidy: fix `bugprone-exception-escape` lints
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7271
2022-05-24 10:05:33 -04:00
Ben Boeckel
ef6a7921e5 gitlab-ci: use Fedora 36 images and environments 2022-05-24 09:09:45 -04:00
Ben Boeckel
483ff3b903 ci: update Linux image to Fedora 36 2022-05-24 09:09:44 -04:00
Brad King
13c5153ccd ci: make rvm version comments consistent 2022-05-24 09:09:44 -04:00
Brad King
4c7c66dcf5 gitlab-ci: Add jobs to make Windows x86_64 and i386 packages
Run CPack in a separate job for nightly binaries, and not at all for
release binaries.  Unlike macOS disk images (.dmg), we cannot sign the
binaries inside Windows installers (.msi) after-the-fact.  Instead,
produce enough artifacts from the build job to sign and package release
binaries manually.

Port build settings from `Utilities/Release/win/x86/Dockerfile` and its
helper scripts.
2022-05-19 15:25:55 -04:00
Brad King
28dc5ea910 Merge topic 'ci-python'
2c140ac7b1 ci: Avoid finding Python via Windows Registry

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7203
2022-04-26 10:27:20 -04:00
Brad King
2c140ac7b1 ci: Avoid finding Python via Windows Registry
Since commit 313ea361b0 (CMake: Use FindPython instead of
FindPythonInterp to build CMake itself, 2022-04-21), CI jobs on some
Windows hosts have been finding Python via the Windows Registry.
Explicitly disable the registry search so that the CI jobs find the
Python that we download and put in the PATH inside the job.
2022-04-26 09:29:37 -04:00
Brad King
7d98d464b4 ci: Enable FindICU test on Linux builds 2022-04-22 10:25:59 -04:00
Brad King
2228e545e1 ci: Add libicu to Debian and Fedora base images 2022-04-22 10:24:29 -04:00
Brad King
02a0ecd0ba Merge topic 'ci-cmake-update'
ca4d5d366d ci: use CMake 3.23.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7172
2022-04-14 09:22:35 -04:00
Brad King
ca4d5d366d ci: use CMake 3.23.1 2022-04-12 13:15:15 -04:00
Sergiu Deitsch
171d45c039 FindJNI: added components and imported targets 2022-04-04 19:46:32 +02:00
Brad King
97f4aa1f05 ci: Add OpenJDK to Debian and Fedora base images
This enables the `JavaExportImport` test in CI.
2022-03-21 16:30:58 -04:00
Brad King
78d0613695 ci: Drop p4 binary checksum because the download URL is not stable
In commit f9526f39a1 (ci: Add bzr and p4 to Debian and Fedora base
images, 2022-02-21) we checked the SHA-256 hash of the Perforce binary.
However, content at the download URL has changed in just the last few
weeks, so we cannot consider it stable.
2022-03-18 09:40:34 -04:00
Brad King
8aeabc9d6a Merge topic 'ci-cuda-11.6'
1f601753d7 gitlab-ci: add jobs testing cuda11.6 with nvcc and clang 13
7716750062 ci: add cuda11.6 base image
77bdcc949d gitlab-ci: run CUDA and HIP test jobs in any non-MR pipeline

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7038
2022-03-04 09:02:25 -05:00
Brad King
1f601753d7 gitlab-ci: add jobs testing cuda11.6 with nvcc and clang 13 2022-03-03 12:46:47 -05:00
Brad King
7716750062 ci: add cuda11.6 base image 2022-03-03 12:02:35 -05:00
Brad King
b88f7aad63 ci: add nightly CI job to build CMake in-place 2022-03-02 09:47:02 -05:00
Brad King
2a7ac62c04 ci: Compute processor count earlier in ctest_standalone.cmake
Compute it early enough to use in the configure step.
2022-03-02 09:47:02 -05:00
Brad King
1613d87dee ci: Rename ctest_test_external.cmake to ctest_standalone.cmake
The script is a standalone ctest script that runs all steps.
It can be used for more than just external tests.
2022-03-02 09:47:02 -05:00
Brad King
ac37e99453 ci: Rename variable CMake_SKIP_INSTALL to CMAKE_CI_NO_INSTALL
The latter follows our convention for other variable names.
2022-03-02 09:47:02 -05:00
Brad King
c1479f08a8 ci: Enable Swift tests in debian10-ninja job in non-MR pipelines
The Swift compiler is too big to put in the Debian base image,
so download it in this specific job instead.
2022-02-25 13:33:46 -05:00
Brad King
4db7020811 ci: Move debian10_ninja job environment to shell script 2022-02-25 13:07:18 -05:00
Brad King
0e7172e615 ci: Add Swift compiler runtime dependencies to Debian base image
The actual compiler is too large to put in the base image.
Install its dependencies so we can download and run it in a job.
Note that Swift binaries are only available for `x86_64`.
2022-02-25 13:07:01 -05:00
Brad King
46da86dcd9 ci: Verify content of ironpython package in Debian base image
Also clean up more temporary files.
2022-02-25 12:07:21 -05:00
Brad King
c4b305da63 ci: Explicitly enable CTest.Update{BZR,CVS,GIT,HG,P4,SVN} tests
Avoid relying on heuristics to enable these tests.
Be sure they run in CI where expected.
2022-02-22 14:01:36 -05:00
Brad King
f9526f39a1 ci: Add bzr and p4 to Debian and Fedora base images
Perforce does not provide binaries for `aarch64`, so leave it out for
that architecture.

Fedora now packages `breezy` instead of the original `bzr`. Note that
breezy does not have the xmloutput plugin needed for `bzr log --xml`.
This is also why commit 1972a75536 (Tests: Drop CTestUpdate.BZR test
check for xmloutput plugin, 2022-02-04) observed that there is no
`bzr xmlplugins` command.
2022-02-22 13:58:59 -05:00
Brad King
4b90688aa0 ci: Explicitly disable Java tests on Windows with Borland and Open Watcom
Extend the change from commit 840fa28d3d (ci: Explicitly disable Java
tests on Windows, 2021-12-16) to cover Borland and Open Watcom builds.
2022-02-14 10:11:49 -05:00
Brad King
90ef30c09d ci: Explicitly disable Java tests on Windows Clang builds
Extend the change from commit 840fa28d3d (ci: Explicitly disable Java
tests on Windows, 2021-12-16) to cover LLVM/Clang builds on Windows too.
2022-02-10 09:20:05 -05:00
Brad King
c1f4bd792b ci: Add LLVM/Clang 13.0 nightly CI jobs on Windows
Add jobs covering the `clang-cl` front-end with Ninja and NMake.
Add a job covering the `clang++` front-end with Ninja.
2022-02-04 08:24:53 -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
c76abba044 gitlab-ci: update to Fedora 35 base images 2022-02-01 17:20:29 -05:00
Brad King
1729e1292d ci: update to Fedora 35 for Linux base images 2022-02-01 17:20:29 -05:00
Brad King
4aedf84da3 Merge topic 'ci-assertions'
45feab3c00 gitlab-ci: enable assertions on fedora34-ninja jobs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6927
2022-02-01 10:25:50 -05:00
Brad King
45feab3c00 gitlab-ci: enable assertions on fedora34-ninja jobs
We should have at least one CI job in merge request pipelines that
builds CMake with assertions enabled.  We avoid using the `Debug`
configuration in order to keep CI artifacts small, so instead use
the `Release` configuration without `-DNDEBUG`.
2022-01-31 11:34:12 -05:00
Brad King
5c9310c714 ci: Enable ccmake on Windows 2022-01-19 10:53:09 -05:00
Brad King
e217153dc0 ci: Explicitly disable Java tests on VS builds
Extend the change from commit 840fa28d3d (ci: Explicitly disable Java
tests on Windows, 2021-12-16) to cover VS builds too.
2021-12-22 09:09:33 -05:00
Brad King
85a07b4b49 ci: Explicitly disable Java tests on VS builds
Extend the change from commit 840fa28d3d (ci: Explicitly disable Java
tests on Windows, 2021-12-16) to cover VS builds too.
2021-12-22 09:09:08 -05:00
Brad King
4d471f6630 Merge topic 'ci-windows-no-java'
840fa28d3d ci: Explicitly disable Java tests on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6807
2021-12-16 11:08:41 -05:00
Brad King
840fa28d3d ci: Explicitly disable Java tests on Windows
Avoid searching for a Java installation on Windows hosts.
This will allow some CI hosts to have Java for other projects.

We already do this on macOS.  While at it, clarify the macOS setting.
2021-12-16 11:03:30 -05:00
Brad King
9f5c872ed1 ci: Exclude spuriously failing test from JOM nightly CI job
Since commit 3b9975d9b5 (ci: Add JOM nightly CI job, 2021-11-17) the
`ExternalProject` test often fails spuriously with an internal error
message from JOM.  Exclude it for now pending further investigation.

Prior to covering JOM in CI, it was covered by a standalone nightly
build that excluded the `ExternalProject` test for the same reason.
2021-12-09 10:42:13 -05:00
Brad King
5cc6d7058a Merge topic 'ci-gmock'
fae34ea007 ci: add gmock to Debian base images

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6746
2021-11-19 09:08:16 -05:00
Brad King
fae34ea007 ci: add gmock to Debian base images
It is already in the Fedora base images.
2021-11-18 12:54:32 -05:00
Brad King
3b9975d9b5 ci: Add JOM nightly CI job 2021-11-17 12:50:16 -05:00
Brad King
ec68e3c5c6 ci: Add NMake nightly CI job 2021-11-17 12:49:43 -05:00
Brad King
3d4073b129 gitlab-ci: Try upstream ninja development branch in a Windows nightly job 2021-11-15 10:24:32 -05:00
Brad King
658009b6fe ci: Fix vcvarsall.ps1 environment variable lookup
Previously we were relying on `VCVARSPLATFORM` and `VCVARSVERSION`
powershell script variables.  Read them from the environment directly.
2021-11-15 10:24:32 -05:00
Brad King
94ae6b7872 ci: Enable FindODBC and FindOpenMP tests on Windows VS builds
The packages comes with the Windows SDK and/or the compiler.
2021-11-12 11:13:00 -05:00
Brad King
e731afd8b3 ci: Add VS 2019 nightly CI jobs
Now that the primary VS jobs have been converted to VS 2022,
add nightly CI jobs to cover VS 2019.
2021-11-12 11:06:17 -05:00
Brad King
b63a87582f gitlab-ci: Update Windows jobs to VS 2022 2021-11-11 13:12:42 -05:00
Brad King
190d2b5d55 gitlab-ci: Update Windows jobs to VS 2022 2021-11-11 13:12:27 -05:00
Brad King
11903f1b5f ci: Add MSVC v71 NMake nightly CI job 2021-11-01 17:35:00 -04:00
Brad King
14f2dbad03 ci: Add Open Watcom 1.9 nightly CI job 2021-10-18 10:17:47 -04:00
Brad King
45d02c9fdc ci: Add Borland 5.5 and 5.8 nightly CI jobs 2021-10-13 13:59:30 -04:00
Brad King
b5a59251cb gitlab-ci: Try upstream ninja development branch in some nightly jobs 2021-10-06 13:38:57 -04:00
Brad King
ae41e325a7 Merge topic 'ci-ctest-update'
3b581ab3aa ci: Enable CTest.Update{CVS,SVN,HG} tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6596
2021-10-06 10:22:22 -04:00
Brad King
ca2bc33626 Merge topic 'find-blas-lapack-sizeof-integer'
64038fd5bc Help: Add release notes for Find{BLAS,LAPACK} BLA_SIZEOF_INTEGER option
972489ae4e Find{BLAS,LAPACK}: Provide testing of BLA_SIZEOF_INTEGER
95219365ff Find{BLAS,LAPACK}: Make possible testing of ILP64 model
2cd94f3e57 Find{BLAS,LAPACK}: Specify integer type in tests
9b69307b56 Find{BLAS,LAPACK}: De-duplicate and generalize test creation logic
91fd645d46 FindLAPACK: Stop processing if LAPACK library does not have 64-bit integer API
b8a3cea51f FindBLAS: Stop processing if BLAS library does not have 64-bit integer API
d2f5c7856f FindLAPACK: Search 32/64-bit integer API via BLA_SIZEOF_INTEGER if possible
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6407
2021-10-06 10:17:46 -04:00
Brad King
3b581ab3aa ci: Enable CTest.Update{CVS,SVN,HG} tests
Enable all three in Debian builds.  Leave out CVS in Fedora builds
because the cvs package was not built with `--enable-rootcommit`.
2021-10-05 11:06:42 -04:00
Igor S. Gerasimov
972489ae4e Find{BLAS,LAPACK}: Provide testing of BLA_SIZEOF_INTEGER 2021-10-05 23:41:36 +09:00
Brad King
9b69307b56 Find{BLAS,LAPACK}: De-duplicate and generalize test creation logic
Interpret `CMake_TEST_FindBLAS` and `CMake_TEST_FindLAPACK` as a
sequence of option assignments intermixed with vendor names.
2021-10-05 23:41:36 +09:00
Brad King
5329366527 ci: update cuda9.2 base image after DST Root CA X3 expiry 2021-10-01 10:21:39 -04:00
Brad King
bf10664032 Merge topic 'ci-use-3.21.0'
79e139e3d3 ci: use CMake 3.21.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6349
2021-07-15 10:54:40 -04:00
Ben Boeckel
79e139e3d3 ci: use CMake 3.21.0 2021-07-14 13:25:51 -04:00
Brad King
9b12ffc1e8 Merge topic 'FindBLAS-LAPACK-All'
31ac4b9165 ci: Verify that Intel MKL is found when it is the only BLAS/LAPACK
57dcde19da Find{BLAS,LAPACK}: Avoid clobbering results when no vendor is requested

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6336
2021-07-13 08:15:07 -04:00
Brad King
31ac4b9165 ci: Verify that Intel MKL is found when it is the only BLAS/LAPACK
Issue: #22403
2021-07-12 11:11:37 -04:00
Brad King
71ab24015f gitlab-ci: add job testing hip4.2 with Ninja Multi-Config 2021-07-09 13:48:28 -04:00
Brad King
2e124fa22d ci: add hip4.2 base image 2021-07-09 13:35:05 -04:00
Brad King
900617f977 Merge topic 'FindGLUT-pkg-config'
f90d15458a FindGLUT: Use pkg-config to find flags if available
f3f0401187 FindGLUT: Reduce if/else nesting and indentation
bece79f9be Tests: Add case covering FindGLUT variables and imported targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6251
2021-07-07 09:32:38 -04:00
Brad King
058253aa87 Merge topic 'ci-fixups'
46c89c77de gitlab-ci: Rename CI config variable to avoid conflict with CMAKE_BUILD_TYPE
3ede66e17a Tests: Fix newline matching in several RunCMake.* cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6298
2021-07-06 09:47:50 -04:00