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

Miguel A. Figueroa-Villanueva miguelf at ieee.org
Wed Nov 14 17:08:42 EST 2007


Hello,

I have a directory structure (through cygwin) like the unices:

.../usr/local
.../usr/local/share
.../usr/local/man->share/man

The link above is not really a symlink, but a "shortcut". When I
install cmake, it creates the .../usr/local/man dir instead of placing
files in .../usr/local/share/man.

I searched through the CMake code and got all the way to the
MakeDirectory function call in file Source/kwsys/SystemTools.cxx:

bool SystemTools::MakeDirectory(const char* path)
{
...
  while((pos = dir.find('/', pos)) != kwsys_stl::string::npos)
    {
    topdir = dir.substr(0, pos);
    Mkdir(topdir.c_str());
    pos++;
    }
...
}

Isn't there a way to detect the shortcut in win32 and not create the
directory if it exists? Something equivalent to:

if(!SystemTools::FileIsSymlink(topdir.c_str()))
  {
  Mkdir(topdir.c_str());
  }


Thanks,
--Miguel


More information about the CMake mailing list