Added accessor for add custom command
This commit is contained in:
parent
853fe7ee59
commit
39766efaaa
|
@ -0,0 +1,73 @@
|
|||
/*=========================================================================
|
||||
|
||||
Program: Insight Segmentation & Registration Toolkit
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
|
||||
Copyright (c) 2000 National Library of Medicine
|
||||
All rights reserved.
|
||||
|
||||
See COPYRIGHT.txt for copyright details.
|
||||
|
||||
=========================================================================*/
|
||||
#include "cmAddCustomCommandCommand.h"
|
||||
|
||||
|
||||
// cmAddCustomCommandCommand
|
||||
bool cmAddCustomCommandCommand::InitialPass(std::vector<std::string> const& argsIn)
|
||||
{
|
||||
if (argsIn.size()< 9)
|
||||
{
|
||||
this->SetError("called with wrong number of arguments.");
|
||||
return false;
|
||||
}
|
||||
std::vector<std::string> args = argsIn;
|
||||
std::vector<std::string> commandArgs;
|
||||
std::vector<std::string> depends;
|
||||
std::vector<std::string> outputs;
|
||||
|
||||
const char* source = args[0].c_str();
|
||||
const char* command = args[1].c_str();
|
||||
if(args[2] != "ARGS")
|
||||
{
|
||||
this->SetError("Wrong syntax. The third argument should be ARGS");
|
||||
return false;
|
||||
}
|
||||
int cc=3;
|
||||
while(args[cc] != "DEPENDS" && cc < argsIn.size())
|
||||
{
|
||||
commandArgs.push_back(args[cc]);
|
||||
cc++;
|
||||
}
|
||||
if(cc == argsIn.size()-1)
|
||||
{
|
||||
this->SetError("Wrong syntax. Missing DEPENDS.");
|
||||
return false;
|
||||
}
|
||||
cc ++ ; // Skip DEPENDS
|
||||
while(args[cc] != "OUTPUTS" && cc < argsIn.size())
|
||||
{
|
||||
depends.push_back(args[cc]);
|
||||
cc++;
|
||||
}
|
||||
if(cc == argsIn.size()-1)
|
||||
{
|
||||
this->SetError("Wrong syntax. Missing OUTPUTS.");
|
||||
return false;
|
||||
}
|
||||
cc ++; // Skip OUTPUTS
|
||||
while(cc < argsIn.size()-1)
|
||||
{
|
||||
outputs.push_back(args[cc]);
|
||||
cc++;
|
||||
}
|
||||
const char *target = args[argsIn.size()-1].c_str();
|
||||
m_Makefile->AddCustomCommand( source, command, commandArgs,
|
||||
depends, outputs, target );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
/*=========================================================================
|
||||
|
||||
Program: Insight Segmentation & Registration Toolkit
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
|
||||
Copyright (c) 2000 National Library of Medicine
|
||||
All rights reserved.
|
||||
|
||||
See COPYRIGHT.txt for copyright details.
|
||||
|
||||
=========================================================================*/
|
||||
#ifndef cmAddCustomCommandCommand_h
|
||||
#define cmAddCustomCommandCommand_h
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmCommand.h"
|
||||
|
||||
/** \class cmAddCustomCommandCommand
|
||||
* \brief
|
||||
*
|
||||
* cmAddCustomCommandCommand defines a new command that can
|
||||
* be executed within the CMake
|
||||
*/
|
||||
class cmAddCustomCommandCommand : public cmCommand
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
{
|
||||
return new cmAddCustomCommandCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string> const& args);
|
||||
|
||||
/**
|
||||
* This determines if the command gets propagated down
|
||||
* to makefiles located in subdirectories.
|
||||
*/
|
||||
virtual bool IsInherited() {return true;}
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual const char* GetName() {return "ADD_CUSTOM_COMMAND";}
|
||||
|
||||
/**
|
||||
* Succinct documentation.
|
||||
*/
|
||||
virtual const char* GetTerseDocumentation()
|
||||
{
|
||||
return "Create new command within CMake.";
|
||||
}
|
||||
|
||||
/**
|
||||
* More documentation.
|
||||
*/
|
||||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
"ADD_CUSTOM_COMMAND(source, command ARGS [args] DEPENDS [depends] "
|
||||
"OUTPUTS [outputs] target)\nAdd a custom command.";
|
||||
}
|
||||
|
||||
cmTypeMacro(cmAddCustomCommandCommand, cmCommand);
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
|
@ -59,6 +59,7 @@
|
|||
#include "cmVTKWrapTclCommand.cxx"
|
||||
#include "cmQTWrapCPPCommand.cxx"
|
||||
#include "cmWrapExcludeFilesCommand.cxx"
|
||||
#include "cmAddCustomCommandCommand.cxx"
|
||||
|
||||
void GetPredefinedCommands(std::list<cmCommand*>& commands)
|
||||
{
|
||||
|
@ -118,6 +119,7 @@ void GetPredefinedCommands(std::list<cmCommand*>& commands)
|
|||
commands.push_back(new cmVTKWrapTclCommand);
|
||||
commands.push_back(new cmQTWrapCPPCommand);
|
||||
commands.push_back(new cmWrapExcludeFilesCommand);
|
||||
commands.push_back(new cmAddCustomCommandCommand);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue