[cmake-developers] CMake API for warnings
Ruslan Baratov
ruslan_baratov at yahoo.com
Sun Mar 27 18:17:08 EDT 2016
I like an effort but not an implementation:
* It would be nice to not to set flags globally since we have more fine
control options like target_compile_options (i.e. different target may
have different warning settings)
* this will not work for Xcode since warnings should be set by
XCODE_ATTRIBUTE_* properties
Take a look at this approach:
* https://github.com/ruslo/sugar/wiki/Cross-platform-warning-suppression
Though I think it should be simplified. Best implementation I see so far:
* Remove `RESULT_PROPERTIES`: implement warning flags ->
XCODE_ATTRIBUTE_* mapping in CMake itself
* Remove `CLEAR_GLOBAL` option: add user variable checking to CMake so
it will not set `/W3` (or any other warning flags) by default. May be
introduce new policy (?)
Ruslo
On 27-Mar-16 12:10, Geoffrey Viola wrote:
>
> CMake should support an API to manage compiler warnings to simplify a
> common problem. Using more compilers with high levels of warnings
> means cheap static analysis and better conformance to standard C++.
>
> Compiler warnings are an easy way to increase program reliability. A
> use case would be to increase compilation warnings on all internal
> code, ignore warnings on all 3^rd party code, and treat all warnings
> as errors.
>
> Attached is an initial attempt to control warnings in CMake. The API
> has a short name (e.g. set_warnings_as_errors) for simplicity and a
> more technical name (e.g. set_warnings_as_errors_folder) to specify
> scope. Note that the short name acts on CMake’s folder scope and is
> meant to be global. The current compilers considered are GCC, clang,
> Green Hills, and MSVC. A CMake Warning is issued if the macro does not
> support a specific compiler so that conformance can be guaranteed.
>
> Thanks,
>
> Geoffrey Viola
>
> This message contains confidential information and is intended only
> for the recipient. If you are not the named addressee you should not
> disseminate, distribute or copy this e-mail. Please notify the sender
> immediately if you have received this e-mail by mistake and delete
> this e-mail from your system. Finally, the recipient should check this
> email and any attachments for the presence of viruses. The company
> accepts no liability for any damage caused by any virus transmitted by
> this email.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20160328/aab30dd6/attachment.html>
More information about the cmake-developers
mailing list