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 "cmVTKWrapTclCommand.cxx"
|
||||||
#include "cmQTWrapCPPCommand.cxx"
|
#include "cmQTWrapCPPCommand.cxx"
|
||||||
#include "cmWrapExcludeFilesCommand.cxx"
|
#include "cmWrapExcludeFilesCommand.cxx"
|
||||||
|
#include "cmAddCustomCommandCommand.cxx"
|
||||||
|
|
||||||
void GetPredefinedCommands(std::list<cmCommand*>& commands)
|
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 cmVTKWrapTclCommand);
|
||||||
commands.push_back(new cmQTWrapCPPCommand);
|
commands.push_back(new cmQTWrapCPPCommand);
|
||||||
commands.push_back(new cmWrapExcludeFilesCommand);
|
commands.push_back(new cmWrapExcludeFilesCommand);
|
||||||
|
commands.push_back(new cmAddCustomCommandCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue