mirror of
https://github.com/reactos/CMake.git
synced 2024-11-24 20:19:53 +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.
110 lines
4.1 KiB
C++
110 lines
4.1 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 cmAddTestCommand_h
|
|
#define cmAddTestCommand_h
|
|
|
|
#include "cmCommand.h"
|
|
|
|
/** \class cmAddTestCommand
|
|
* \brief Add a test to the lists of tests to run.
|
|
*
|
|
* cmAddTestCommand adds a test to the list of tests to run .
|
|
*/
|
|
class cmAddTestCommand : public cmCommand
|
|
{
|
|
public:
|
|
/**
|
|
* This is a virtual constructor for the command.
|
|
*/
|
|
virtual cmCommand* Clone()
|
|
{
|
|
return new cmAddTestCommand;
|
|
}
|
|
|
|
/**
|
|
* 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 "add_test";}
|
|
|
|
/**
|
|
* Succinct documentation.
|
|
*/
|
|
virtual const char* GetTerseDocumentation()
|
|
{
|
|
return "Add a test to the project with the specified arguments.";
|
|
}
|
|
|
|
/**
|
|
* More documentation.
|
|
*/
|
|
virtual const char* GetFullDocumentation()
|
|
{
|
|
return
|
|
" add_test(testname Exename arg1 arg2 ...)\n"
|
|
"If the ENABLE_TESTING command has been run, this command adds a "
|
|
"test target to the current directory. If ENABLE_TESTING has not "
|
|
"been run, this command does nothing. "
|
|
"The tests are run by the testing subsystem by executing Exename "
|
|
"with the specified arguments. Exename can be either an executable "
|
|
"built by this project or an arbitrary executable on the "
|
|
"system (like tclsh). The test will be run with the current working "
|
|
"directory set to the CMakeList.txt files corresponding directory "
|
|
"in the binary tree."
|
|
"\n"
|
|
" add_test(NAME <name> [CONFIGURATIONS [Debug|Release|...]]\n"
|
|
" COMMAND <command> [arg1 [arg2 ...]])\n"
|
|
"If COMMAND specifies an executable target (created by "
|
|
"add_executable) it will automatically be replaced by the location "
|
|
"of the executable created at build time. "
|
|
"If a CONFIGURATIONS option is given then the test will be executed "
|
|
"only when testing under one of the named configurations."
|
|
"\n"
|
|
"Arguments after COMMAND may use \"generator expressions\" with the "
|
|
"syntax \"$<...>\". "
|
|
"These expressions are evaluted during build system generation and "
|
|
"produce information specific to each generated build configuration. "
|
|
"Valid expressions are:\n"
|
|
" $<CONFIGURATION> = configuration name\n"
|
|
" $<TARGET_FILE:tgt> = main file (.exe, .so.1.2, .a)\n"
|
|
" $<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)\n"
|
|
" $<TARGET_SONAME_FILE:tgt> = file with soname (.so.3)\n"
|
|
"where \"tgt\" is the name of a target. "
|
|
"Target file expressions produce a full path, but _DIR and _NAME "
|
|
"versions can produce the directory and file name components:\n"
|
|
" $<TARGET_FILE_DIR:tgt>/$<TARGET_FILE_NAME:tgt>\n"
|
|
" $<TARGET_LINKER_FILE_DIR:tgt>/$<TARGET_LINKER_FILE_NAME:tgt>\n"
|
|
" $<TARGET_SONAME_FILE_DIR:tgt>/$<TARGET_SONAME_FILE_NAME:tgt>\n"
|
|
"Example usage:\n"
|
|
" add_test(NAME mytest\n"
|
|
" COMMAND testDriver --config $<CONFIGURATION>\n"
|
|
" --exe $<TARGET_FILE:myexe>)\n"
|
|
"This creates a test \"mytest\" whose command runs a testDriver "
|
|
"tool passing the configuration name and the full path to the "
|
|
"executable file produced by target \"myexe\"."
|
|
;
|
|
}
|
|
|
|
cmTypeMacro(cmAddTestCommand, cmCommand);
|
|
private:
|
|
bool HandleNameMode(std::vector<std::string> const& args);
|
|
};
|
|
|
|
|
|
#endif
|