@@ -46,6 +46,8 @@ CXX_OPT=("-fsyntax-only" "-w" "-std=c++2a")
4646CC=gcc
4747CC_OPT=(" -fsyntax-only" " -w" " -std=c11" )
4848
49+ IWYU_OPTS=(" -Xiwyu" " --no_fwd_decls" " -Xiwyu" " --update_comments" )
50+
4951function get_pkg_config_cflags {
5052 # TODO: get rid of the error enabling/disabling?
5153 set +e
@@ -63,16 +65,31 @@ function get_pkg_config_cflags {
6365 echo " $PKGCONFIG "
6466}
6567
68+ function iwyu_run {
69+ # TODO: convert -I includes provided by pkg-config to -isystem so IWYU does not produce warnings for system headers
70+ ${IWYU} " ${IWYU_OPTS[@]} " " $@ "
71+ }
72+
6673function cc_syntax {
67- ${CC} " ${CC_OPT[@]} " " $@ "
74+ if [ -z " $IWYU " ]; then
75+ ${CC} " ${CC_OPT[@]} " " $@ "
76+ else
77+ iwyu_run " ${CC_OPT[@]} " " $@ "
78+ fi
6879}
6980
7081function cxx_syntax {
71- ${CXX} " ${CXX_OPT[@]} " " $@ "
82+ if [ -z " $IWYU " ]; then
83+ ${CXX} " ${CXX_OPT[@]} " " $@ "
84+ else
85+ iwyu_run " ${CXX_OPT[@]} " " $@ "
86+ fi
7287}
7388
7489function cppcheck_run {
75- " ${CPPCHECK} " " ${CPPCHECK_OPT[@]} " " $@ "
90+ if [ -z " $IWYU " ]; then
91+ " ${CPPCHECK} " " ${CPPCHECK_OPT[@]} " " $@ "
92+ fi
7693}
7794
7895# posix.c
@@ -239,6 +256,7 @@ function sqlite3_fn {
239256
240257# openmp.c
241258function openmp_fn {
259+ # TODO: omp.h not found with IWYU
242260 # MacOS compiler has no OpenMP by default
243261 if ! command -v sw_vers; then
244262 echo " OpenMP assumed to be present, checking syntax with ${CC} now."
0 commit comments