Ninja: Do not use module definition .def files for static libraries

A module definition (`.def`) file specifies symbols to export from
a linked binary.  The librarian tool is not a linker and so should
not be given a `/DEF:...` flag with the `.def` file.  The other
generators already do not do this, so fix Ninja to be consistent.

Closes: #16537
This commit is contained in:
Brad King 2017-01-11 15:56:21 -05:00
parent 728820f3ea
commit 47ffa0ea5d

View File

@ -63,6 +63,13 @@ void cmCommonTargetGenerator::AddFeatureFlags(std::string& flags,
void cmCommonTargetGenerator::AddModuleDefinitionFlag(
cmLinkLineComputer* linkLineComputer, std::string& flags)
{
// A module definition file only makes sense on certain target types.
if (this->GeneratorTarget->GetType() != cmStateEnums::SHARED_LIBRARY &&
this->GeneratorTarget->GetType() != cmStateEnums::MODULE_LIBRARY &&
this->GeneratorTarget->GetType() != cmStateEnums::EXECUTABLE) {
return;
}
if (!this->ModuleDefinitionFile) {
return;
}