mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 09:54:15 +00:00
VS: Fix support for nvcc flags not in our flag table
The change in commit v3.9.0-rc4~3^2 (VS: Improve workaround for CUDA -Xcompiler placement bug, 2017-06-21) accidentally appended to the `AdditionalOptions` as if it were a `;`-separated list, but it is actually a command-line string. Append with a space instead. While at it, fix the same problem for the `AdditionalOptions` added to `CudaLink` by commit v3.9.0-rc3~1^2 (CUDA: When linking device code suppress CUDA 8.0+ deprecation warnings, 2017-06-09). Fixes: #17008
This commit is contained in:
parent
3b75421515
commit
bbc1f3642c
@ -2530,7 +2530,7 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions(
|
||||
cudaOptions.RemoveFlag("AdditionalCompilerOptions");
|
||||
if (!aco.empty()) {
|
||||
aco = this->LocalGenerator->EscapeForShell(aco, false);
|
||||
cudaOptions.AppendFlag("AdditionalOptions", "-Xcompiler=" + aco);
|
||||
cudaOptions.AppendFlagString("AdditionalOptions", "-Xcompiler=" + aco);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2619,8 +2619,8 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaLinkOptions(
|
||||
// Suppress deprecation warnings for default GPU targets during device link.
|
||||
if (cmSystemTools::VersionCompareGreaterEq(
|
||||
this->GlobalGenerator->GetPlatformToolsetCudaString(), "8.0")) {
|
||||
cudaLinkOptions.AppendFlag("AdditionalOptions",
|
||||
"-Wno-deprecated-gpu-targets");
|
||||
cudaLinkOptions.AppendFlagString("AdditionalOptions",
|
||||
"-Wno-deprecated-gpu-targets");
|
||||
}
|
||||
|
||||
this->CudaLinkOptions[configName] = pOptions.release();
|
||||
|
@ -16,6 +16,11 @@ set(CMAKE_CUDA_STANDARD 11)
|
||||
add_library(CUDASeparateLibA STATIC file1.cu file2.cu file3.cu)
|
||||
|
||||
if(CMAKE_CUDA_SIMULATE_ID STREQUAL "MSVC")
|
||||
# Test adding a flag that is not in our CUDA flag table for VS.
|
||||
if(NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 8)
|
||||
string(APPEND CMAKE_CUDA_FLAGS " --ftemplate-depth 50")
|
||||
endif()
|
||||
# Test adding a flag that nvcc should pass to the host compiler.
|
||||
target_compile_options(CUDASeparateLibA PRIVATE -Xcompiler=-bigobj)
|
||||
endif()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user