Open ClausKlein opened 2 years ago
Clang tidy returns the warnings from those headers if your config file includes all headers.
Yes, the only way I know to prevent this is to patch the CMake
generated compile_commands.json
file:
Claus-iMac:ModernCmakeStarter clausklein$ make -n check
perl -i.bak -p -e 's#-W[-\w]+(=\d)?\b##g;' -e 's#-I(/Users/clausklein/.cache/CPM)#-isystem $1#g;' ./build-ModernCmakeStarter-Debug/compile_commands.json
run-clang-tidy -p ./build-ModernCmakeStarter-Debug /Users/clausklein/Workspace/cpp/ModernCmakeStarter
Claus-iMac:ModernCmakeStarter clausklein$
What does this change?
What does this change?
I use CMP.cmake
to fetch my dependencies. With perl script, I replace all -I include path
to CMP cache to-isystem include path
. And I delete all -W options
because some gcc
warnings are not valid vor clang
.
When you use vpkg
or conan
the imported CMake config packages
use implizit this -isystem
include path.
Background info: I use the CPM_SOURCE_CACHE environment variable in my makefile!
perl -i.bak -p -e 's#-W[-\w]+(=\d)?\b##g;' -e 's#-I(${CPM_SOURCE_CACHE})#-isystem $$1#g;' $(BUILD_DIR)/compile_commands.json
Upvote & Fund
I am using Polar.sh so you can upvote and help fund this issue. The funding is received once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.