[cmake-developers] ninja failing CompileCommandOutput

Brad King brad.king at kitware.com
Fri Jun 1 13:55:12 EDT 2012


On 06/01/2012 12:22 PM, Bill Hoffman wrote:
> Can you explain to me what this test actually does?  I guess it is 
> running a compile command without the build tool?   Looks like you are 
> using a c++ program to run the compiler.  I think you need to go to 
> POSIXs paths to run the command and that should work.  You have a string 
> with \ in it, and you need to change it to /.   Not sure why ninja fails 
> and nmake does not...

It's testing the CMAKE_EXPORT_COMPILE_COMMANDS option:

 http://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/CMakeGenericSystem.cmake;hb=v2.8.8#l55

originally added here:

 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0e6b05fc
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7039d1fd

and that the Ninja-EXPORT_COMPILE_COMMANDS topic enables in the
Ninja generator.

The generator is supposed to produce a file that lists all the
compiler invocation command lines in a JSON format.  The test
runs a build with the option and then runs a program that reads
the generated file and re-plays the commands.  The test and its
C++ program should not need modification because it works for the
Makefile generator.  The Ninja generator will need to generate
the properly encoded commands like the Makefile generator does.

-Brad



More information about the cmake-developers mailing list