Когда программа make вызывает программы, такие как компилятор, компоновщик или любой другой инструмент, такой как cppcheck, в вашем случае, тогда оценивается возвращаемое значение программы. Если какая-либо программа возвращает значение 0
, то make
считает это успешным, поэтому оно продолжается. Если какая-либо программа возвращает другое значение, то 0
, тогда make
завершается ошибкой и не продолжается. Это известное соглашение. Поэтому все, что вам нужно сделать, это настроить cppcheck
таким образом, чтобы он возвращал 0
в случае успеха, и другое значение в случае сбоя. Этого можно добиться с помощью параметра --error-exitcode=1
:
list(APPEND CMAKE_CXX_CPPCHECK "--enable=all" "--error-exitcode=10")
Из документации cppcheck:
--error-exitcode=<n> If errors are found, integer [n] is returned instead of
the default '0'. '1' is returned
if arguments are not valid or if no input files are
provided. Note that your operating system can modify
this value, e.g. '256' can become '0'.
Однако это также не удастся, если есть какие-либо сообщение cppcheck. Возможно, вам нужно настроить переключатель enable
на классы серьезности, которые вас интересуют. В качестве альтернативы, вы можете подавлять сообщения, см. Документацию командной строки cppcheck, как этого добиться.