summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach Mullen <zach.mullen@kitware.com>2011-03-10 20:56:55 (GMT)
committerBrad King <brad.king@kitware.com>2011-03-15 19:07:37 (GMT)
commit6b6f309c5f2fa5c327afb98ac57d0b9f4f79a980 (patch)
treec635515aeec5205a2ca99bef717b75fcc2743872
parent28cdd0a5be086004e5afedbbe5adb61be7adc9cc (diff)
downloadCMake-6b6f309c5f2fa5c327afb98ac57d0b9f4f79a980.zip
CMake-6b6f309c5f2fa5c327afb98ac57d0b9f4f79a980.tar.gz
CMake-6b6f309c5f2fa5c327afb98ac57d0b9f4f79a980.tar.bz2
Add the FILES keyword to ctest_upload command
-rw-r--r--Source/CTest/cmCTestUploadCommand.cxx36
-rw-r--r--Source/CTest/cmCTestUploadCommand.h8
-rw-r--r--Tests/CTestTestUpload/test.cmake.in2
3 files changed, 32 insertions, 14 deletions
diff --git a/Source/CTest/cmCTestUploadCommand.cxx b/Source/CTest/cmCTestUploadCommand.cxx
index 9f0954b..52fcc04 100644
--- a/Source/CTest/cmCTestUploadCommand.cxx
+++ b/Source/CTest/cmCTestUploadCommand.cxx
@@ -33,6 +33,11 @@ cmCTestGenericHandler* cmCTestUploadCommand::InitializeHandler()
//----------------------------------------------------------------------------
bool cmCTestUploadCommand::CheckArgumentKeyword(std::string const& arg)
{
+ if(arg == "FILES")
+ {
+ this->ArgumentDoing = ArgumentDoingFiles;
+ return true;
+ }
return this->CheckArgumentValue(arg);
}
@@ -40,18 +45,25 @@ bool cmCTestUploadCommand::CheckArgumentKeyword(std::string const& arg)
//----------------------------------------------------------------------------
bool cmCTestUploadCommand::CheckArgumentValue(std::string const& arg)
{
- cmStdString filename(arg);
- if(cmSystemTools::FileExists(filename.c_str()))
+ if(this->ArgumentDoing == ArgumentDoingFiles)
{
- this->Files.insert(filename);
- return true;
- }
- else
- {
- cmOStringStream e;
- e << "File \"" << filename << "\" does not exist. Cannot submit "
- << "a non-existent file.";
- this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
- return false;
+ cmStdString filename(arg);
+ if(cmSystemTools::FileExists(filename.c_str()))
+ {
+ this->Files.insert(filename);
+ return true;
+ }
+ else
+ {
+ cmOStringStream e;
+ e << "File \"" << filename << "\" does not exist. Cannot submit "
+ << "a non-existent file.";
+ this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
+ this->ArgumentDoing = ArgumentDoingError;
+ return false;
+ }
}
+
+ // Look for other arguments.
+ return this->Superclass::CheckArgumentValue(arg);
}
diff --git a/Source/CTest/cmCTestUploadCommand.h b/Source/CTest/cmCTestUploadCommand.h
index b8c9d9f..6c2a4c2 100644
--- a/Source/CTest/cmCTestUploadCommand.h
+++ b/Source/CTest/cmCTestUploadCommand.h
@@ -59,7 +59,7 @@ public:
virtual const char* GetFullDocumentation()
{
return
- " ctest_upload(...)\n"
+ " ctest_upload(FILES ...)\n"
"Pass a list of files to be sent along with the build results to "
"the dashboard server.\n";
}
@@ -72,6 +72,12 @@ protected:
virtual bool CheckArgumentKeyword(std::string const& arg);
virtual bool CheckArgumentValue(std::string const& arg);
+ enum
+ {
+ ArgumentDoingFiles = Superclass::ArgumentDoingLast1,
+ ArgumentDoingLast2
+ };
+
cmCTest::SetOfStrings Files;
};
diff --git a/Tests/CTestTestUpload/test.cmake.in b/Tests/CTestTestUpload/test.cmake.in
index 2ab98d7..acfa233 100644
--- a/Tests/CTestTestUpload/test.cmake.in
+++ b/Tests/CTestTestUpload/test.cmake.in
@@ -13,5 +13,5 @@ SET(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
CTEST_START(Experimental)
CTEST_CONFIGURE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
CTEST_BUILD(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
-CTEST_UPLOAD("${CTEST_SOURCE_DIRECTORY}/sleep.c" "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt")
+CTEST_UPLOAD(FILES "${CTEST_SOURCE_DIRECTORY}/sleep.c" "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt")
CTEST_SUBMIT()