| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /*============================================================================
- 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 cmSeparateArgumentsCommand_h
- #define cmSeparateArgumentsCommand_h
- #include "cmCommand.h"
- /** \class cmSeparateArgumentsCommand
- * \brief SeparateArguments a CMAKE variable
- *
- * cmSeparateArgumentsCommand sets a variable to a value with expansion.
- */
- class cmSeparateArgumentsCommand : public cmCommand
- {
- public:
- /**
- * This is a virtual constructor for the command.
- */
- virtual cmCommand* Clone()
- {
- return new cmSeparateArgumentsCommand;
- }
- /**
- * 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);
- /**
- * This determines if the command is invoked when in script mode.
- */
- virtual bool IsScriptable() { return true; }
- /**
- * The name of the command as specified in CMakeList.txt.
- */
- virtual const char* GetName() {return "separate_arguments";}
-
- /**
- * Succinct documentation.
- */
- virtual const char* GetTerseDocumentation()
- {
- return
- "Parse space-separated arguments into a semicolon-separated list.";
- }
-
- /**
- * More documentation.
- */
- virtual const char* GetFullDocumentation()
- {
- return
- " separate_arguments(<var> <UNIX|WINDOWS>_COMMAND \"<args>\")\n"
- "Parses a unix- or windows-style command-line string \"<args>\" and "
- "stores a semicolon-separated list of the arguments in <var>. "
- "The entire command line must be given in one \"<args>\" argument."
- "\n"
- "The UNIX_COMMAND mode separates arguments by unquoted whitespace. "
- "It recognizes both single-quote and double-quote pairs. "
- "A backslash escapes the next literal character (\\\" is \"); "
- "there are no special escapes (\\n is just n)."
- "\n"
- "The WINDOWS_COMMAND mode parses a windows command-line using the "
- "same syntax the runtime library uses to construct argv at startup. "
- "It separates arguments by whitespace that is not double-quoted. "
- "Backslashes are literal unless they precede double-quotes. "
- "See the MSDN article \"Parsing C Command-Line Arguments\" for details."
- "\n"
- " separate_arguments(VARIABLE)\n"
- "Convert the value of VARIABLE to a semi-colon separated list. "
- "All spaces are replaced with ';'. This helps with generating "
- "command lines.";
- }
-
- cmTypeMacro(cmSeparateArgumentsCommand, cmCommand);
- };
- #endif
|