VS: OBJECT_DEPENDS missing in MSBuild targets inputs
In our case we have some sources which get compiled by NASM. The asm files contain includes. Modelling those includes with OBJECT_DEPENDS works well for e.g. makefile generator but changes in those include files do not trigger a rebuild on MSBuild as the targets do not contain the include files as inputs.
https://gitlab.kitware.com/cmake/cmake/-/blob/v3.21.3/Source/cmLocalVisualStudio7Generator.cxx#L1524-1534 contained a handling for OBJECT_DEPENDS source property which seems lost in Visual Studio 10 generator, e.g. something like:
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 1ea0461f5c..3f8a36bfcd 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2160,6 +2160,11 @@ void cmVisualStudio10TargetGenerator::WriteSource(Elem& e2,
e2.Element("Link", link);
}
+ if (cmValue objectDeps = sf->GetProperty("OBJECT_DEPENDS")) {
+ std::string deps = objectDeps;
+ e2.Element("AdditionalDependencies", deps);
+ }
+
ToolSource toolSource = { sf, forceRelative };
this->Tools[e2.Tag].push_back(toolSource);
}
Edited by Brad King