packaging: Initial packaging
[platform/upstream/cmake.git] / Source / cmInstallExportGenerator.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 cmInstallExportGenerator_h
13 #define cmInstallExportGenerator_h
14
15 #include "cmInstallGenerator.h"
16
17 class cmExportInstallFileGenerator;
18 class cmInstallFilesGenerator;
19 class cmInstallTargetGenerator;
20 class cmExportSet;
21 class cmMakefile;
22
23 /** \class cmInstallExportGenerator
24  * \brief Generate rules for creating an export files.
25  */
26 class cmInstallExportGenerator: public cmInstallGenerator
27 {
28 public:
29   cmInstallExportGenerator(cmExportSet* exportSet,
30                            const char* dest, const char* file_permissions,
31                            const std::vector<std::string>& configurations,
32                            const char* component,
33                            const char* filename, const char* name_space,
34                            bool exportOld, cmMakefile* mf);
35   ~cmInstallExportGenerator();
36
37   cmExportSet* GetExportSet() {return this->ExportSet;}
38
39   cmMakefile* GetMakefile() const { return this->Makefile; }
40
41   const std::string& GetNamespace() const { return this->Namespace; }
42
43 protected:
44   virtual void GenerateScript(std::ostream& os);
45   virtual void GenerateScriptConfigs(std::ostream& os, Indent const& indent);
46   virtual void GenerateScriptActions(std::ostream& os, Indent const& indent);
47   void GenerateImportFile(cmExportSet const* exportSet);
48   void GenerateImportFile(const char* config, cmExportSet const* exportSet);
49   void ComputeTempDir();
50
51   cmExportSet* ExportSet;
52   std::string FilePermissions;
53   std::string FileName;
54   std::string Namespace;
55   bool ExportOld;
56   cmMakefile* Makefile;
57
58   std::string TempDir;
59   std::string MainImportFile;
60   cmExportInstallFileGenerator* EFGen;
61 };
62
63 #endif