Initial commit.
[CMakeLuaTailorHgBridge.git] / CMakeLua / Source / cmInstallExportGenerator.h
blobd2087e57cf45cf2f336a25c882150581e05f6cbd
1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmInstallExportGenerator.h,v $
5 Language: C++
6 Date: $Date: 2008/01/28 13:38:35 $
7 Version: $Revision: 1.5 $
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 cmInstallExportGenerator_h
18 #define cmInstallExportGenerator_h
20 #include "cmInstallGenerator.h"
22 class cmExportInstallFileGenerator;
23 class cmInstallFilesGenerator;
24 class cmInstallTargetGenerator;
25 class cmTarget;
26 class cmTargetExport;
27 class cmMakefile;
29 /** \class cmInstallExportGenerator
30 * \brief Generate rules for creating an export files.
32 class cmInstallExportGenerator: public cmInstallGenerator
34 public:
35 cmInstallExportGenerator(const char* name,
36 const char* dest, const char* file_permissions,
37 const std::vector<std::string>& configurations,
38 const char* component,
39 const char* filename, const char* name_space,
40 cmMakefile* mf);
41 ~cmInstallExportGenerator();
42 protected:
43 typedef std::vector<cmTargetExport*> ExportSet;
45 typedef cmInstallGeneratorIndent Indent;
46 virtual void GenerateScript(std::ostream& os);
47 virtual void GenerateScriptConfigs(std::ostream& os, Indent const& indent);
48 virtual void GenerateScriptActions(std::ostream& os, Indent const& indent);
49 void GenerateImportFile(ExportSet const* exportSet);
50 void GenerateImportFile(const char* config, ExportSet const* exportSet);
51 void ComputeTempDir();
53 std::string Name;
54 std::string FilePermissions;
55 std::string FileName;
56 std::string Namespace;
57 cmMakefile* Makefile;
59 std::string TempDir;
60 std::string MainImportFile;
61 cmExportInstallFileGenerator* EFGen;
64 #endif