diff options
author | Gregor Jasny <gjasny@googlemail.com> | 2017-01-20 22:24:05 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-01-26 18:30:37 (GMT) |
commit | 50e1c1056ea82690474dc186d7a4103b33547fa6 (patch) | |
tree | e8d00c862b81444d0439d10debedde6e94bc4b56 /Source/cmMakefileLibraryTargetGenerator.cxx | |
parent | 8643ca75c705568bc9bb084a5182baef04865d2d (diff) | |
download | CMake-50e1c1056ea82690474dc186d7a4103b33547fa6.zip CMake-50e1c1056ea82690474dc186d7a4103b33547fa6.tar.gz CMake-50e1c1056ea82690474dc186d7a4103b33547fa6.tar.bz2 |
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.
Diffstat (limited to 'Source/cmMakefileLibraryTargetGenerator.cxx')
-rw-r--r-- | Source/cmMakefileLibraryTargetGenerator.cxx | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index 33f2c35..ff8b604 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -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( |