On 03/29/2016 11:24 AM, Ruslan Baratov wrote:
>> OTOH many such switches are
>> so specific that they should not be abstracted and can instead be
>> added to COMPILE_OPTIONS with a $<C_COMPILER_ID:...> genex guard.
> What about generating nothing for such cases?

Yes, that makes sense.  I was just discussing alternatives.  Simon's
post contains an example of a granular flag that makes sense to try
to abstract.

>> I think these warning properties should perhaps be done as usage
>> requirements with propagation through INTERFACE_* properties.  I'd
>> need to see some example use cases spelled out though.
> But not if target is installed. It will be quite inconvenient if 3rd 
> party package add some flags to local targets. Is it possible to support 
> it from the box?

Yes, let's skip propagation until a valid use case is raised in the
future, if any.  Likely the directory properties can be used to specify
project-wide warning configurations without propagating across targets.

> What about this:
> 
>      compile_warnings # modify directory properties
>      target_compile_warnings # modify target properties
>      sources_compile_warnings # modify source properties

Let's start by getting the directory/target/source properties worked
out.  First we need to figure out how to make the properties work with
language-specific warning flags and such.  We can add command porcelain
for them later.

> Same API for all:
> 
>     *_compile_warnings(<global/target/source> DISABLE <warning-id> 
> ENABLE <warning-id> TREAT_AS_ERROR <warning-id>) # may be plus 'APPEND' 
> for extending instead of overwriting (?)

Somehow this needs to be encoded in a COMPILE_WARNINGS property or
group of properties.  They should support generator expressions for
per-configuration warnings.

> General warning-id's:
> 
>    * ALL
>    * DEFAULT
>    * LEVEL<N>

And `NONE`.

> Group warnings-id's:

Yes, but either the warning names or the property names will need to
allow for language-specific warnings.  We need to be able to control
warnings for C, C++, Fortran, etc. separately.  OTOH it would also
be nice to be able to set C and C++ warnings together since many of
them are common.

Ideas?

-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to