On 07 May 2014, at 10:59, Kurt Pattyn <[email protected]> wrote:
> On 06 May 2014, at 11:40, Mikołaj Siedlarek <[email protected]> wrote:
> 
>> Hi,
>> 
>> I’m on a quest to enable hack-free all-warnings-enabled building of my 
>> project using, among others,
>> Qt and CMake. This requires that compiler treat Qt headers included in my 
>> code as “system headers”
>> and not warn me about constructs used in them.
>> 
>> I already contributed -iframework (Apple frameworks counterpart to -isystem) 
>> flag support to CMake
>> (https://github.com/Kitware/CMake/pull/100), so with 3.0 version it should 
>> correctly handle properly
>> marked include directories on all systems.
>> 
>> The only problem is current CMake integration in Qt uses 
>> INTERFACE_INCLUDE_DIRECTORIES
>> target property, when to be provide a system include directory it should use
>> INTERFACE_SYSTEM_INCLUDE_DIRECTORIES. On compilers that do not support 
>> -isystem flag
>> CMake falls back to -I, so compatibility would not be a problem.
>> 
>> The problem is current CMake integration in Qt requires version 2.8.3, but
>> INTERFACE_SYSTEM_INCLUDE_DIRECTORIES is only available since 2.8.12. Before 
>> I propose
>> a patch I’d like to consult a maintainer of this system, or at least someone 
>> more familiar with
>> Qt release process, whether it’s best to add some CMake version checks or 
>> version requirement
>> can be bumped with next release.
>> 
>> Please direct me to someone I can discuss this with, or tell me directly 
>> that my idea is bad.
> It is a very good idea to have the Qt files treated as system files. I’ve 
> gone to great lengths to
> filter out the warnings from Qt in our CMake files. It would be nice if this 
> was included out-of-the-box.
> One problem that is not fixed by the system flag, is the auto-generated files 
> (moc files).

I thought about that and I believe it could be fixed in CMake’s AUTOMOC 
functionality. I’ll look into it.

> For those I have submitted a patch that should appear in Qt 5.3.1.
> Personally I would not force version 2.8.12 as AFAIK that version is not 
> available out-of-the-box on Debian
> for instance.

Yes, it seems stable Debian has just been released with CMake 2.8.9, so it’s 
gonna be here for a while.
A version check then and fallback to INTERFACE_INCLUDE_DIRECTORIES.
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to