cmake/Source/cmInstallExportGenerator.h

67 lines
2.1 KiB
C
Raw Normal View History

2016-10-30 18:24:19 +01:00
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmInstallExportGenerator_h
#define cmInstallExportGenerator_h
2018-01-26 17:06:56 +01:00
#include "cmConfigure.h" // IWYU pragma: keep
2016-10-30 18:24:19 +01:00
#include "cmInstallGenerator.h"
2016-10-30 18:24:19 +01:00
#include "cmScriptGenerator.h"
#include <iosfwd>
#include <stddef.h>
#include <string>
#include <vector>
class cmExportInstallFileGenerator;
2013-03-16 19:13:01 +02:00
class cmExportSet;
2016-10-30 18:24:19 +01:00
class cmLocalGenerator;
/** \class cmInstallExportGenerator
* \brief Generate rules for creating an export files.
*/
2016-07-09 11:21:54 +02:00
class cmInstallExportGenerator : public cmInstallGenerator
{
public:
2016-07-09 11:21:54 +02:00
cmInstallExportGenerator(cmExportSet* exportSet, const char* dest,
const char* file_permissions,
const std::vector<std::string>& configurations,
2016-07-09 11:21:54 +02:00
const char* component, MessageLevel message,
bool exclude_from_all, const char* filename,
2016-10-30 18:24:19 +01:00
const char* name_space, bool exportOld,
bool android);
2018-01-26 17:06:56 +01:00
~cmInstallExportGenerator() override;
2016-07-09 11:21:54 +02:00
cmExportSet* GetExportSet() { return this->ExportSet; }
2013-03-16 19:13:01 +02:00
2018-01-26 17:06:56 +01:00
void Compute(cmLocalGenerator* lg) override;
2015-11-17 17:22:37 +01:00
cmLocalGenerator* GetLocalGenerator() const { return this->LocalGenerator; }
2013-03-16 19:13:01 +02:00
const std::string& GetNamespace() const { return this->Namespace; }
2016-07-09 11:21:54 +02:00
std::string const& GetDestination() const { return this->Destination; }
2015-08-17 11:37:30 +02:00
2013-03-16 19:13:01 +02:00
protected:
2018-01-26 17:06:56 +01:00
void GenerateScript(std::ostream& os) override;
void GenerateScriptConfigs(std::ostream& os, Indent indent) override;
void GenerateScriptActions(std::ostream& os, Indent indent) override;
2013-03-16 19:13:01 +02:00
void GenerateImportFile(cmExportSet const* exportSet);
void GenerateImportFile(const char* config, cmExportSet const* exportSet);
void ComputeTempDir();
2016-10-30 18:24:19 +01:00
size_t GetMaxConfigLength() const;
2013-03-16 19:13:01 +02:00
cmExportSet* ExportSet;
std::string FilePermissions;
std::string FileName;
std::string Namespace;
2013-11-03 12:27:13 +02:00
bool ExportOld;
2015-11-17 17:22:37 +01:00
cmLocalGenerator* LocalGenerator;
std::string TempDir;
std::string MainImportFile;
cmExportInstallFileGenerator* EFGen;
};
#endif