diff options
author | Eugene Shalygin <eugene.shalygin@gmail.com> | 2021-07-20 19:41:36 (GMT) |
---|---|---|
committer | Eugene Shalygin <eugene.shalygin@gmail.com> | 2021-07-22 11:08:58 (GMT) |
commit | e8e19ed8f2f0d05bb7fc7e5987809a3754ad4f74 (patch) | |
tree | e5bd13d1906dab2f18718ad54ba8eceb666b637d /Source/cmExportFileGenerator.cxx | |
parent | 55e4753bbb60c0da12b09837bac97a46b851ae32 (diff) | |
download | CMake-e8e19ed8f2f0d05bb7fc7e5987809a3754ad4f74.zip CMake-e8e19ed8f2f0d05bb7fc7e5987809a3754ad4f74.tar.gz CMake-e8e19ed8f2f0d05bb7fc7e5987809a3754ad4f74.tar.bz2 |
Refactor export file generator inteface
Replace cmTargetExport with const cmGeneratorTarget to allow recursive
processing of exported targets and their link dependencies.
Diffstat (limited to 'Source/cmExportFileGenerator.cxx')
-rw-r--r-- | Source/cmExportFileGenerator.cxx | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 2c54077..ebdbe38 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -27,7 +27,6 @@ #include "cmStringAlgorithms.h" #include "cmSystemTools.h" #include "cmTarget.h" -#include "cmTargetExport.h" static std::string cmExportFileGeneratorEscape(std::string const& str) { @@ -123,7 +122,7 @@ void cmExportFileGenerator::GenerateImportConfig( } void cmExportFileGenerator::PopulateInterfaceProperty( - const std::string& propName, cmGeneratorTarget* target, + const std::string& propName, cmGeneratorTarget const* target, ImportPropertyMap& properties) { cmProp input = target->GetProperty(propName); @@ -134,7 +133,7 @@ void cmExportFileGenerator::PopulateInterfaceProperty( void cmExportFileGenerator::PopulateInterfaceProperty( const std::string& propName, const std::string& outputName, - cmGeneratorTarget* target, + cmGeneratorTarget const* target, cmGeneratorExpression::PreprocessContext preprocessRule, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { @@ -168,7 +167,7 @@ void cmExportFileGenerator::GenerateRequiredCMakeVersion( } bool cmExportFileGenerator::PopulateInterfaceLinkLibrariesProperty( - cmGeneratorTarget* target, + cmGeneratorTarget const* target, cmGeneratorExpression::PreprocessContext preprocessRule, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { @@ -196,7 +195,7 @@ static bool isSubDirectory(std::string const& a, std::string const& b) } static bool checkInterfaceDirs(const std::string& prepro, - cmGeneratorTarget* target, + cmGeneratorTarget const* target, const std::string& prop) { std::string const& installDir = @@ -335,10 +334,10 @@ static void prefixItems(std::string& exportDirs) } void cmExportFileGenerator::PopulateSourcesInterface( - cmTargetExport* tei, cmGeneratorExpression::PreprocessContext preprocessRule, + cmGeneratorTarget const* gt, + cmGeneratorExpression::PreprocessContext preprocessRule, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { - cmGeneratorTarget* gt = tei->Target; assert(preprocessRule == cmGeneratorExpression::InstallInterface); const char* propName = "INTERFACE_SOURCES"; @@ -366,10 +365,10 @@ void cmExportFileGenerator::PopulateSourcesInterface( } void cmExportFileGenerator::PopulateIncludeDirectoriesInterface( - cmTargetExport* tei, cmGeneratorExpression::PreprocessContext preprocessRule, + cmGeneratorTarget const* target, + cmGeneratorExpression::PreprocessContext preprocessRule, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { - cmGeneratorTarget* target = tei->Target; assert(preprocessRule == cmGeneratorExpression::InstallInterface); const char* propName = "INTERFACE_INCLUDE_DIRECTORIES"; @@ -425,10 +424,10 @@ void cmExportFileGenerator::PopulateIncludeDirectoriesInterface( } void cmExportFileGenerator::PopulateLinkDependsInterface( - cmTargetExport* tei, cmGeneratorExpression::PreprocessContext preprocessRule, + cmGeneratorTarget const* gt, + cmGeneratorExpression::PreprocessContext preprocessRule, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { - cmGeneratorTarget* gt = tei->Target; assert(preprocessRule == cmGeneratorExpression::InstallInterface); const char* propName = "INTERFACE_LINK_DEPENDS"; @@ -456,10 +455,10 @@ void cmExportFileGenerator::PopulateLinkDependsInterface( } void cmExportFileGenerator::PopulateLinkDirectoriesInterface( - cmTargetExport* tei, cmGeneratorExpression::PreprocessContext preprocessRule, + cmGeneratorTarget const* gt, + cmGeneratorExpression::PreprocessContext preprocessRule, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { - cmGeneratorTarget* gt = tei->Target; assert(preprocessRule == cmGeneratorExpression::InstallInterface); const char* propName = "INTERFACE_LINK_DIRECTORIES"; @@ -487,7 +486,7 @@ void cmExportFileGenerator::PopulateLinkDirectoriesInterface( } void cmExportFileGenerator::PopulateInterfaceProperty( - const std::string& propName, cmGeneratorTarget* target, + const std::string& propName, cmGeneratorTarget const* target, cmGeneratorExpression::PreprocessContext preprocessRule, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { @@ -506,7 +505,7 @@ void getPropertyContents(cmGeneratorTarget const* tgt, const std::string& prop, ifaceProperties.insert(content.begin(), content.end()); } -void getCompatibleInterfaceProperties(cmGeneratorTarget* target, +void getCompatibleInterfaceProperties(cmGeneratorTarget const* target, std::set<std::string>& ifaceProperties, const std::string& config) { @@ -545,7 +544,7 @@ void getCompatibleInterfaceProperties(cmGeneratorTarget* target, } void cmExportFileGenerator::PopulateCompatibleInterfaceProperties( - cmGeneratorTarget* gtarget, ImportPropertyMap& properties) + cmGeneratorTarget const* gtarget, ImportPropertyMap& properties) { this->PopulateInterfaceProperty("COMPATIBLE_INTERFACE_BOOL", gtarget, properties); @@ -597,7 +596,7 @@ void cmExportFileGenerator::GenerateInterfaceProperties( } bool cmExportFileGenerator::AddTargetNamespace( - std::string& input, cmGeneratorTarget* target, + std::string& input, cmGeneratorTarget const* target, std::vector<std::string>& missingTargets) { cmGeneratorTarget::TargetOrString resolved = @@ -628,7 +627,7 @@ bool cmExportFileGenerator::AddTargetNamespace( } void cmExportFileGenerator::ResolveTargetsInGeneratorExpressions( - std::string& input, cmGeneratorTarget* target, + std::string& input, cmGeneratorTarget const* target, std::vector<std::string>& missingTargets, FreeTargetsReplace replace) { if (replace == NoReplaceFreeTargets) { @@ -655,7 +654,7 @@ void cmExportFileGenerator::ResolveTargetsInGeneratorExpressions( } void cmExportFileGenerator::ResolveTargetsInGeneratorExpression( - std::string& input, cmGeneratorTarget* target, + std::string& input, cmGeneratorTarget const* target, std::vector<std::string>& missingTargets) { std::string::size_type pos = 0; @@ -745,7 +744,7 @@ void cmExportFileGenerator::ReplaceInstallPrefix(std::string& /*unused*/) void cmExportFileGenerator::SetImportLinkInterface( const std::string& config, std::string const& suffix, cmGeneratorExpression::PreprocessContext preprocessRule, - cmGeneratorTarget* target, ImportPropertyMap& properties, + cmGeneratorTarget const* target, ImportPropertyMap& properties, std::vector<std::string>& missingTargets) { // Add the transitive link dependencies for this configuration. @@ -881,7 +880,7 @@ static std::string const& asString(cmLinkItem const& l) template <typename T> void cmExportFileGenerator::SetImportLinkProperty( - std::string const& suffix, cmGeneratorTarget* target, + std::string const& suffix, cmGeneratorTarget const* target, const std::string& propName, std::vector<T> const& entries, ImportPropertyMap& properties, std::vector<std::string>& missingTargets, ImportLinkPropertyTargetNames targetNames) @@ -1212,7 +1211,7 @@ void cmExportFileGenerator::GenerateImportedFileChecksCode( } bool cmExportFileGenerator::PopulateExportProperties( - cmGeneratorTarget* gte, ImportPropertyMap& properties, + cmGeneratorTarget const* gte, ImportPropertyMap& properties, std::string& errorMessage) { const auto& targetProperties = gte->Target->GetProperties(); |