[cmake-developers] -GNinja on Windows

Peter Kümmel syntheticpp at gmx.net
Tue Jun 12 19:08:19 EDT 2012


On 12.06.2012 21:30, Bill Hoffman wrote:
> On 6/12/2012 3:15 PM, Peter Kümmel wrote:
>>
>> First its evaluates the variable "out"
>> https://github.com/syntheticpp/ninja/blob/master/src/eval_env.cc#L36
>>      ->  "c:\my build\Utilities\KWIML\test\CMakeFiles\cmIML_test.dir\test.c.obj"
>>
> So, if this removed the quotes would it work: env->LookupVariable(i->first)
>
> Remove the start and end quotes from the lookup?
>> then it appends a RAW string
>> https://github.com/syntheticpp/ninja/blob/master/src/eval_env.cc#L34
>>      ->  "c:\my build\Utilities\KWIML\test\CMakeFiles\cmIML_test.dir\test.c.obj".d
>
> Again, I think this should be moved to the ninja mailing list.  My goal
> is to create a patch that makes them happen and works with spaces in the
> path on windows.  Also, since ninja devs care more about linux if the
> problem could be re-created there that might help, but I suspect it can
> not be...
>

Found a way around $out.d, the dep file path is now passed explicitly by DEP_FILE:

#############################################
# Rule for compiling C files.
rule C_COMPILER
   depfile = $DEP_FILE


# Object build statements for EXECUTABLE target testing
build CMakeFiles/testing.dir/testing.cxx.obj: CXX_COMPILER E$:/sandbox/cmake/cmake$ with$ spaces/Tests/Testing/testing.cxx
   DEP_FILE = CMakeFiles/testing.dir/testing.cxx.obj.d


So we don't need any ninja patches, neither for msvc nor for mingw.
All tests pass with ninja master.

Peter



More information about the cmake-developers mailing list