mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 09:54:15 +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.
100 lines
3.7 KiB
C++
100 lines
3.7 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 cmAddSubDirectoryCommand_h
|
|
#define cmAddSubDirectoryCommand_h
|
|
|
|
#include "cmCommand.h"
|
|
|
|
/** \class cmAddSubDirectoryCommand
|
|
* \brief Specify a subdirectory to build
|
|
*
|
|
* cmAddSubDirectoryCommand specifies a subdirectory to process
|
|
* by CMake. CMake will descend
|
|
* into the specified source directory and process any CMakeLists.txt found.
|
|
*/
|
|
class cmAddSubDirectoryCommand : public cmCommand
|
|
{
|
|
public:
|
|
/**
|
|
* This is a virtual constructor for the command.
|
|
*/
|
|
virtual cmCommand* Clone()
|
|
{
|
|
return new cmAddSubDirectoryCommand;
|
|
}
|
|
|
|
/**
|
|
* 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_subdirectory";}
|
|
|
|
/**
|
|
* Succinct documentation.
|
|
*/
|
|
virtual const char* GetTerseDocumentation()
|
|
{
|
|
return "Add a subdirectory to the build.";
|
|
}
|
|
|
|
/**
|
|
* More documentation.
|
|
*/
|
|
virtual const char* GetFullDocumentation()
|
|
{
|
|
return
|
|
" add_subdirectory(source_dir [binary_dir] \n"
|
|
" [EXCLUDE_FROM_ALL])\n"
|
|
"Add a subdirectory to the build. The source_dir specifies the "
|
|
"directory in which the source CmakeLists.txt and code files are "
|
|
"located. If it is a relative "
|
|
"path it will be evaluated with respect to the current "
|
|
"directory (the typical usage), but it may also be an absolute path. "
|
|
"The binary_dir specifies the directory in which to place the output "
|
|
"files. If it is a relative path it will be evaluated with respect "
|
|
"to the current output directory, but it may also be an absolute "
|
|
"path. If binary_dir is not specified, the value of source_dir, "
|
|
"before expanding any relative path, will be used (the typical usage). "
|
|
"The CMakeLists.txt file in the specified source directory will "
|
|
"be processed immediately by CMake before processing in the current "
|
|
"input file continues beyond this command.\n"
|
|
|
|
"If the EXCLUDE_FROM_ALL argument is provided then targets in the "
|
|
"subdirectory will not be included in the ALL target of the parent "
|
|
"directory by default, and will be excluded from IDE project files. "
|
|
"Users must explicitly build targets in the subdirectory. "
|
|
"This is meant for use when the subdirectory contains a separate part "
|
|
"of the project that is useful but not necessary, such as a set of "
|
|
"examples. "
|
|
"Typically the subdirectory should contain its own project() command "
|
|
"invocation so that a full build system will be generated in the "
|
|
"subdirectory (such as a VS IDE solution file). "
|
|
"Note that inter-target dependencies supercede this exclusion. "
|
|
"If a target built by the parent project depends on a target in the "
|
|
"subdirectory, the dependee target will be included in the parent "
|
|
"project build system to satisfy the dependency."
|
|
;
|
|
}
|
|
|
|
cmTypeMacro(cmAddSubDirectoryCommand, cmCommand);
|
|
};
|
|
|
|
|
|
|
|
#endif
|