2013-03-26 11 views
6

Sto usando il plugin cotire (https://github.com/sakra/cotire) per CMake, che gestisce molte cose interessanti relative alla velocità di compilazione (ad esempio intestazioni precompilate).CMake (cotire) intestazioni precompilate e disabilitazione avvisi

Il problema è che includo diverse intestazioni (Boost related o Protobuf) come quelle di sistema - in cui gli avvisi sono disabilitati. Dopo che sono stati precompilati ho un sacco di avvertimenti.

Posso disabilitare gli avvisi nelle intestazioni precompilate?

+1

Con gli avvisi [cotire 1.6] (https://github.com/sakra/cotire) le intestazioni precompilate vengono eliminate. – sakra

risposta

1

Non penso che ci sia un modo per farlo, abbiamo modificato la funzione cotire cotire_add_pch_compilation_flags (riga 1244 cotire.cmake versione 1.5.1) per aggiungere il flag "-w" durante la compilazione dell'intestazione precompilata. Abbiamo cambiato la GNU | sezione clangore di leggere

elseif (_compilerID MATCHES "GNU|Clang") 
     # GCC/Clang options used 
     # -x specify the source language 
     # -c compile but do not link 
     # -o place output in file 
     set (_xLanguage_C "c-header") 
     set (_xLanguage_CXX "c++-header") 
     if (_flags) 
      # append to list 
      list (APPEND _flags "-x" "${_xLanguage_${_language}}" "-w" "-c" "${_prefixFile}" -o "${_pchFile}") 
     else() 
      # return as a flag string 
      set (_flags "-x ${_xLanguage_${_language}} -w -c \"${_prefixFile}\" -o \"${_pchFile}\"") 
     endif() 

Questo sopprime tutte le avvertenze per noi, abbiamo un sacco di avvertimenti acceso - tra cui -Werror, quindi è stato un cambiamento fondamentale!