Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CMake (cotire) precompiled headers and disable warnings

I'm using cotire(https://github.com/sakra/cotire) plugin for CMake, which handles several nice things related to compilation speedup(for example precompiled headers).

The problem is that I include several headers (Boost related or Protobuf) as system ones - in which warnings are disabled. After they are being precompiled I've got a lot of warnings.

Can I disable warnings in precompiled headers?

like image 305
Dejwi Avatar asked Mar 26 '13 19:03

Dejwi


1 Answers

I don't think there's a built in way to do this, we modified the cotire function cotire_add_pch_compilation_flags (line 1244 cotire.cmake version 1.5.1) to add the "-w" flag when compiling the precompiled header. We changed the GNU|CLang section to read

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

This suppresses all warnings for us, we have a lot of warnings turned on - including -Werror, so it was an essential change!

like image 123
Adam Bowen Avatar answered Nov 15 '22 12:11

Adam Bowen