ENH: Return utility target after creation
[cmake.git] / Source / cmOutputRequiredFilesCommand.h
blobe7df04978446a01090b8eee973a12737f861218a
1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmOutputRequiredFilesCommand.h,v $
5 Language: C++
6 Date: $Date: 2008-01-23 15:27:59 $
7 Version: $Revision: 1.12 $
9 Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
16 =========================================================================*/
17 #ifndef cmOutputRequiredFilesCommand_h
18 #define cmOutputRequiredFilesCommand_h
20 #include "cmCommand.h"
21 #include "cmMakeDepend.h"
23 /** \class cmOutputRequiredFilesCommand
24 * \brief Output a list of required files for a source file
27 class cmOutputRequiredFilesCommand : public cmCommand
29 public:
30 /**
31 * This is a virtual constructor for the command.
33 virtual cmCommand* Clone()
35 return new cmOutputRequiredFilesCommand;
38 /**
39 * This is called when the command is first encountered in
40 * the CMakeLists.txt file.
42 virtual bool InitialPass(std::vector<std::string> const& args,
43 cmExecutionStatus &status);
45 /**
46 * The name of the command as specified in CMakeList.txt.
48 virtual const char* GetName() { return "output_required_files";}
50 /**
51 * Succinct documentation.
53 virtual const char* GetTerseDocumentation()
55 return
56 "Output a list of required source files for a specified source file.";
59 /**
60 * More documentation.
62 virtual const char* GetFullDocumentation()
64 return
65 " output_required_files(srcfile outputfile)\n"
66 "Outputs a list of all the source files that are required by the "
67 "specified srcfile. This list is written into outputfile. This is "
68 "similar to writing out the dependencies for srcfile except that it "
69 "jumps from .h files into .cxx, .c and .cpp files if possible.";
72 cmTypeMacro(cmOutputRequiredFilesCommand, cmCommand);
73 void ListDependencies(cmDependInformation const *info,
74 FILE *fout,
75 std::set<cmDependInformation const*> *visited);
77 private:
78 std::string File;
79 std::string OutputFile;
84 #endif