mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-10-07 04:02:23 +03:00
Refactor module definition source enumeration
Add a `cmGeneratorTarget::GetModuleDefinitionSources` method.
This commit is contained in:
1 parent
0a312e2271
commit
1e0a9ac45d
3 files changed
+15
-9
No files matched your search
@@ -112,7 +112,7 @@ struct IDLSourcesTag
|
||||
struct ResxTag
|
||||
{
|
||||
};
|
||||
struct ModuleDefinitionFileTag
|
||||
struct ModuleDefinitionSourcesTag
|
||||
{
|
||||
};
|
||||
struct AppManifestTag
|
||||
@@ -236,8 +236,8 @@ struct TagVisitor
|
||||
} else if (!sf->GetLanguage().empty()) {
|
||||
DoAccept<IsSameTag<Tag, ObjectSourcesTag>::Result>::Do(this->Data, sf);
|
||||
} else if (ext == "def") {
|
||||
DoAccept<IsSameTag<Tag, ModuleDefinitionFileTag>::Result>::Do(this->Data,
|
||||
sf);
|
||||
DoAccept<IsSameTag<Tag, ModuleDefinitionSourcesTag>::Result>::Do(
|
||||
this->Data, sf);
|
||||
if (this->IsObjLib) {
|
||||
this->BadObjLibFiles.push_back(sf);
|
||||
}
|
||||
@@ -681,6 +681,12 @@ bool cmGeneratorTarget::HasExplicitObjectName(cmSourceFile const* file) const
|
||||
return it != this->ExplicitObjectName.end();
|
||||
}
|
||||
|
||||
void cmGeneratorTarget::GetModuleDefinitionSources(
|
||||
std::vector<cmSourceFile const*>& data, const std::string& config) const
|
||||
{
|
||||
IMPLEMENT_VISIT(ModuleDefinitionSources);
|
||||
}
|
||||
|
||||
void cmGeneratorTarget::GetIDLSources(std::vector<cmSourceFile const*>& data,
|
||||
const std::string& config) const
|
||||
{
|
||||
@@ -1942,8 +1948,7 @@ cmSourceFile const* cmGeneratorTarget::GetModuleDefinitionFile(
|
||||
const std::string& config) const
|
||||
{
|
||||
std::vector<cmSourceFile const*> data;
|
||||
IMPLEMENT_VISIT_IMPL(ModuleDefinitionFile,
|
||||
COMMA std::vector<cmSourceFile const*>)
|
||||
this->GetModuleDefinitionSources(data, config);
|
||||
if (!data.empty()) {
|
||||
return data.front();
|
||||
}
|
||||
|
||||
@@ -77,6 +77,8 @@ public:
|
||||
bool HasExplicitObjectName(cmSourceFile const* file) const;
|
||||
void AddExplicitObjectName(cmSourceFile const* sf);
|
||||
|
||||
void GetModuleDefinitionSources(std::vector<cmSourceFile const*>&,
|
||||
const std::string& config) const;
|
||||
void GetResxSources(std::vector<cmSourceFile const*>&,
|
||||
const std::string& config) const;
|
||||
void GetIDLSources(std::vector<cmSourceFile const*>&,
|
||||
|
||||
@@ -1841,10 +1841,9 @@ void cmVisualStudio10TargetGenerator::WriteAllSources()
|
||||
(*this->BuildFileStream) << cmVS10EscapeXML(obj) << "\" />\n";
|
||||
}
|
||||
|
||||
if (cmSourceFile const* defsrc =
|
||||
this->GeneratorTarget->GetModuleDefinitionFile("")) {
|
||||
this->WriteSource("None", defsrc);
|
||||
}
|
||||
std::vector<cmSourceFile const*> defSources;
|
||||
this->GeneratorTarget->GetModuleDefinitionSources(defSources, "");
|
||||
this->WriteSources("None", defSources);
|
||||
|
||||
if (this->IsMissingFiles) {
|
||||
this->WriteMissingFiles();
|
||||
|
||||
Reference in new issue
Block a user