From 77e5a607f266a2f136417574e08dc5b0727fec3f Mon Sep 17 00:00:00 2001
From: Andy Cedilnik <andy.cedilnik@kitware.com>
Date: Fri, 24 Feb 2006 10:55:44 -0500
Subject: [PATCH] BUG: Only add test targets when testing is enabled. Also add
 CMAKE_CFG_INTDIR when specified

---
 Source/cmGlobalGenerator.cxx | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 8f1bbe2ca5..525033dcaf 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1231,15 +1231,18 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
       "Run CPack packaging tool...", &cpackCommandLines, depends);
 
   // Test
-  cpackCommandLines.erase(cpackCommandLines.begin(), cpackCommandLines.end());
-  singleLine.erase(singleLine.begin(), singleLine.end());
-  depends.erase(depends.begin(), depends.end());
-  singleLine.push_back(this->GetCMakeInstance()->GetCTestCommand());
-  singleLine.push_back("--force-new-ctest-process");
-  cpackCommandLines.push_back(singleLine);
-  (*targets)[this->GetTestTargetName()]
-    = this->CreateGlobalTarget(this->GetTestTargetName(),
-      "Running tests...", &cpackCommandLines, depends);
+  if(mf->IsOn("CMAKE_TESTING_ENABLED"))
+    {
+    cpackCommandLines.erase(cpackCommandLines.begin(), cpackCommandLines.end());
+    singleLine.erase(singleLine.begin(), singleLine.end());
+    depends.erase(depends.begin(), depends.end());
+    singleLine.push_back(this->GetCMakeInstance()->GetCTestCommand());
+    singleLine.push_back("--force-new-ctest-process");
+    cpackCommandLines.push_back(singleLine);
+    (*targets)[this->GetTestTargetName()]
+      = this->CreateGlobalTarget(this->GetTestTargetName(),
+        "Running tests...", &cpackCommandLines, depends);
+    }
 
   //Edit Cache
   cpackCommandLines.erase(cpackCommandLines.begin(), cpackCommandLines.end());
@@ -1306,6 +1309,12 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
     cmd = "$(CMAKE_COMMAND)";
     }
   singleLine.push_back(cmd.c_str());
+  const char* cmakeCfgIntDir = mf->GetDefinition("CMAKE_CFG_INTDIR");
+  if ( cmakeCfgIntDir && *cmakeCfgIntDir && cmakeCfgIntDir[1] != '.' )
+    {
+    std::string cfgArg = "-DBUILD_TYPE=";
+    cfgArg += mf->GetDefinition("CMAKE_CFG_INTDIR");
+    }
   singleLine.push_back("-P");
   singleLine.push_back("cmake_install.cmake");
   cpackCommandLines.push_back(singleLine);
-- 
GitLab