mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
Makefile: For static libraries remove only the "real" lib before creating
When creating a static library with the archive tool, only the `.a` needs to be removed to start a fresh archive. Any other files (e.g. symbolic links we may later add) are not managed by the archive tool and therefore do not need to be cleaned.
This commit is contained in:
@@ -598,6 +598,20 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules(
|
||||
std::vector<std::string> libCleanFiles;
|
||||
libCleanFiles.push_back(this->LocalGenerator->MaybeConvertToRelativePath(
|
||||
this->LocalGenerator->GetCurrentBinaryDirectory(), targetFullPathReal));
|
||||
|
||||
std::vector<std::string> commands1;
|
||||
// Add a command to remove any existing files for this library.
|
||||
// for static libs only
|
||||
if (this->GeneratorTarget->GetType() == cmStateEnums::STATIC_LIBRARY) {
|
||||
this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles,
|
||||
this->GeneratorTarget, "target");
|
||||
this->LocalGenerator->CreateCDCommand(
|
||||
commands1, this->Makefile->GetCurrentBinaryDirectory(),
|
||||
this->LocalGenerator->GetBinaryDirectory());
|
||||
commands.insert(commands.end(), commands1.begin(), commands1.end());
|
||||
commands1.clear();
|
||||
}
|
||||
|
||||
if (targetName != targetNameReal) {
|
||||
libCleanFiles.push_back(this->LocalGenerator->MaybeConvertToRelativePath(
|
||||
this->LocalGenerator->GetCurrentBinaryDirectory(), targetFullPath));
|
||||
@@ -634,19 +648,6 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules(
|
||||
}
|
||||
#endif
|
||||
|
||||
std::vector<std::string> commands1;
|
||||
// Add a command to remove any existing files for this library.
|
||||
// for static libs only
|
||||
if (this->GeneratorTarget->GetType() == cmStateEnums::STATIC_LIBRARY) {
|
||||
this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles,
|
||||
this->GeneratorTarget, "target");
|
||||
this->LocalGenerator->CreateCDCommand(
|
||||
commands1, this->Makefile->GetCurrentBinaryDirectory(),
|
||||
this->LocalGenerator->GetBinaryDirectory());
|
||||
commands.insert(commands.end(), commands1.begin(), commands1.end());
|
||||
commands1.clear();
|
||||
}
|
||||
|
||||
// Add the pre-build and pre-link rules building but not when relinking.
|
||||
if (!relink) {
|
||||
this->LocalGenerator->AppendCustomCommands(
|
||||
|
||||
Reference in New Issue
Block a user