[CMake] cmake -E create_symlink for Windows
Hendrik Sattler
post at hendrik-sattler.de
Fri Dec 11 09:17:45 EST 2009
Zitat von Michael Wild <themiwi at gmail.com>:
> On 11. Dec, 2009, at 14:27 , Marcel Loose wrote:
>> I was browsing the CMake sources for a problem I was facing with the
>> creation of symlinks (on Unix that is) and I noticed that the
>> SystemTools::CreateSymlink function simply returns false when building
>> on a Windows platform.
>>
>> Does that mean that I cannot use 'cmake -E create_symlink' on Windows.
>> If that's the case I consider it a bug, because the documentation
>> suggests that 'cmake -E create_symlink' provides a platform independent
>> way of creating symbolic links. So, if the OS and/or filesystem does not
>> support symbolic links, IMHO, it should just copy the file.
>
> Simply copying the file might be just as bad if people assume it
> really IS a symlink... IMHO, if the OS can't create a symlink, cmake
> -E create_symlink should fail loudly, not just silently ignore it.
> And somebody should implement this function for Windows >=
> Vista/2008 (i.e. WINVER >= 0x0600):
>
> http://msdn.microsoft.com/en-us/library/aa363866(VS.85).aspx
For this, also see
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Please note the UAC dialog when creating symlink on Vista. Have fun,
I'd say :-(
And what do you do on WindowsXP? What to do on FAT filesystems?
Additionally, without that extension above, it is non-obvious for
Windows users that a specific file is a symbolic link.
HS
More information about the CMake
mailing list