On 8/12/2010 8:36 PM, J Decker wrote:
> CMake Error: The source directory "C:/build/test" does not exist.
> Specify --help for usage, or press the help button on the CMake GUI.
> Makefile:118: *** [cmake_check_build_system] Error 1

I found it.  CMake actually is preserving the path as "/test" until
the make tool re-runs it with the "-H\test" option.  Then the same
code path that causes just "cmake ... \test" to fail gets hit.  The
code assumed that paths with a single leading slash were always
UNIX-style paths with forward slashes.

Please try the patch below against v2.8.2 on your real test case.
It works for me with the toy case you posted.  I don't know how
this would have worked for you with earlier CMake versions.  This
code has not changed in a long time.

-Brad

P.S.  I don't know what I was smokin' earlier when I claimed that
"/test" is not valid.  CMake uses forward slashes for all its paths
internally even on Windows, and I also know it's okay to use an
implied current drive letter.  My bad.


diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index 3153235..1f3b5af 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -3143,9 +3143,9 @@ const char* SystemTools::SplitPathRootComponent(const 
char* p,
        }
      c += 2;
      }
-  else if(c[0] == '/')
+  else if(c[0] == '/' || c[0] == '\\')
      {
-    // Unix path.
+    // Unix path (or Windows path w/out drive letter).
      if(root)
        {
        *root = "/";

_______________________________________________
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

Reply via email to