Ninja: Clean all symlink created for libraries.

'ninja -t clean' only cleans built output and dep files so all file
created as a side effect and not mentioned in the 'build' statement
would be omitted.
This commit is contained in:
Nicolas Despres 2012-04-02 12:35:55 +02:00 committed by David Cole
parent 990f77eab3
commit e3b1be24a8
1 changed files with 11 additions and 2 deletions

View File

@ -508,11 +508,20 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
emptyDeps,
symlinkVars);
} else {
symlinkVars["SONAME"] = this->GetTargetFilePath(this->TargetNameSO);
cmNinjaDeps outputs;
const std::string soName = this->GetTargetFilePath(this->TargetNameSO);
// If one link has to be created.
if (targetOutputReal == soName || targetOutput == soName) {
symlinkVars["SONAME"] = soName;
} else {
symlinkVars["SONAME"] = "";
outputs.push_back(soName);
}
outputs.push_back(targetOutput);
cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(),
"Create library symlink " + targetOutput,
"CMAKE_SYMLINK_LIBRARY",
cmNinjaDeps(1, targetOutput),
outputs,
cmNinjaDeps(1, targetOutputReal),
emptyDeps,
emptyDeps,