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!