codecov-python
codecov-python copied to clipboard
Add support for clang and llvm-cov
It would be great if coverage would work for llvm as well out of the box. It provides quite similar interface to gcov, it just has to be executed as llvm-cov gcov, see http://llvm.org/docs/CommandGuide/llvm-cov.html
It's usage could be specified by parameter or autodected based on CC environment (use llvm-cov if CC is clang).
@nijel would love to. Do you have any open source projects showing off how llvm is used so I can review its process. Thanks!
I use it to build some projects on Travis CI, but meanwhile I've realized that the LLVM version there is quite old and the llvm-cov is probably not flexible enough to do what is needed.
But with recent version, all what should be needed is to run llvm-cov gcov
instead of gcov
. It seems to support all needed options...
@nijel perhaps other customers are having related issues, even though I have not heard of any to my knowledge. Do you have any suggestions on how to "automatically" detect when we should use llvm-cov gcov
instead of gcov
?
https://github.com/codecov/codecov-bash/blob/346e91cb2918fd1d84fde46c0814ae2005fee363/codecov#L484
You can already specify a custom "gcov" via
-x "llvm-cov gcov"
The only idea is to base this on CC environment variable. That should work quite reliable for Travis CI, but not sure about other environments...
@nijel I'm not familiar with the working of llvm-cov, but would invite a pull request to review your suggestions on how to implement this. Thanks!
I will look into this once Travis has upgraded LLVM to more recent version which behaves better in regards to coverage.