[cmake-developers] CMP0071

clinton at elemtech.com clinton at elemtech.com
Wed Oct 4 22:01:50 EDT 2017

----- On Sep 26, 2017, at 9:07 AM, Sebastian Holtermann seblist at xwmw.org wrote:

>> I updated and I'm getting this:
>> CMake Warning (dev) in claro/navigation5/CMakeLists.txt:
>> Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files.
>> Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy
>> command to set the policy and suppress this warning.
>> AUTOMOC: Ignoring GENERATED header file(s):
>> "/path/to/ui_SomeFile.h"
>> "/path/to/qrc_AnotherFile.cpp"
>> Those ui_* and qrc_* files do not require processing by moc.
>> In this case, I was using qt5_wrap_ui() and qt5_add_resources().
>> I did an experiment and replaced qt5_wrap_ui() with autouic, and the warning
>> went away for those ui_* files.
>> Is there a way to not print out that policy warning on ui_* and qrc_* files
>> when using qt5_wrap_ui()/qt5_add_resources()? These are the only file types
>> for which I'm getting that warning.
> You can set the source file property SKIP_AUTOMOC on the GENERATED files.
> See: https://cmake.org/cmake/help/v3.9/prop_sf/SKIP_AUTOMOC.html
> See: https://cmake.org/cmake/help/git-master/policy/CMP0071.html
> For example like this
> ```
> set_property(SOURCE /path/to/ui_SomeFile.h PROPERTY SKIP_AUTOMOC ON)
> set_property(SOURCE /path/to/qrc_AnotherFile.cpp PROPERTY SKIP_AUTOMOC ON)
> ```

I'm probably pushing things here, but why not.
I'm experimenting with setting AUTOMOC/AUTOUIC/AUTORCC on, and also using the qt5_* macros.

I see the rcc processing only looks at *.qrc files, but the uic processing looks at files with any extension.  Why not limit that to just *.ui files?  I find myself setting SKIP_AUTOUIC on *.h and *.cpp files to silence CMP0071 warnings.  Its obvious to me that a .cpp or .h file is not an xml file as expected by uic.

I can understand having to set SKIP_AUTOMOC on files with various file extensions.

I bring this up here in case something needs to change on the CMake side.


More information about the cmake-developers mailing list