1 /*============================================================================
2 CMake - Cross Platform Makefile Generator
3 Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
5 Distributed under the OSI-approved BSD License (the "License");
6 see accompanying file Copyright.txt for details.
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
15 #include "cmInstallGenerator.h"
17 class cmExportInstallFileGenerator;
18 class cmInstallFilesGenerator;
19 class cmInstallTargetGenerator;
23 /** \class cmInstallExportGenerator
24 * \brief Generate rules for creating an export files.
26 class cmInstallExportGenerator: public cmInstallGenerator
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();
37 cmExportSet* GetExportSet() {return this->ExportSet;}
39 cmMakefile* GetMakefile() const { return this->Makefile; }
41 const std::string& GetNamespace() const { return this->Namespace; }
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();
51 cmExportSet* ExportSet;
52 std::string FilePermissions;
54 std::string Namespace;
59 std::string MainImportFile;
60 cmExportInstallFileGenerator* EFGen;