cppcheck output garbled when using multiple make jobs
Cmake version: 3.17.2
When setting CMAKE_CXX_CPP_CHECK
to something, and then compiling a project with make -j12
(for instance), we get a lot of overlapping output, presumably because cppcheck output is not serialized, in contrast to the regular cmake output.
Example (I think one can find Checking <file> ... 44/115 files checked 38% done
or similar in there):
[…]
5C hfeiclkeisn gc h/eUcskeerds /2r8a%s mduosn/eD
oCchuemceknts/Psiori/Projects/iAnugt o/CUrsaenres//aruatsomcursa/nDeo-ccuomreen/ttso/oPlssi/omrais/tPerro_jceocnttsr/oAlu/ttooCpriacnlei/satuetnoecrr.acnpep-:c oCrOeR/Es_rDcE/BBUeGh=a1v;iDoIuSrA/BBLaEs_iL
cIMBoUvSeBm_e1n_t0s=/1M;oDvIeSTAiBnLeEs_PCAP=1;DI.ScApBpL E._.P.N
G3=41/;1v1t5k Rfeinldeesr icnhgeCcoknetde x2t92%D _dAoUnTeO
ICNhIeTc=k1i(nvgt k/RUesnedresr/irnagsCmounst/eDxotcOupmeennGtLs2/)P;svitokrRie/nPdreorjiencgtCso/rAeu_tAoUCTrOaInNeI/Ta=u3t(ovctrkaInnet-ecroarcet/isorncS/tByelhea,vvitokuRre/nBdaesriicnMgoFvreemeeTnytps
e/,RvottkaRteenGdrearpipnlgeO.pcepnpG L.2.).;
P3C5L/_1O1N5L Yf_iClOeRsE _cPhOeIcNkTe_dT Y3P0E%S =dOoNn;eN
OC_hEeXcPkLiInCgI T/_UIsNeSrTsA/NrTaIsAmTuIsO/NDSo=c1u;mCeOnRtEs_/DPEsBiUoGr=i1/;PDrIoSjAeBcLtEs_/LAIuBtUoSCBr_a1n_e0/=a1u;tDoIcSrAaBnLeE-_cPoCrAeP/=s1r;cD/IBSeAhBaLvEi_oPuNrG/=B1a;sQicTM_oCvOeRmEe_nLtIsB
/=W1a;iQtTF_oGrUCIy_cLlIeBs=.1c;pQpT _.W.I.D
G3E6T/S1_1L5I Bf=i1l;evst kcRheencdkeerdi n3g1C%o ndtoenxet
2CDh_eAcUkTiOnIgN I/TU=s"e1r(sv/trkaRsemnudse/rDioncguCmoennttesx/tPOspieonrGiL/2P)r"o;jvetcktRse/nAduetroiCnrgaCnoer/ea_uAtUoTcOrIaNnIeT-=c"o3r(ev/tskrIcn/tBeerhaacvtiioounrS/tDyelmeo,Movevments/COMDetmk
oR.ecnpdpe r.i.n.g
F3r7e/e1T1y5p ef,ivlteksR ecnhdeecrkiendg O3p2e%n GdLo2n)e"
;CPhCeL_OcNLY_CORE_POINT_TYPES=ONk;iNnOg_ E/XUPsLeIrCsI/Tr_aIsNmSuTsA/NDToIcAuTmIeOnNtSs=/1P;s_i_oPrIiC/_P_r=o1j;e_c_tcsp/lAuustpolCursa=n2e0/1a4u0t2oLc.r.a.n
e1-0cor9e//src/Behaviour/C1om1p5o ufnidlMeosv ecmheenctkse/dM o9v4e%A ldoonngeB
eClhte.cckpipn g. ./.U
s3e8r/s1/1r5a sfmiulse/sD occhuemceknetds /3P3s%i odroin/eP
rCohjeeccktisn/gA u/tUosCerrasn/er/aasumtuosc/rDaonceu-mceonrtes//tPosoilosr/im/aPsrtoejre_cctosn/tAruotlo/Cmraainnew/ianudtoowc.rcapnpe -.c.o.r
eC/hsercck/iBnegh a/vUisoeurrs//Croamspmouusn/dDMoocvuemmeennttss//PMsoivoerAil/oPnrgoSjtercatisg/hAtuLtionCer.acnpep/ a.u.t.o
c3r9a/n1e1-5c ofriel/etso oclhse/cmkaesdt e3r3_%c odnotnreo
lC/hmeacikniwnign d/oUws.ecrpsp/:r aCsOmRuEs_/DDEoBcUuGm=e1n;tDsI/SPAsBiLoEr_iL/IPBrUoSjBe_c1t_s0/=A1u;tDoICSrAaBnLeE/_aPuCtAoPc=r1a;nDeI-ScAoBrLeE/_sPrNcG/=B1e;hvatvkiRoeunrd/eCroimnpgoCuonndtMeoxvte2mDe
_nAtUsT/OMIoNvIeTM=u1l(tvitJkoRienntd.ecrpipn g.C.o.n
t4e0x/t1O1p5e nfGiLl2e)s; vcthkeRceknedde r3i4n%g Cdoornee_
ACUhTeOcIkNiInTg= 3/(UvstekrIsn/trearsamcutsi/oDnoSctuymleen,tvst/kPRseinodreir/iPnrgoFjreecetTsy/pAeu,tvotCkrRaenned/earuitnogcOrpaenneG-Lc2o)r;eP/CsLr_cO/NBLeYh_aCvOiRoEu_rP/OCIoNmTp_oTuYnPdEMSo=vOeNm;e
NnOt_sE/XMPoLvIeCSIaTf_eI.NcSpTpA N.T.I.A
T4I1O/N1S1=51 ;fCiOlReEs_ DcEhBeUcGk=e1d; D3I5S%A BdLoEn_eL
ICBhUeScBk_i1n_g0 =/1U;sDeIrSsA/BrLaEs_mPuCsA/PD=o1c;uDmIeSnAtBsL/EP_sPiNoGr=i1/;PQrTo_jCeOcRtEs_/LAIuBt=o1C;rQaTn_eG/UaIu_tLoIcBr=a1n;eQ-Tc_oWrIeD/GsErTcS/_BLeIhBa=v1i;ovutrk/RTeensdteMroidnuglCeo/nMtoev
xetG2aDn_tArUyTBOyIRNaIdTi=a"n1s(.vctpkpR e.n.d.e
r4i2n/g1C1o5n tfeixlteOsp ecnhGeLc2k)e"d; v3t6k%R ednodneer
iCnhgeCcokrien_gA U/TUOsIeNrIsT/=r"a3s(mvutsk/IDnotceurmaecnttiso/nPSstiyolrei,/vPtrkoRjeencdtesr/iAnugtForCereaTnyep/ea,uvttokcRreanndee-rcionrgeO/pserncG/LB2e)h"a;vPiCoLu_rO/NELmYe_rCgOeRnEc_yPMOoIdNuTl
_eT/YEPmEeSr=gOeNn;cNyOS_tEoXpP.LcIpCpI T._.I.N
S4T3A/N1T1I5A TfIiOlNeSs= 1c;h_e_cPkIeCd_ _3=71%; _d_ocnpel
uCshpelcuksi=n2g0 1/4U0s2eLr.s./.r
a1s1m0u/s1/1D5o cfuimleenst sc/hPescikoerdi /9P5r%o jdeocntes
/CAhuetcokCirnagn e//Uasuetrosc/rraansem-ucso/rDeo/csurmce/nBtesh/aPvsiioourri//DPrriovjiencgtAss/sAiusttoaCnrta/nJeo/yasuttiocckrOavneer-rciodree./ctpopo l.s./.m
a4s4t/e1r1_5c ofnitlreosl /cihmeacgkeevdi e3w8.%c pdpo n.e.
.C
[…]
I enable cppcheck like this:
find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck)
if (CMAKE_CXX_CPPCHECK)
list(
APPEND CMAKE_CXX_CPPCHECK
"--project=${CMAKE_CURRENT_LIST_DIR}/compile_commands.json"
"--suppress=preprocessorErrorDirective")
message(STATUS "Cppcheck invocation: ${CMAKE_CXX_CPPCHECK}")
else()
message(STATUS "Cppcheck not found")
endif()