Sono coinvolto in un progetto software scritto in Qt e realizzato con qmake e gcc su Linux. Dobbiamo collegarci a una libreria di terze parti che è di qualità abbastanza bassa e sputa tonnellate di avvertimenti. Vorrei usare -W -Wall sul nostro codice sorgente, ma passare -w alla libreria di terze parti per mantenere la console libera da rumore e confusione, in modo che possiamo concentrarci sulla nostra qualità del codice.Disabilita condizionalmente gli avvisi con qmake/gcc?
In qmake, c'è un modo per aggiungere condizionatamente CFLAGS/CXXFLAGS a determinati file e librerie?
Corretto, gli avvisi provengono dalle intestazioni di terze parti. Prenderò in esame i pragma, ma c'è un modo per iniettarli solo nelle intestazioni di terze parti o dovrò modificare le intestazioni? –
È possibile introdurre i wrapper di intestazione per le intestazioni di terze parti. Un approccio a forza bruta consisterebbe nel mettere qualsiasi inclusione per un'intestazione di terze parti in un'unica intestazione, quindi l'app include solo quella intestazione dove necessario. Per esempio. se la tua app utilizza la libreria Zed, quindi crea un'intestazione zed.h che include tutte le intestazioni Zed. Quindi puoi aggiungere i pragmi a zed.h. Oppure basta leggere il codice e circondare ogni #include con la direttiva. –