mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-04 21:30:01 -05:00
Merge topic 'restore-target-export-includes'
83d79636bf install(TARGETS): Restore per-export INCLUDES DESTINATION
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6969
This commit is contained in:
@@ -375,7 +375,8 @@ void cmExportFileGenerator::PopulateSourcesInterface(
|
||||
void cmExportFileGenerator::PopulateIncludeDirectoriesInterface(
|
||||
cmGeneratorTarget const* target,
|
||||
cmGeneratorExpression::PreprocessContext preprocessRule,
|
||||
ImportPropertyMap& properties, std::vector<std::string>& missingTargets)
|
||||
ImportPropertyMap& properties, std::vector<std::string>& missingTargets,
|
||||
cmTargetExport const& te)
|
||||
{
|
||||
assert(preprocessRule == cmGeneratorExpression::InstallInterface);
|
||||
|
||||
@@ -385,7 +386,7 @@ void cmExportFileGenerator::PopulateIncludeDirectoriesInterface(
|
||||
cmGeneratorExpression ge;
|
||||
|
||||
std::string dirs = cmGeneratorExpression::Preprocess(
|
||||
cmJoin(target->Target->GetInstallIncludeDirectoriesEntries(), ";"),
|
||||
cmJoin(target->Target->GetInstallIncludeDirectoriesEntries(te), ";"),
|
||||
preprocessRule, true);
|
||||
this->ReplaceInstallPrefix(dirs);
|
||||
std::unique_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(dirs);
|
||||
|
||||
@@ -148,7 +148,8 @@ protected:
|
||||
void PopulateIncludeDirectoriesInterface(
|
||||
cmGeneratorTarget const* target,
|
||||
cmGeneratorExpression::PreprocessContext preprocessRule,
|
||||
ImportPropertyMap& properties, std::vector<std::string>& missingTargets);
|
||||
ImportPropertyMap& properties, std::vector<std::string>& missingTargets,
|
||||
cmTargetExport const& te);
|
||||
void PopulateSourcesInterface(
|
||||
cmGeneratorTarget const* target,
|
||||
cmGeneratorExpression::PreprocessContext preprocessRule,
|
||||
|
||||
@@ -90,7 +90,8 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
|
||||
ImportPropertyMap properties;
|
||||
|
||||
this->PopulateIncludeDirectoriesInterface(
|
||||
gt, cmGeneratorExpression::InstallInterface, properties, missingTargets);
|
||||
gt, cmGeneratorExpression::InstallInterface, properties, missingTargets,
|
||||
*te);
|
||||
this->PopulateSourcesInterface(gt, cmGeneratorExpression::InstallInterface,
|
||||
properties, missingTargets);
|
||||
this->PopulateInterfaceProperty("INTERFACE_SYSTEM_INCLUDE_DIRECTORIES", gt,
|
||||
|
||||
@@ -760,7 +760,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
|
||||
te->FileSetGenerators[gen->GetFileSet()] = gen.get();
|
||||
}
|
||||
target.AddInstallIncludeDirectories(
|
||||
cmMakeRange(includesArgs.GetIncludeDirs()));
|
||||
*te, cmMakeRange(includesArgs.GetIncludeDirs()));
|
||||
te->NamelinkOnly = namelinkOnly;
|
||||
helper.Makefile->GetGlobalGenerator()
|
||||
->GetExportSets()[exports]
|
||||
|
||||
+10
-6
@@ -192,7 +192,8 @@ public:
|
||||
cmTarget::LinkLibraryVectorType OriginalLinkLibraries;
|
||||
std::map<std::string, BTs<std::string>> LanguageStandardProperties;
|
||||
std::vector<BT<std::string>> IncludeDirectoriesEntries;
|
||||
std::vector<std::string> InstallIncludeDirectoriesEntries;
|
||||
std::map<cmTargetExport const*, std::vector<std::string>>
|
||||
InstallIncludeDirectoriesEntries;
|
||||
std::vector<BT<std::string>> CompileOptionsEntries;
|
||||
std::vector<BT<std::string>> CompileFeaturesEntries;
|
||||
std::vector<BT<std::string>> CompileDefinitionsEntries;
|
||||
@@ -1079,15 +1080,18 @@ std::set<std::string> const& cmTarget::GetSystemIncludeDirectories() const
|
||||
return this->impl->SystemIncludeDirectories;
|
||||
}
|
||||
|
||||
void cmTarget::AddInstallIncludeDirectories(cmStringRange const& incs)
|
||||
void cmTarget::AddInstallIncludeDirectories(cmTargetExport const& te,
|
||||
cmStringRange const& incs)
|
||||
{
|
||||
std::copy(incs.begin(), incs.end(),
|
||||
std::back_inserter(this->impl->InstallIncludeDirectoriesEntries));
|
||||
std::copy(
|
||||
incs.begin(), incs.end(),
|
||||
std::back_inserter(this->impl->InstallIncludeDirectoriesEntries[&te]));
|
||||
}
|
||||
|
||||
cmStringRange cmTarget::GetInstallIncludeDirectoriesEntries() const
|
||||
cmStringRange cmTarget::GetInstallIncludeDirectoriesEntries(
|
||||
cmTargetExport const& te) const
|
||||
{
|
||||
return cmMakeRange(this->impl->InstallIncludeDirectoriesEntries);
|
||||
return cmMakeRange(this->impl->InstallIncludeDirectoriesEntries[&te]);
|
||||
}
|
||||
|
||||
cmBTStringRange cmTarget::GetIncludeDirectoriesEntries() const
|
||||
|
||||
+5
-2
@@ -27,6 +27,7 @@ class cmListFileContext;
|
||||
class cmMakefile;
|
||||
class cmPropertyMap;
|
||||
class cmSourceFile;
|
||||
class cmTargetExport;
|
||||
class cmTargetInternals;
|
||||
|
||||
template <typename T>
|
||||
@@ -237,8 +238,10 @@ public:
|
||||
void AddSystemIncludeDirectories(std::set<std::string> const& incs);
|
||||
std::set<std::string> const& GetSystemIncludeDirectories() const;
|
||||
|
||||
void AddInstallIncludeDirectories(cmStringRange const& incs);
|
||||
cmStringRange GetInstallIncludeDirectoriesEntries() const;
|
||||
void AddInstallIncludeDirectories(cmTargetExport const& te,
|
||||
cmStringRange const& incs);
|
||||
cmStringRange GetInstallIncludeDirectoriesEntries(
|
||||
cmTargetExport const& te) const;
|
||||
|
||||
BTs<std::string> const* GetLanguageStandardProperty(
|
||||
const std::string& propertyName) const;
|
||||
|
||||
Reference in New Issue
Block a user