From 1cfaa2f1a00ab2b6a72dc2e681043317e41a3d0f Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Thu, 1 Nov 2012 16:56:13 -0400
Subject: CTest: Allow SUBMIT_INDEX with CDash

If CTEST_DROP_SITE_CDASH is true then SUBMIT_INDEX is supported.
The Dart version does not matter because the server is not Dart.
---
 Source/CTest/cmCTestHandlerCommand.cxx | 2 +-
 Source/cmCTest.cxx                     | 3 +++
 Source/cmCTest.h                       | 2 ++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/Source/CTest/cmCTestHandlerCommand.cxx b/Source/CTest/cmCTestHandlerCommand.cxx
index 1957e04..0db2548 100644
--- a/Source/CTest/cmCTestHandlerCommand.cxx
+++ b/Source/CTest/cmCTestHandlerCommand.cxx
@@ -121,7 +121,7 @@ bool cmCTestHandlerCommand
     }
   if ( this->Values[ct_SUBMIT_INDEX] )
     {
-    if ( this->CTest->GetDartVersion() <= 1 )
+    if(!this->CTest->GetDropSiteCDash() && this->CTest->GetDartVersion() <= 1)
       {
       cmCTestLog(this->CTest, ERROR_MESSAGE,
         "Dart before version 2.0 does not support collecting submissions."
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 4aff64b..b12cf40 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -327,6 +327,7 @@ cmCTest::cmCTest()
   this->OutputLogFileLastTag   = -1;
   this->SuppressUpdatingCTestConfiguration = false;
   this->DartVersion            = 1;
+  this->DropSiteCDash          = false;
   this->OutputTestOutputOnTestFailure = false;
   this->ComputedCompressTestOutput = false;
   this->ComputedCompressMemCheckOutput = false;
@@ -653,6 +654,7 @@ bool cmCTest::InitializeFromCommand(cmCTestStartCommand* command)
     = this->GetCTestConfiguration("SourceDirectory").c_str();
   std::string bld_dir = this->GetCTestConfiguration("BuildDirectory").c_str();
   this->DartVersion = 1;
+  this->DropSiteCDash = false;
   for(Part p = PartStart; p != PartCount; p = Part(p+1))
     {
     this->Parts[p].SubmitFiles.clear();
@@ -719,6 +721,7 @@ bool cmCTest::InitializeFromCommand(cmCTestStartCommand* command)
       return false;
       }
     }
+  this->DropSiteCDash = mf->IsOn("CTEST_DROP_SITE_CDASH");
 
   if ( !this->Initialize(bld_dir.c_str(), command) )
     {
diff --git a/Source/cmCTest.h b/Source/cmCTest.h
index 7c71b00..7baf0a2 100644
--- a/Source/cmCTest.h
+++ b/Source/cmCTest.h
@@ -384,6 +384,7 @@ public:
 
   //! Get the version of dart server
   int GetDartVersion() { return this->DartVersion; }
+  int GetDropSiteCDash() { return this->DropSiteCDash; }
 
   //! Add file to be submitted
   void AddSubmitFile(Part part, const char* name);
@@ -549,6 +550,7 @@ private:
   bool Quiet;
 
   int  DartVersion;
+  bool DropSiteCDash;
 
   std::vector<cmStdString> InitialCommandLineArguments;
 
-- 
cgit v0.12