summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2016-07-12 17:26:55 (GMT)
committerBrad King <brad.king@kitware.com>2016-09-08 14:37:33 (GMT)
commitd5257063b04a95aca3d144f860698a3c7181e554 (patch)
treed80777fc21792953fc72ee734acfdc7337ee19b1
parentf81b9475f3724eef5d9e81b9190e30f5df09c808 (diff)
downloadCMake-d5257063b04a95aca3d144f860698a3c7181e554.zip
CMake-d5257063b04a95aca3d144f860698a3c7181e554.tar.gz
CMake-d5257063b04a95aca3d144f860698a3c7181e554.tar.bz2
Export: Virtualize file generation step helpers
Allow subclasses to override the actual content generation.
-rw-r--r--Source/cmExportFileGenerator.h41
-rw-r--r--Source/cmExportInstallFileGenerator.h10
2 files changed, 26 insertions, 25 deletions
diff --git a/Source/cmExportFileGenerator.h b/Source/cmExportFileGenerator.h
index 5234597..d106ab7 100644
--- a/Source/cmExportFileGenerator.h
+++ b/Source/cmExportFileGenerator.h
@@ -78,27 +78,28 @@ protected:
std::vector<std::string>& missingTargets);
// Methods to implement export file code generation.
- void GeneratePolicyHeaderCode(std::ostream& os);
- void GeneratePolicyFooterCode(std::ostream& os);
- void GenerateImportHeaderCode(std::ostream& os,
- const std::string& config = "");
- void GenerateImportFooterCode(std::ostream& os);
+ virtual void GeneratePolicyHeaderCode(std::ostream& os);
+ virtual void GeneratePolicyFooterCode(std::ostream& os);
+ virtual void GenerateImportHeaderCode(std::ostream& os,
+ const std::string& config = "");
+ virtual void GenerateImportFooterCode(std::ostream& os);
void GenerateImportVersionCode(std::ostream& os);
- void GenerateImportTargetCode(std::ostream& os,
- cmGeneratorTarget const* target);
- void GenerateImportPropertyCode(std::ostream& os, const std::string& config,
- cmGeneratorTarget const* target,
- ImportPropertyMap const& properties);
- void GenerateImportedFileChecksCode(
+ virtual void GenerateImportTargetCode(std::ostream& os,
+ cmGeneratorTarget const* target);
+ virtual void GenerateImportPropertyCode(std::ostream& os,
+ const std::string& config,
+ cmGeneratorTarget const* target,
+ ImportPropertyMap const& properties);
+ virtual void GenerateImportedFileChecksCode(
std::ostream& os, cmGeneratorTarget* target,
ImportPropertyMap const& properties,
const std::set<std::string>& importedLocations);
- void GenerateImportedFileCheckLoop(std::ostream& os);
- void GenerateMissingTargetsCheckCode(
+ virtual void GenerateImportedFileCheckLoop(std::ostream& os);
+ virtual void GenerateMissingTargetsCheckCode(
std::ostream& os, const std::vector<std::string>& missingTargets);
- void GenerateExpectedTargetsCode(std::ostream& os,
- const std::string& expectedTargets);
+ virtual void GenerateExpectedTargetsCode(std::ostream& os,
+ const std::string& expectedTargets);
// Collect properties with detailed information about targets beyond
// their location on disk.
@@ -142,9 +143,9 @@ protected:
ImportPropertyMap& properties);
void PopulateCompatibleInterfaceProperties(cmGeneratorTarget* target,
ImportPropertyMap& properties);
- void GenerateInterfaceProperties(cmGeneratorTarget const* target,
- std::ostream& os,
- const ImportPropertyMap& properties);
+ virtual void GenerateInterfaceProperties(
+ cmGeneratorTarget const* target, std::ostream& os,
+ const ImportPropertyMap& properties);
void PopulateIncludeDirectoriesInterface(
cmTargetExport* target,
cmGeneratorExpression::PreprocessContext preprocessRule,
@@ -171,8 +172,8 @@ protected:
std::vector<std::string>& missingTargets,
FreeTargetsReplace replace = NoReplaceFreeTargets);
- void GenerateRequiredCMakeVersion(std::ostream& os,
- const char* versionString);
+ virtual void GenerateRequiredCMakeVersion(std::ostream& os,
+ const char* versionString);
// The namespace in which the exports are placed in the generated file.
std::string Namespace;
diff --git a/Source/cmExportInstallFileGenerator.h b/Source/cmExportInstallFileGenerator.h
index fe34efd..63f2d40 100644
--- a/Source/cmExportInstallFileGenerator.h
+++ b/Source/cmExportInstallFileGenerator.h
@@ -81,16 +81,16 @@ protected:
const std::string& name);
/** Generate the relative import prefix. */
- void GenerateImportPrefix(std::ostream&);
+ virtual void GenerateImportPrefix(std::ostream&);
/** Generate the relative import prefix. */
- void LoadConfigFiles(std::ostream&);
+ virtual void LoadConfigFiles(std::ostream&);
- void CleanupTemporaryVariables(std::ostream&);
+ virtual void CleanupTemporaryVariables(std::ostream&);
/** Generate a per-configuration file for the targets. */
- bool GenerateImportFileConfig(const std::string& config,
- std::vector<std::string>& missingTargets);
+ virtual bool GenerateImportFileConfig(
+ const std::string& config, std::vector<std::string>& missingTargets);
/** Fill in properties indicating installed file locations. */
void SetImportLocationProperty(const std::string& config,