merged ccommand into cmake
This commit is contained in:
parent
78ce57ae5b
commit
e2925bc001
|
@ -1,132 +0,0 @@
|
||||||
/*=========================================================================
|
|
||||||
|
|
||||||
Program: Insight Segmentation & Registration Toolkit
|
|
||||||
Module: $RCSfile$
|
|
||||||
Language: C++
|
|
||||||
Date: $Date$
|
|
||||||
Version: $Revision$
|
|
||||||
|
|
||||||
Copyright (c) 2002 Insight Consortium. All rights reserved.
|
|
||||||
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
|
|
||||||
|
|
||||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
||||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. See the above copyright notices for more information.
|
|
||||||
|
|
||||||
=========================================================================*/
|
|
||||||
|
|
||||||
#include "cmMakefile.h"
|
|
||||||
#include "cmSystemTools.h"
|
|
||||||
#include "time.h"
|
|
||||||
|
|
||||||
void CMakeCommandUsage(const char* program)
|
|
||||||
{
|
|
||||||
std::strstream errorStream;
|
|
||||||
|
|
||||||
errorStream
|
|
||||||
<< "cmake version " << cmMakefile::GetMajorVersion()
|
|
||||||
<< "." << cmMakefile::GetMinorVersion() << "\n";
|
|
||||||
|
|
||||||
errorStream
|
|
||||||
<< "Usage: " << program << " [command] [arguments ...]\n"
|
|
||||||
<< "Available commands: \n"
|
|
||||||
<< " copy file destination - copy file to destination (either file or directory)\n"
|
|
||||||
<< " remove file1 file2 ... - remove the file(s)\n"
|
|
||||||
<< " time command [args] ... - run command and return elapsed time\n"
|
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
||||||
<< " write_regv key value - write registry value\n"
|
|
||||||
<< " delete_regv key - delete registry value\n"
|
|
||||||
#endif
|
|
||||||
<< std::ends;
|
|
||||||
|
|
||||||
cmSystemTools::Error(errorStream.str());
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int ac, char** av)
|
|
||||||
{
|
|
||||||
std::vector<std::string> args;
|
|
||||||
for(int i =0; i < ac; ++i)
|
|
||||||
{
|
|
||||||
args.push_back(av[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.size() > 1)
|
|
||||||
{
|
|
||||||
// Copy file
|
|
||||||
if (args[1] == "copy" && args.size() == 4)
|
|
||||||
{
|
|
||||||
cmSystemTools::cmCopyFile(args[2].c_str(), args[3].c_str());
|
|
||||||
return cmSystemTools::GetErrorOccuredFlag();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove file
|
|
||||||
else if (args[1] == "remove" && args.size() > 2)
|
|
||||||
{
|
|
||||||
for (std::string::size_type cc = 2; cc < args.size(); cc ++)
|
|
||||||
{
|
|
||||||
if(args[cc] != "-f")
|
|
||||||
{
|
|
||||||
if(args[cc] == "\\-f")
|
|
||||||
{
|
|
||||||
args[cc] = "-f";
|
|
||||||
}
|
|
||||||
cmSystemTools::RemoveFile(args[cc].c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clock command
|
|
||||||
else if (args[1] == "time" && args.size() > 2)
|
|
||||||
{
|
|
||||||
std::string command = args[2];
|
|
||||||
std::string output;
|
|
||||||
for (std::string::size_type cc = 3; cc < args.size(); cc ++)
|
|
||||||
{
|
|
||||||
command += " ";
|
|
||||||
command += args[cc];
|
|
||||||
}
|
|
||||||
|
|
||||||
clock_t clock_start, clock_finish;
|
|
||||||
time_t time_start, time_finish;
|
|
||||||
|
|
||||||
time(&time_start);
|
|
||||||
clock_start = clock();
|
|
||||||
|
|
||||||
cmSystemTools::RunCommand(command.c_str(), output, 0, true);
|
|
||||||
|
|
||||||
clock_finish = clock();
|
|
||||||
time(&time_finish);
|
|
||||||
|
|
||||||
std::cout << output.c_str();
|
|
||||||
|
|
||||||
double clocks_per_sec = (double)CLOCKS_PER_SEC;
|
|
||||||
std::cout << "Elapsed time: "
|
|
||||||
<< (long)(time_finish - time_start) << " s. (time)"
|
|
||||||
<< ", "
|
|
||||||
<< (double)(clock_finish - clock_start) / clocks_per_sec
|
|
||||||
<< " s. (clock)"
|
|
||||||
<< "\n";
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
||||||
// Write registry value
|
|
||||||
else if (args[1] == "write_regv" && args.size() > 3)
|
|
||||||
{
|
|
||||||
return cmSystemTools::WriteRegistryValue(args[2].c_str(),
|
|
||||||
args[3].c_str()) ? 0 : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete registry value
|
|
||||||
else if (args[1] == "delete_regv" && args.size() > 2)
|
|
||||||
{
|
|
||||||
return cmSystemTools::DeleteRegistryValue(args[2].c_str()) ? 0 : 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
::CMakeCommandUsage(args[0].c_str());
|
|
||||||
return 1;
|
|
||||||
}
|
|
Loading…
Reference in New Issue