2013-03-26 5 views
6

Ich benutze Cotire (https://github.com/sakra/cotire) Plugin für CMake, die mehrere nette Dinge im Zusammenhang mit Compilierung beschleunigen behandelt (zum Beispiel vorkompilierte Header).CMake (cotire) vorkompilierte Header und deaktivieren Warnungen

Das Problem ist, dass ich mehrere Header (Boost bezogen oder Protobuf) als System enthalten - in denen Warnungen deaktiviert sind. Nachdem sie vorkompiliert wurden, habe ich eine Menge Warnungen.

Kann ich Warnungen in vorkompilierten Headern deaktivieren?

+1

Mit [cotire 1.6] (https://github.com/sakra/cotire) werden Warnungen in vorkompilierten Headern unterdrückt. – sakra

Antwort

1

Ich denke nicht, dass es eine eingebaute Möglichkeit gibt, dies zu tun, wir modifizierten die Cotire-Funktion cotire_add_pch_compilation_flags (Zeile 1244 cotire.cmake Version 1.5.1), um das Flag "-w" beim Kompilieren des vorkompilierten Headers hinzuzufügen. Wir änderten die GNU | Clang Abschnitt

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() 

Dies unterdrückt alle Warnungen für uns zu lesen, wir haben eine Menge Warnungen eingeschaltet - einschließlich Werror, so dass es eine wesentliche Änderung war!