| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /*=========================================================================
- Program: CMake - Cross-Platform Makefile Generator
- Module: $RCSfile$
- Language: C++
- Date: $Date$
- Version: $Revision$
- Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
- =========================================================================*/
- #ifndef cmInstallExportGenerator_h
- #define cmInstallExportGenerator_h
- #include "cmInstallGenerator.h"
- class cmTarget;
- class cmInstallTargetGenerator;
- class cmInstallFilesGenerator;
- /* cmInstallExportTarget is used in cmGlobalGenerator to collect the
- install generators for the exported targets. These are then used by the
- cmInstallExportGenerator.
- */
- class cmTargetExport
- {
- public:
- cmTargetExport(cmTarget* tgt,
- cmInstallTargetGenerator* archive,
- cmInstallTargetGenerator* runtime,
- cmInstallTargetGenerator* library,
- cmInstallTargetGenerator* framework,
- cmInstallTargetGenerator* bundle,
- cmInstallFilesGenerator* headers
- ) : Target(tgt), ArchiveGenerator(archive),
- RuntimeGenerator(runtime), LibraryGenerator(library),
- FrameworkGenerator(framework), BundleGenerator(bundle),
- HeaderGenerator(headers) {}
- cmTarget* Target;
- cmInstallTargetGenerator* ArchiveGenerator;
- cmInstallTargetGenerator* RuntimeGenerator;
- cmInstallTargetGenerator* LibraryGenerator;
- cmInstallTargetGenerator* FrameworkGenerator;
- cmInstallTargetGenerator* BundleGenerator;
- cmInstallFilesGenerator* HeaderGenerator;
- private:
- cmTargetExport();
- };
- /** \class cmInstallExportGenerator
- * \brief Generate rules for creating an export files.
- */
- class cmInstallExportGenerator: public cmInstallGenerator
- {
- public:
- cmInstallExportGenerator(const char* dest, const char* file_permissions,
- const std::vector<std::string>& configurations,
- const char* component,
- const char* filename, const char* prefix,
- const char* tempOutputDir);
- bool SetExportSet(const char* name,
- const std::vector<cmTargetExport*>* exportSet);
- protected:
- // internal class which collects all the properties which will be set
- // in the export file for the target
- class cmTargetWithProperties
- {
- public:
- cmTargetWithProperties(cmTarget* target):Target(target) {}
- cmTarget* Target;
- std::map<std::string, std::string> Properties;
- private:
- cmTargetWithProperties();
- };
- typedef cmInstallGeneratorIndent Indent;
- virtual void GenerateScript(std::ostream& os);
- virtual void GenerateScriptActions(std::ostream& os, Indent const& indent);
- static bool AddInstallLocations(cmTargetWithProperties *twp,
- cmInstallTargetGenerator* generator,
- const char* prefix);
- static bool AddInstallLocations(cmTargetWithProperties* twp,
- cmInstallFilesGenerator* generator,
- const char* propertyName);
- std::string Name;
- std::string FilePermissions;
- std::string Filename;
- std::string Prefix;
- std::string TempOutputDir;
- std::string ExportFilename;
- std::vector<cmTargetWithProperties*> Targets;
- };
- #endif
|