mirror of
https://github.com/reactos/CMake.git
synced 2024-11-29 14:30:27 +00:00
96afb12087
This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
96 lines
3.0 KiB
C++
96 lines
3.0 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef cmExecProgramCommand_h
|
|
#define cmExecProgramCommand_h
|
|
|
|
#include "cmCommand.h"
|
|
|
|
/** \class cmExecProgramCommand
|
|
* \brief Command that adds a target to the build system.
|
|
*
|
|
* cmExecProgramCommand adds an extra target to the build system.
|
|
* This is useful when you would like to add special
|
|
* targets like "install,", "clean," and so on.
|
|
*/
|
|
class cmExecProgramCommand : public cmCommand
|
|
{
|
|
public:
|
|
/**
|
|
* This is a virtual constructor for the command.
|
|
*/
|
|
virtual cmCommand* Clone()
|
|
{
|
|
return new cmExecProgramCommand;
|
|
}
|
|
|
|
/**
|
|
* This is called when the command is first encountered in
|
|
* the CMakeLists.txt file.
|
|
*/
|
|
virtual bool InitialPass(std::vector<std::string> const& args,
|
|
cmExecutionStatus &status);
|
|
|
|
/**
|
|
* The name of the command as specified in CMakeList.txt.
|
|
*/
|
|
virtual const char* GetName()
|
|
{return "exec_program";}
|
|
|
|
/**
|
|
* This determines if the command is invoked when in script mode.
|
|
*/
|
|
virtual bool IsScriptable() { return true; }
|
|
|
|
/**
|
|
* Succinct documentation.
|
|
*/
|
|
virtual const char* GetTerseDocumentation()
|
|
{
|
|
return
|
|
"Deprecated. Use the execute_process() command instead.";
|
|
}
|
|
|
|
/**
|
|
* More documentation.
|
|
*/
|
|
virtual const char* GetFullDocumentation()
|
|
{
|
|
return
|
|
"Run an executable program during the processing of the CMakeList.txt"
|
|
" file.\n"
|
|
" exec_program(Executable [directory in which to run]\n"
|
|
" [ARGS <arguments to executable>]\n"
|
|
" [OUTPUT_VARIABLE <var>]\n"
|
|
" [RETURN_VALUE <var>])\n"
|
|
"The executable is run in the optionally specified directory. The "
|
|
"executable can include arguments if it is double quoted, but it is "
|
|
"better to use the optional ARGS argument to specify arguments to the "
|
|
"program. This is because cmake will then be able to escape spaces "
|
|
"in the executable path. An optional argument OUTPUT_VARIABLE "
|
|
"specifies a variable in which to store the output. "
|
|
"To capture the return value of the execution, provide a RETURN_VALUE. "
|
|
"If OUTPUT_VARIABLE is specified, then no output will go to the "
|
|
"stdout/stderr of the console running cmake.\n"
|
|
;
|
|
}
|
|
|
|
/** This command is kept for compatibility with older CMake versions. */
|
|
virtual bool IsDiscouraged()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
cmTypeMacro(cmExecProgramCommand, cmCommand);
|
|
};
|
|
|
|
#endif
|