D10666: kdevplatform_add_plugin: remove effectless OBJECT_DEPENDS on json file

Friedrich W. H. Kossebau noreply at phabricator.kde.org
Mon Feb 19 18:27:55 UTC 2018


kossebau created this revision.
kossebau added a reviewer: KDevelop.
Restricted Application added a subscriber: kdevelop-devel.
kossebau requested review of this revision.

REVISION SUMMARY
  The JSON file argument passed to K_PLUGIN_FACTORY_WITH_JSON ends up
  being used with the macro Q_PLUGIN_METADATA, which is a no-code macro
  at the C++ level and only used to note information used by moc for the
  generated moc file.
  
  So when the content of the JSON file has changed, this will not change
  anything in the preprocessed source file itself. It will only change the
  content of the moc file generated based on it, which already is noted
  as dependency to the object file due to being a file included by the
  source.
  
  This code possibly was added hoping to solve the issue of cmake's automoc
  not properly dealing with Q_OBJECT macros hidden away in other C++
  preprocessor macros. But it misses to catch the issue that it is the
  generated moc file which needs to be regenerated on a change of the JSON
  file, not just the object file.
  Regenerating the moc file is something only automoc decides about when
  being run and which seems not influenced by CMakeLists.txt rules.
  
  Cmp. https://gitlab.kitware.com/cmake/cmake/issues/17750

TEST PLAN
  Still builds as before.
  Editing JSON files still results in same (broken) effective rebuild
  behaviour: the moc file is not regenerated, so the new JSON content
  not picked up. Other than before the unneeded-because-all-sources-the-same
  rebuild of the object file is skipped though.

REPOSITORY
  R32 KDevelop

BRANCH
  removeeffectlessOBJECT_DEPENDS

REVISION DETAIL
  https://phabricator.kde.org/D10666

AFFECTED FILES
  kdevplatform/cmake/modules/KDevPlatformMacros.cmake

To: kossebau, #kdevelop
Cc: kdevelop-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20180219/4b8844a1/attachment.html>


More information about the KDevelop-devel mailing list