This fixes a bug where calling `ctest_submit()` would result in a Done.xml
file with an empty <buildId> element.
CDash responds with a buildId when CTest submits a file. For this reason,
Done.xml needs to generated after CTest has submitted some other file to
CDash. This change also has the benefit of making Done.xml's timestamp as
late as possible, giving us a more accurate record of how long the entire
build took to complete.
faf3d7d224 VS: Add workaround for CUDA compiler PDB location with space
592064e026 VS: Drop workaround for CUDA compiler PDB location on CUDA 9.2+
fb378fc4d7 Tests: Fix Cuda test project names
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2473
b56f2db87a Testing: Add test for CMP0082
fc8955e889 add_subdirectory: Run subdirectory install rules in correct order
514f0b572e Testing: Update hard-coded line numbers to [0-9]+ in some tests
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2434
Revert commit v3.13.0-rc1~441^2 (install: Teach CODE,SCRIPT modes to
evaluate generator expressions, 2018-05-29). Unfortunately it has
been found to break existing code in a real project, e.g.
install(CODE [[
message("$<FOOBAR>")
]])
Address this regression by reverting support for the 3.13 release
series. Support can be restored later with a policy for compatibility.
Issue: #15785Fixes: #18435
CUDA Toolkit Visual Studio Integration for version 9.2 and above does
honor the `ClCompile.ProgramDataBaseFileName` field when telling `nvcc`
how to invoke `cl`. Unfortunately it does not quote paths with spaces
correctly:
-Xcompiler "... /Fd"C:\path\with space\foo.pdb" ..."
Work around this by converting the PDB location to a relative path.
Likely we could always do this, but for now make a minimal change
just for CUDA support.
Fixes: #18440
The workaround added by commit v3.12.0-rc1~227^2 (VS: Add workaround for
CUDA compiler PDB location, 2018-04-13) is not necessary on CUDA 9.2+
because the CUDA Toolkit Visual Studio Integration has fixed the
original bug and forwards the `ProgramDataBaseFileName` to the host
compiler itself. Make the workaround conditional on the CUDA version.
Issue: #18440
This command is intended for modules that issue policy warnings so
they can get the warning string from CMake in a uniform manner,
rather than duplicating the string. Several modules been updated
to include an example of the usage of this new command.
Before this change, install rules created by add_subdirectory()
would be executed after all of the top-level install rules, even
if they were declared before the top-level rules. This change
adds a new policy, CMP0082, which interleaves the add_subdirectory()
install rules with the other install rules so they are run in the
correct order.
This method offers the same definitions as `GetTargetDefines` except
that it excludes the "export" macro on shared libraries. Update call
sites to use `GetTargetDefines` instead. Some of them were incorrectly
excluding the export macro.
Teach CTest to submit Done.xml. Submission of this file indicates to
CDash that a build is complete and no more files will be uploaded. It
contains the build id returned by CDash and the current time.
This file is submitted last for a given build when using the
`ctest_submit()` command.
If submitting by PARTS, use `ctest_submit(PARTS Done)`.
The logic added by commit v3.6.0-rc1~338^2 (CMake: Extend TIMESTAMP
sub-commands with new unix time format specifier, 2016-02-16) to restore
the `TZ` environment variable does not properly handle the case in which
the variable was originally not set. Unset the variable in this case.
Fixes: #18431
f8a086a86b project(): Ensure DESCRIPTION and HOMEPAGE_URL variables are set
b27247c8df project(): Add tests verifying variables set by second project() call
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2457
If a project() call does not have DESCRIPTION or HOMEPAGE_URL
options, it must still set the relevant variables or else those variables will
inherit values from an earlier project() call. That is inconsistent with how
VERSION is handled and is likely to be unexpected. The docs were also
ambiguous about what should happen in such cases.
Found via `codespell -q 3 -I ../cmake-whitelist.txt --skip="./Utilities"`
where the whitelist consists of
```
aci
ans
behaviour
buil
convertor
dum
earch
ect
emmited
emmitted
helpfull
iff
isnt
ith
lowercased
mose
nd
nknown
nto
objext
ot
pathes
pevents
splitted
substract
superceded
supercedes
te
tim
todays
uint
upto
whitespaces
```
375b420fdf CSharp: Fix regression in VS project type selection
8b21aa0af0 VS: Fix CSharp flag selection when linking to a static C++ library
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2427
Use of `std::log10` added by commit 02c5091c90 (cmCTestRunTest: Simplify
number width computation, 2018-09-08) broke our number width computation
on some platforms where
static_cast<int>(std::log10(static_cast<size_t>(10)))
somehow produces `0` instead of `1`. Re-implement the logic to avoid
floating-point computations.
A that target contains only `.cs` sources should be generated as a
`.csproj` project even if it links to non-CSharp static libraries.
The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
(remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
2018-03-19). The reason is that the `HasLanguage` method added by
commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
wrapper for GetLanguages(), 2018-03-19) enforces its "exclusive" check
on the combined set of source file languages and the link language.
To restore the original `TargetIsCSharpOnly` semantics, update
`HasLanguage` to enforce exclusiveness only on the list of sources.
Fixes: #18239