KConfigXT can over-include moc files
For instance for kwinscreenedgeSettings
// This file was generated by kcmutils_generate_module_data(): DO NOT EDIT!
#include "kwinscreenedgedata.h"
#include "kwinscreenedgesettings.h"
namespace KWin {
KWinScreenEdgeData::KWinScreenEdgeData(QObject *parent, const QVariantList &args)
: KCModuleData(parent, args)
, m_settings(new KWinScreenEdgeSettings(this))
{
autoRegisterSkeletons();
}
KWinScreenEdgeSettings *KWinScreenEdgeData::settings() const
{
return m_settings;
}
}
#include "kwinscreenedgedata.moc"
This causes compile warning such as :
AutoMoc warning
---------------
"BIN:/src/kcmkwin/kwinscreenedges/kwintouchscreendata.cpp"
includes the moc file "kwintouchscreendata.moc", but does not contain a Q_OBJECT, Q_GADGET, Q_NAMESPACE, Q_NAMESPACE_EXPORT, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_EXPORT_KPACKAGE_PACKAGE_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_EXPORT_KPACKAGE_PACKAGE_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_EXPORT_PLASMA_SERVICE, K_EXPORT_PLASMA_APPLET, K_EXPORT_PLASMA_PACKAGE, K_EXPORT_PLASMA_APPLETSCRIPTENGINE, K_EXPORT_PLASMA_DATAENGINESCRIPTENGINE, K_EXPORT_PLASMA_DATAENGINE, K_EXPORT_PLASMA_PACKAGE_WITH_JSON, K_EXPORT_PLASMA_SERVICE_WITH_JSON, K_EXPORT_PLASMA_APPLET_WITH_JSON, K_EXPORT_PLASMA_APPLETSCRIPTENGINE_WITH_JSON, K_EXPORT_PLASMA_DATAENGINESCRIPTENGINE_WITH_JSON, K_EXPORT_PLASMA_CONTAINMENTACTIONS_WITH_JSON, K_EXPORT_PLASMA_DATAENGINE_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_EXPORT_KPACKAGE_PACKAGE_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, KCMODULECONTAINER, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_EXPORT_KPACKAGE_PACKAGE_WITH_JSON, K_PLUGIN_FACTORY, K_PLUGIN_FACTORY_WITH_JSON, K_PLUGIN_CLASS_WITH_JSON, K_EXPORT_PLASMA_SERVICE, K_EXPORT_PLASMA_APPLET, K_EXPORT_PLASMA_PACKAGE, K_EXPORT_PLASMA_APPLETSCRIPTENGINE, K_EXPORT_PLASMA_DATAENGINESCRIPTENGINE, K_EXPORT_PLASMA_DATAENGINE, K_EXPORT_PLASMA_PACKAGE_WITH_JSON, K_EXPORT_PLASMA_SERVICE_WITH_JSON, K_EXPORT_PLASMA_APPLET_WITH_JSON, K_EXPORT_PLASMA_APPLETSCRIPTENGINE_WITH_JSON, K_EXPORT_PLASMA_DATAENGINESCRIPTENGINE_WITH_JSON, K_EXPORT_PLASMA_CONTAINMENTACTIONS_WITH_JSON, K_EXPORT_PLASMA_DATAENGINE_WITH_JSON, K_EXPORT_PLASMA_RUNNER, K_EXPORT_RUNNER_CONFIG or K_EXPORT_PLASMA_RUNNER_WITH_JSON macro.
The code managing this is at https://invent.kde.org/frameworks/kconfig/-/blob/master/src/kconfig_compiler/KConfigSourceGenerator.cpp#L697
Opening it here instead of bugs, because it is really an internal issue.