Build failure due to {cd bindir} failed on Windows/Ninja

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Build failure due to {cd bindir} failed on Windows/Ninja

Jom O'Fisher
I have an issue that's really difficult to track down because it only seems to repro on certain machines which don't have access to. 

The sequence of events seems to be:
(1) Invoke cmake to generate ninja project. Success. 
* Note that generated rules.ninja has .o compilation dependencies with absolute paths and .so link dependencies with relative paths.
(2) Invoke "cmake --build my-path --target my-target"
(3) CMake changes tries to change it's working directory here:
(4) Evidence suggests this fails and is silently ignored here:
(5) CMake invokes ninja.exe to build.
(6) Ninja eventually tries to link the resulting .so and this fails because the .so path is relative in rules.ninja and the output folder doesn't exist relative to the current directory.

A common theme of the machines this repros on seems to be that they run a non-US-English Windows. There has to be more to it though because I tried that myself and still didn't repro. A theory I had was that CMakeCache.txt is written in some encoding that loses information in the presence of Unicode characters. I tried this and it didn't seem to pan out.

Mainly I'd like to see if anyone has ideas that would help me reproduce the issue and also whether you suspect it may be fixed in versions of CMake after 3.6.

My tracking bug which has the full history: https://issuetracker.google.com/37131900

Thanks for your help

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake