|
@@ -18,7 +18,8 @@
|
|
|
|
|
|
cmExportTryCompileFileGenerator::cmExportTryCompileFileGenerator(
|
|
|
cmGlobalGenerator* gg, const std::vector<std::string>& targets,
|
|
|
- cmMakefile* mf)
|
|
|
+ cmMakefile* mf, std::set<std::string> const& langs)
|
|
|
+ : Languages(langs.begin(), langs.end())
|
|
|
{
|
|
|
gg->CreateImportedGenerationObjects(mf, targets, this->Exports);
|
|
|
}
|
|
@@ -36,12 +37,14 @@ bool cmExportTryCompileFileGenerator::GenerateMainFile(std::ostream& os)
|
|
|
|
|
|
ImportPropertyMap properties;
|
|
|
|
|
|
+ for (std::string const& lang : this->Languages) {
|
|
|
#define FIND_TARGETS(PROPERTY) \
|
|
|
- this->FindTargets("INTERFACE_" #PROPERTY, te, emittedDeps);
|
|
|
+ this->FindTargets("INTERFACE_" #PROPERTY, te, lang, emittedDeps);
|
|
|
|
|
|
- CM_FOR_EACH_TRANSITIVE_PROPERTY_NAME(FIND_TARGETS)
|
|
|
+ CM_FOR_EACH_TRANSITIVE_PROPERTY_NAME(FIND_TARGETS)
|
|
|
|
|
|
#undef FIND_TARGETS
|
|
|
+ }
|
|
|
|
|
|
this->PopulateProperties(te, properties, emittedDeps);
|
|
|
|
|
@@ -53,7 +56,7 @@ bool cmExportTryCompileFileGenerator::GenerateMainFile(std::ostream& os)
|
|
|
|
|
|
std::string cmExportTryCompileFileGenerator::FindTargets(
|
|
|
const std::string& propName, cmGeneratorTarget const* tgt,
|
|
|
- std::set<cmGeneratorTarget const*>& emitted)
|
|
|
+ std::string const& language, std::set<cmGeneratorTarget const*>& emitted)
|
|
|
{
|
|
|
const char* prop = tgt->GetProperty(propName);
|
|
|
if (!prop) {
|
|
@@ -72,8 +75,9 @@ std::string cmExportTryCompileFileGenerator::FindTargets(
|
|
|
|
|
|
cmGeneratorTarget gDummyHead(&dummyHead, tgt->GetLocalGenerator());
|
|
|
|
|
|
- std::string result = cge->Evaluate(tgt->GetLocalGenerator(), this->Config,
|
|
|
- false, &gDummyHead, tgt, &dagChecker);
|
|
|
+ std::string result =
|
|
|
+ cge->Evaluate(tgt->GetLocalGenerator(), this->Config, false, &gDummyHead,
|
|
|
+ tgt, &dagChecker, language);
|
|
|
|
|
|
const std::set<cmGeneratorTarget const*>& allTargets =
|
|
|
cge->GetAllTargetsSeen();
|
|
@@ -97,7 +101,8 @@ void cmExportTryCompileFileGenerator::PopulateProperties(
|
|
|
if (p.find("IMPORTED_LINK_INTERFACE_LIBRARIES") == 0 ||
|
|
|
p.find("IMPORTED_LINK_DEPENDENT_LIBRARIES") == 0 ||
|
|
|
p.find("INTERFACE_LINK_LIBRARIES") == 0) {
|
|
|
- std::string evalResult = this->FindTargets(p, target, emitted);
|
|
|
+ std::string evalResult =
|
|
|
+ this->FindTargets(p, target, std::string(), emitted);
|
|
|
|
|
|
std::vector<std::string> depends;
|
|
|
cmSystemTools::ExpandListArgument(evalResult, depends);
|