You want to extract a C project using Kythe, but the project doesn't use a Kythe-supported build tool? You can, if you are willing to hack a bit and intercept the compiler.
Create a script mycc with the content:
#!/bin/bash
echo "$@" >> /tmp/mycc.log
KYTHE_OUTPUT_DIRECTORY=/tmp/entries /opt/kythe/extractors/cxx_extractor $@
gcc $@
Create a similar script mycxx, using g++
instead gcc. Then test your setup:
git clone https://github.com/ttroy50/cmake-examples
cd cmake-examples/01-basic/B-hello-headers
chmod +x ./mycc ./mycxx
mkdir /tmp/entries
CC=$(readlink -f /path/to/mycc) CXX=$(readlink -f mycxx) cmake .
CC=$(readlink -f /path/to/mycc) CXX=$(readlink -f mycxx) make
Now the Kythe entries are available, and you can continue the pipeline at indexing them.
Note: This is not a complete solution. You will get errors when the extractor is invoked on linker arguments. You can ignore these, but don't be surprised if some gcc command-line massaging is needed for complicated situations.
Have fun hacking!