[CMake] No FileIsSymlink(...) for Win32?

Pau Garcia i Quiles pgquiles at elpauer.org
Wed Nov 14 18:40:26 EST 2007


Quoting Gonzalo Garramuño <ggarra at advancedsl.com.ar>:

> Miguel A. Figueroa-Villanueva wrote:
>>
>> Isn't there a way to detect the shortcut in win32 and not create the
>> directory if it exists? Something equivalent to:
>>
>
> The short answer is that no.  Shortcuts are basically a property of the
> Windows GUI environment, not of the file system.  As such, all
> command-line tools in windows don't respect them.  cmake, being a
> command-line tool, should behave like other command-line tools.
>
> A Windows shortcut is a really a text file with a .lnk extension.  As
> such, it is different from an actual directory with the same name.
>
> Shortcuts are not really symbolic links at all.  Windows to this day
> does not have symbolic links as Unix does, so it would be incorrect to
> use any of those functions to work with shortcuts.
>
> You may, however, want to request a function to parse shortcuts, albeit
> you can probably write it in .cmake yourself (as it a .lnk file is just
> a text file).

I disagree.

Windows 2000 Server, XP and 2003 Server, at least, include a linkd.exe  
utility which creates actual symlinks. It only works on NTFS  
filesystems, AFAIK, but it works well. Active Directory relies uses  
linkd'd directories in several places (for instance, SYSVOL and  
SYSVOL/domain).

That's what I'd like to implement next week in the Eclipse generator  
for it to allow more than one out-of-tree build and no pollution in  
the source tree.

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)



More information about the CMake mailing list