فهرست منبع

Merge topic 'vs-cuda-fix-flags'

bbc1f364 VS: Fix support for nvcc flags not in our flag table

Acked-by: Kitware Robot <[email protected]>
Merge-request: !1007
Brad King 8 سال پیش
والد
کامیت
dc11a20d7b
2فایلهای تغییر یافته به همراه8 افزوده شده و 3 حذف شده
  1. 3 3
      Source/cmVisualStudio10TargetGenerator.cxx
  2. 5 0
      Tests/CudaOnly/SeparateCompilation/CMakeLists.txt

+ 3 - 3
Source/cmVisualStudio10TargetGenerator.cxx

@@ -2550,7 +2550,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);
     }
   }
 
@@ -2639,8 +2639,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();

+ 5 - 0
Tests/CudaOnly/SeparateCompilation/CMakeLists.txt

@@ -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()