On Wed, May 16, 2012 at 11:54 PM, Peter Collingbourne <[email protected]> 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