Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
closes #462
There's a CMake bug affecting CUDA object libraries with RDC=true that was fixed in 3.27.5. This PR adds a warning when the visual studio generator is used with RDC=true build. Apart from that, there's another CMake bug related to object libraries that forces us to use
$<TARGET_OBJECTS:target>
. Unfortunately, this breaks ninja / make generators, so the WAR is only applied to the visual studio generator. Our Catch2 test mixes CUDA and CXX targets, because nvcc can't process Catch2 header. When CMake links object library with an executable produced by a single CXX target, we are back at linkage issues. To WAR this issue, this PR introduces a dummy CUDA target to the Catch2 runner. With this changes, I was able to successfully build RDC=true Catch2 tests on windows.Apart from that, Catch2 tests are now separated into
.cdp_0
and.cdp_1
to ease tests development. While validating separate Catch2 compilation, I noticed that this mode was broken because of direct inclusion of Catch2 headers. This PR fixes thas as well.Checklist