summaryrefslogtreecommitdiff
path: root/Source/cmAddCustomTargetCommand.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmAddCustomTargetCommand.h')
-rw-r--r--Source/cmAddCustomTargetCommand.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/Source/cmAddCustomTargetCommand.h b/Source/cmAddCustomTargetCommand.h
new file mode 100644
index 0000000..6d94fb2
--- /dev/null
+++ b/Source/cmAddCustomTargetCommand.h
@@ -0,0 +1,108 @@
+/*============================================================================
+ 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 cmAddCustomTargetCommand_h
+#define cmAddCustomTargetCommand_h
+
+#include "cmCommand.h"
+
+/** \class cmAddCustomTargetCommand
+ * \brief Command that adds a target to the build system.
+ *
+ * cmAddCustomTargetCommand 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 cmAddCustomTargetCommand : public cmCommand
+{
+public:
+ /**
+ * This is a virtual constructor for the command.
+ */
+ virtual cmCommand* Clone()
+ {
+ return new cmAddCustomTargetCommand;
+ }
+
+ /**
+ * 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_custom_target";}
+
+ /**
+ * Succinct documentation.
+ */
+ virtual const char* GetTerseDocumentation()
+ {
+ return "Add a target with no output so it will always be built.";
+ }
+
+ /**
+ * More documentation.
+ */
+ virtual const char* GetFullDocumentation()
+ {
+ return
+ " add_custom_target(Name [ALL] [command1 [args1...]]\n"
+ " [COMMAND command2 [args2...] ...]\n"
+ " [DEPENDS depend depend depend ... ]\n"
+ " [WORKING_DIRECTORY dir]\n"
+ " [COMMENT comment] [VERBATIM]\n"
+ " [SOURCES src1 [src2...]])\n"
+ "Adds a target with the given name that executes the given commands. "
+ "The target has no output file and is ALWAYS CONSIDERED OUT OF DATE "
+ "even if the commands try to create a file with the name of the "
+ "target. Use ADD_CUSTOM_COMMAND to generate a file with dependencies. "
+ "By default nothing depends on the custom target. Use "
+ "ADD_DEPENDENCIES to add dependencies to or from other targets. "
+ "If the ALL option is specified "
+ "it indicates that this target should be added to the default build "
+ "target so that it will be run every time "
+ "(the command cannot be called ALL). "
+ "The command and arguments are optional and if not specified an "
+ "empty target will be created. "
+ "If WORKING_DIRECTORY is set, then the command will be run in that "
+ "directory. "
+ "If it is a relative path it will be interpreted relative to the "
+ "build tree directory corresponding to the current source directory. "
+ "If COMMENT is set, the value will be displayed as a "
+ "message before the commands are executed at build time. "
+ "Dependencies listed with the DEPENDS argument may reference files "
+ "and outputs of custom commands created with add_custom_command() in "
+ "the same directory (CMakeLists.txt file).\n"
+ "If VERBATIM is given then all arguments to the commands will be "
+ "escaped properly for the build tool so that the invoked command "
+ "receives each argument unchanged. "
+ "Note that one level of escapes is still used by the CMake language "
+ "processor before add_custom_target even sees the arguments. "
+ "Use of VERBATIM is recommended as it enables correct behavior. "
+ "When VERBATIM is not given the behavior is platform specific because "
+ "there is no protection of tool-specific special characters."
+ "\n"
+ "The SOURCES option specifies additional source files to be included "
+ "in the custom target. "
+ "Specified source files will be added to IDE project files for "
+ "convenience in editing even if they have not build rules."
+ ;
+ }
+
+ cmTypeMacro(cmAddCustomTargetCommand, cmCommand);
+};
+
+#endif