packaging: Initial packaging
[platform/upstream/cmake.git] / Source / cmIncludeExternalMSProjectCommand.h
1 /*============================================================================
2   CMake - Cross Platform Makefile Generator
3   Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
4
5   Distributed under the OSI-approved BSD License (the "License");
6   see accompanying file Copyright.txt for details.
7
8   This software is distributed WITHOUT ANY WARRANTY; without even the
9   implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10   See the License for more information.
11 ============================================================================*/
12 #ifndef cmIncludeExternalMSProjectCommand_h
13 #define cmIncludeExternalMSProjectCommand_h
14
15 #include "cmCommand.h"
16
17 /** \class cmIncludeExternalMSProjectCommand
18  * \brief Specify an external MS project file for inclusion in the workspace.
19  *
20  * cmIncludeExternalMSProjectCommand is used to specify an externally
21  * generated Microsoft project file for inclusion in the default workspace
22  * generated by CMake.
23  */
24 class cmIncludeExternalMSProjectCommand : public cmCommand
25 {
26 public:
27   /**
28    * This is a virtual constructor for the command.
29    */
30   virtual cmCommand* Clone()
31     {
32     return new cmIncludeExternalMSProjectCommand;
33     }
34
35   /**
36    * This is called when the command is first encountered in
37    * the CMakeLists.txt file.
38    */
39   virtual bool InitialPass(std::vector<std::string> const& args,
40                            cmExecutionStatus &status);
41
42   /**
43    * The name of the command as specified in CMakeList.txt.
44    */
45   virtual const char* GetName() const {return "include_external_msproject";}
46
47   /**
48    * Succinct documentation.
49    */
50   virtual const char* GetTerseDocumentation() const
51     {
52     return "Include an external Microsoft project file in a workspace.";
53     }
54
55   /**
56    * More documentation.
57    */
58   virtual const char* GetFullDocumentation() const
59     {
60     return
61       "  include_external_msproject(projectname location\n"
62       "                             [TYPE projectTypeGUID]\n"
63       "                             [GUID projectGUID]\n"
64       "                             [PLATFORM platformName]\n"
65       "                             dep1 dep2 ...)\n"
66       "Includes an external Microsoft project in the generated workspace "
67       "file.  Currently does nothing on UNIX. This will create a "
68       "target named [projectname].  This can be used in the add_dependencies "
69       "command to make things depend on the external project."
70       "\n"
71       "TYPE, GUID and PLATFORM are optional parameters that allow one "
72       "to specify the type of project, id (GUID) of the project and "
73       "the name of the target platform.  "
74       "This is useful for projects requiring values other than the default "
75       "(e.g. WIX projects). "
76       "These options are not supported by the Visual Studio 6 generator.";
77     }
78
79   cmTypeMacro(cmIncludeExternalMSProjectCommand, cmCommand);
80 };
81
82
83
84 #endif