a79ac015c6 ctest: Merge llvm-cov's .profraw files into a .profdata file for each test
5494697ed1 Tests: Add case for llvm-cov usage by ctest command line modes
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12007
Update the list of known versions.
Run the command
cmake -DBOOST_DIR=/path/to/boost_1_91_0 \
-P Utilities/Scripts/BoostScanDeps.cmake
to extract dependencies from the 1.91.0 source tree.
Dependencies differ from 1.90:
* Boost.Iostreams no longer depends on Boost.Regex
* Boost.Log no longer depends on Boost.Regex
Fixes: #27803
If the CTEST_TEST_COVERAGE_TOOL is set to LLVM-COV, use the
`llvm-profdata --merge` functionality to collect the `.profraw` files
generated by running each test into a combined `.profdata` file.
This is the file that could be used to parse or display coverage
information for each test.
Issue: #26932
Significant changes on the next major version of the IAR compiler
required some changes in CMake:
- __IAR_COMPILERBASE__ offers a fine grained versioning option
in comparisom with __IAR_SYSTEMS_ICC__, which only referred
to the IAR internal platform version.
- C++20 Language support added for Arm (v10.10.1+), where libc++
is used by default.
3e2d51e823 ASM_NASM: Detect 32-bit object formats from C or C++ target architecture
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12026
Capture `execute_process` calls' `RESULT_VARIABLE`.
We don't actually need to check the result as we presume the existing
logic is already adequate, and sometimes programs return non-zero values
as result of valid query. I.e. this is a "safe" way to broadly protect
these scripts.
Issue: #27782
Move the `<FLAGS>` placeholder to after our builtin `-f` format flag.
This ensures user-specified flags take precedence, as NASM uses
the last occurrence of the `-f` argument.
Issue: #27797
65fbe16e16 NAG Fortran: Use `-xldarg @` to pass response files to the linker
6dc46638f4 NAG Fortran: Fix response file flag for creating archives
b53d3c7cc1 Makefiles: Make logic enabling CUDA device link response files more specific
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12013
Since commit db76876db5 (Modules: Use new SOURCES_FROM_* try_compile
(1/2), 2022-09-26, v3.25.0-rc1~74^2~1) the variable containing the F90
code was named incorrectly. Thus the compilation test was performed on
an empty source file.
The `nagfor` compiler driver does not invoke the linker directly.
Instead it runs the system C compiler driver, which then invokes the
linker. Passing `@` to NAG Fortran expands the response file before
it reaches the linker, which might lead to too long linker lines.
`-Wl,@`, used since commit 10d6c3a635 (NAG: Pass response files
through front-end to the linker, 2018-08-01, v3.13.0-rc1~244^2), can
lead to wrong placement of the response file on the linker line and
doesn't work at all when the response file is the only object file
passed to the NAG Fortran frontend.
Instead use `-xldarg @` to pass a response file through to the linker
without any intermediate expansion. However, the response file
generated by Ninja can contain flags meant for the compiler driver,
so we need to disable response files for these flags altogether.
Fixes: #23577
Since commit 10d6c3a635 (NAG: Pass response files through front-end to
the linker, 2018-08-01, v3.13.0-rc1~244^2) we use `-Wl,@` instead of `@`
in order to pass the response file through the `nagfor` compiler driver
to the linker. However, this is not needed for the archiver. Create
a separate rule variable so we can use different response file flags
for archiving and linking.
Issue: #23577
12e6c14e69 PellesC: Add default -Ze flag to support compilation against Windows APIs
9db2cf5429 PellesC: Add default compilation and link flags
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12000
The Pelles C compiler requires MS extensions to support `__declspec`
and other constructs needed to use Windows APIs. Unfortunately the
flag also disables standard definitions, so restore them.
Issue: #21536
Co-authored-by: Serguei E. Leontiev <leo@sai.msu.ru>
This is not a typical pattern for find modules, and it breaks subsequent
calls to `find_package(Armadillo)`.
See also commit 38c6dd7b19 (FindArmadillo: Add support for non-wrapper
case, 2020-03-02, v3.18.0-rc1~594^2) and commit 6745af99c8 (FindArmadillo:
Fix wrapper linking with MSVC, 2025-02-05, v4.0.0-rc1~53^2).
Add a `CTEST_TEST_COVERAGE_TOOL` variable to tell CTest to integrate
with `llvm-cov` source-based code coverage by setting the
`LLVM_PROFILE_FILE` environment variable for each test.
Issue: #26932
In a cross-compilation environment, `CUDAToolkit_LIBRARY_ROOT` will
be relative to the nvcc executable, rather than the cudart library,
due to `version.json` being relative to nvcc. However,
`CUDAToolkit_LIBRARY_SEARCH_DIRS` will be set correctly, so use
`EXTRA_PATH_SUFFIXES` to search relative to each entry in the list.
118ab41984 Swift: Build with a package name by default
94faee3099 Swift: Add option to pass package name to swiftc invocation
635f71737c Swift: Factor out Swift-specific target flags
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11981
Add policy CMP0215 to emit `.swiftmodule` from a dedicated `-emit-module`
build edge for importable Swift targets in the Ninja generator.
Downstream targets can begin compiling as soon as the module interface
is ready, overlapping with upstream object compilation and linking.
When CMP0215 is NEW and CMP0157 is NEW, separate module emission is
enabled by default. The `Swift_SEPARATE_MODULE_EMISSION` target
property (initialized by the `CMAKE_Swift_SEPARATE_MODULE_EMISSION`
variable) can override this per target.
The compile edge still passes `-emit-module` so that swiftc continues
to produce `.swiftdoc`; only the `.swiftmodule` output moves to the new
edge.
Also fix swiftmodule dependency edges in cmNinjaNormalTargetGenerator
to use IsLanguageUsed instead of GetLinkerLanguage, so C/C++ targets
whose linker language propagated to Swift do not produce spurious
implicit dependencies.
Closes: #27748