On Wed, May 16, 2012 at 11:54 PM, Peter Collingbourne <pe...@pcc.me.uk> wrote: > On Mon, Apr 02, 2012 at 02:21:10PM +0200, Nicolas Desprès wrote: >> Hi, >> >> It looks like an issue in the generator. The symlink is created as a >> side effect of a rule and not mentioned in the output files. That's >> why it does not get removed. I have pushed a patch on my CMake's >> github clone that should fix the issue without breaking cmake's test >> suite. Although it seems to works for your case, I'm not sure it is >> the right way to fix this issue. I think you should open a ticket on >> the bug tracker. >> >> The branch: https://github.com/polrop/CMake/commits/ninja-clean-lib-symlink >> The patch: >> https://github.com/polrop/CMake/commit/7d9c4bec56e8ec34ac715a4e4bda0f0f55002ef0 >> >> Peter could you review it please? > > Apologies for the slow response.
No problem. > > Perhaps I am being over cautious, but should this conditional: > > if (targetOutputReal == soName) { > > read: > > if (targetOutput == soName || targetOutputReal == soName) { > > Otherwise, LGTM. I think you are right according to: int cmake::SymlinkLibrary(std::vector<std::string>& args) { int result = 0; std::string realName = args[2]; std::string soName = args[3]; std::string name = args[4]; if(soName != realName) { if(!cmake::SymlinkInternal(realName, soName)) { cmSystemTools::ReportLastSystemError("cmake_symlink_library"); result = 1; } } if(name != soName) { if(!cmake::SymlinkInternal(soName, name)) { cmSystemTools::ReportLastSystemError("cmake_symlink_library"); result = 1; } } return result; } I have amended the patch, rebased it on master and pushed it. Thanks, -Nico -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake