[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