浏览代码

CUDA: Fix boolean interpretation of CUDA_SEPARABLE_COMPILATION

If the property is explicitly set to a non-true value we should
not treat it as true.
Brad King 8 年之前
父节点
当前提交
08fa0b4595
共有 2 个文件被更改,包括 4 次插入2 次删除
  1. 2 1
      Source/cmMakefileTargetGenerator.cxx
  2. 2 1
      Source/cmNinjaTargetGenerator.cxx

+ 2 - 1
Source/cmMakefileTargetGenerator.cxx

@@ -590,7 +590,8 @@ void cmMakefileTargetGenerator::WriteObjectBuildFile(
     std::vector<std::string> compileCommands;
     if (lang == "CUDA") {
       std::string cmdVar;
-      if (this->GeneratorTarget->GetProperty("CUDA_SEPARABLE_COMPILATION")) {
+      if (this->GeneratorTarget->GetPropertyAsBool(
+            "CUDA_SEPARABLE_COMPILATION")) {
         cmdVar = std::string("CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION");
       } else {
         cmdVar = std::string("CMAKE_CUDA_COMPILE_WHOLE_COMPILATION");

+ 2 - 1
Source/cmNinjaTargetGenerator.cxx

@@ -580,7 +580,8 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang)
   std::vector<std::string> compileCmds;
   if (lang == "CUDA") {
     std::string cmdVar;
-    if (this->GeneratorTarget->GetProperty("CUDA_SEPARABLE_COMPILATION")) {
+    if (this->GeneratorTarget->GetPropertyAsBool(
+          "CUDA_SEPARABLE_COMPILATION")) {
       cmdVar = std::string("CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION");
     } else {
       cmdVar = std::string("CMAKE_CUDA_COMPILE_WHOLE_COMPILATION");