From e5c22e8441cf44810044aa8b779ee3986b6500fe Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Wed, 12 Aug 2026 13:57:15 +0200 Subject: [PATCH] fix(warnings): ensure compilation without warnings with gcc 16 the new gcc 16 will trigger new warnings related to https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wsfinae-incomplete makes sure to fix them cleaned come include to ensure logical order of inclusions (from most specific to most generic ones) also makes incremental compilation faster by spliting MOC generated code into files related to each headers instead of a big one see https://forum.qt.io/topic/164690/gcc-16-warnings-about-incomplete-types-in-an-sfinae-context/2?_=1786535933996 also https://www.kdab.com/save-re-compile-time-include-moc-files-in-source-files-video/ Signed-off-by: Matthieu Gallien --- src/common/syncjournaldb.cpp | 23 +++++++++++-------- src/gui/socketapi/CMakeLists.txt | 1 + src/gui/socketapi/socketapi.cpp | 1 + src/gui/socketapi/socketapi_p.h | 6 ++--- .../basepropagateremotedeleteencrypted.cpp | 2 ++ src/libsync/bulkpropagatordownloadjob.cpp | 2 ++ src/libsync/bulkpropagatorjob.cpp | 2 ++ src/libsync/creds/abstractcredentials.cpp | 5 +++- src/libsync/creds/dummycredentials.cpp | 2 ++ src/libsync/creds/httpcredentials.cpp | 2 ++ src/libsync/discovery.cpp | 2 ++ .../encryptedfoldermetadatahandler.cpp | 2 ++ src/libsync/encryptfolderjob.cpp | 2 ++ src/libsync/foldermetadata.cpp | 2 ++ src/libsync/owncloudpropagator.cpp | 2 ++ src/libsync/propagatedownload.cpp | 2 ++ src/libsync/propagatedownloadencrypted.cpp | 2 ++ src/libsync/propagateremotedelete.cpp | 2 ++ .../propagateremotedeleteencrypted.cpp | 2 ++ ...opagateremotedeleteencryptedrootfolder.cpp | 2 ++ src/libsync/propagateremotemkdir.cpp | 2 ++ src/libsync/propagateremotemove.cpp | 2 ++ src/libsync/propagateupload.cpp | 2 ++ src/libsync/propagateuploadencrypted.cpp | 2 ++ src/libsync/propagatorjobs.cpp | 2 ++ src/libsync/putmultifilejob.cpp | 2 ++ src/libsync/updatee2eefoldermetadatajob.cpp | 2 ++ .../updatee2eefolderusersmetadatajob.cpp | 2 ++ src/libsync/updatemigratede2eemetadatajob.cpp | 2 ++ 29 files changed, 71 insertions(+), 13 deletions(-) diff --git a/src/common/syncjournaldb.cpp b/src/common/syncjournaldb.cpp index 5f07877239297..f07ca54f18b7b 100644 --- a/src/common/syncjournaldb.cpp +++ b/src/common/syncjournaldb.cpp @@ -4,6 +4,16 @@ * SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "syncjournaldb.h" + +#include "version.h" +#include "filesystembase.h" +#include "common/asserts.h" +#include "common/checksums.h" +#include "common/preparedsqlquerymanager.h" +#include "common/c_jhash.h" + #include #include #include @@ -13,17 +23,10 @@ #include #include #include -#include -#include -#include "common/syncjournaldb.h" -#include "version.h" -#include "filesystembase.h" -#include "common/asserts.h" -#include "common/checksums.h" -#include "common/preparedsqlquerymanager.h" +#include -#include "common/c_jhash.h" +#include // SQL expression to check whether path.startswith(prefix + '/') // Note: '/' + 1 == '0' @@ -3314,3 +3317,5 @@ QDebug& operator<<(QDebug &stream, const SyncJournalFileRecord::EncryptionStatus } } // namespace OCC + +#include "moc_syncjournaldb.cpp" \ No newline at end of file diff --git a/src/gui/socketapi/CMakeLists.txt b/src/gui/socketapi/CMakeLists.txt index 370b07955221e..abb6bcea3fcb4 100644 --- a/src/gui/socketapi/CMakeLists.txt +++ b/src/gui/socketapi/CMakeLists.txt @@ -4,6 +4,7 @@ target_sources(nextcloudCore PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/socketapi.h ${CMAKE_CURRENT_SOURCE_DIR}/socketapi.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/socketapi_p.h ) if( APPLE ) diff --git a/src/gui/socketapi/socketapi.cpp b/src/gui/socketapi/socketapi.cpp index 6686cce15cad4..74f107f74ce79 100644 --- a/src/gui/socketapi/socketapi.cpp +++ b/src/gui/socketapi/socketapi.cpp @@ -1764,3 +1764,4 @@ void SocketApiJob::reject(const QString &response) } // namespace OCC #include "socketapi.moc" +#include "moc_socketapi_p.cpp" \ No newline at end of file diff --git a/src/gui/socketapi/socketapi_p.h b/src/gui/socketapi/socketapi_p.h index 051c389c89d4c..957640506f864 100644 --- a/src/gui/socketapi/socketapi_p.h +++ b/src/gui/socketapi/socketapi_p.h @@ -7,16 +7,16 @@ #ifndef SOCKETAPI_P_H #define SOCKETAPI_P_H -#include #include #include #include - #include #include +#include +#include +#include #include -#include namespace OCC { diff --git a/src/libsync/basepropagateremotedeleteencrypted.cpp b/src/libsync/basepropagateremotedeleteencrypted.cpp index 76267336fd439..e1697ecaeccec 100644 --- a/src/libsync/basepropagateremotedeleteencrypted.cpp +++ b/src/libsync/basepropagateremotedeleteencrypted.cpp @@ -197,3 +197,5 @@ const QByteArray BasePropagateRemoteDeleteEncrypted::folderToken() const } } // namespace OCC + +#include "moc_basepropagateremotedeleteencrypted.cpp" \ No newline at end of file diff --git a/src/libsync/bulkpropagatordownloadjob.cpp b/src/libsync/bulkpropagatordownloadjob.cpp index e1c0e2bd43608..feeac00b8cf5d 100644 --- a/src/libsync/bulkpropagatordownloadjob.cpp +++ b/src/libsync/bulkpropagatordownloadjob.cpp @@ -165,3 +165,5 @@ void BulkPropagatorDownloadJob::abortWithError(SyncFileItemPtr item, SyncFileIte } } + +#include "moc_bulkpropagatordownloadjob.cpp" \ No newline at end of file diff --git a/src/libsync/bulkpropagatorjob.cpp b/src/libsync/bulkpropagatorjob.cpp index 54a6d9c2bbd28..f75c6ffd11717 100644 --- a/src/libsync/bulkpropagatorjob.cpp +++ b/src/libsync/bulkpropagatorjob.cpp @@ -819,3 +819,5 @@ void BulkPropagatorJob::handleJobDoneErrors(SyncFileItemPtr item, } } + +#include "moc_bulkpropagatorjob.cpp" \ No newline at end of file diff --git a/src/libsync/creds/abstractcredentials.cpp b/src/libsync/creds/abstractcredentials.cpp index 7c0868ba8c949..5b9d237ac566f 100644 --- a/src/libsync/creds/abstractcredentials.cpp +++ b/src/libsync/creds/abstractcredentials.cpp @@ -4,12 +4,13 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ +#include "abstractcredentials.h" + #include #include #include #include "common/asserts.h" -#include "creds/abstractcredentials.h" namespace OCC { @@ -59,3 +60,5 @@ QString AbstractCredentials::keychainKey(const QString &url, const QString &user return key; } } // namespace OCC + +#include "moc_abstractcredentials.cpp" diff --git a/src/libsync/creds/dummycredentials.cpp b/src/libsync/creds/dummycredentials.cpp index fa24f51d95a03..d78b2c170a7c0 100644 --- a/src/libsync/creds/dummycredentials.cpp +++ b/src/libsync/creds/dummycredentials.cpp @@ -58,3 +58,5 @@ void DummyCredentials::persist() } } // namespace OCC + +#include "moc_dummycredentials.cpp" \ No newline at end of file diff --git a/src/libsync/creds/httpcredentials.cpp b/src/libsync/creds/httpcredentials.cpp index 02a1a19a0a12e..303e9b3ef5ae0 100644 --- a/src/libsync/creds/httpcredentials.cpp +++ b/src/libsync/creds/httpcredentials.cpp @@ -555,3 +555,5 @@ bool HttpCredentials::unpackClientCertBundle() } } // namespace OCC + +#include "moc_httpcredentials.cpp" \ No newline at end of file diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp index f0a46dc3edf11..1c510370de46f 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -2560,3 +2560,5 @@ bool ProcessDirectoryJob::checkNewDeleteConflict(const SyncFileItemPtr &item) co } } + +#include "moc_discovery.cpp" \ No newline at end of file diff --git a/src/libsync/encryptedfoldermetadatahandler.cpp b/src/libsync/encryptedfoldermetadatahandler.cpp index c8a0bf3d73e09..718092f0b8ed6 100644 --- a/src/libsync/encryptedfoldermetadatahandler.cpp +++ b/src/libsync/encryptedfoldermetadatahandler.cpp @@ -394,3 +394,5 @@ bool EncryptedFolderMetadataHandler::isFolderLocked() const } } + +#include "moc_encryptedfoldermetadatahandler.cpp" \ No newline at end of file diff --git a/src/libsync/encryptfolderjob.cpp b/src/libsync/encryptfolderjob.cpp index 56b90a2f27338..ac7b14ec7106b 100644 --- a/src/libsync/encryptfolderjob.cpp +++ b/src/libsync/encryptfolderjob.cpp @@ -148,3 +148,5 @@ void EncryptFolderJob::slotUploadMetadataFinished(int statusCode, const QString } } + +#include "moc_encryptfolderjob.cpp" \ No newline at end of file diff --git a/src/libsync/foldermetadata.cpp b/src/libsync/foldermetadata.cpp index 7d5da361b66b8..a4b7c6fdbb64d 100644 --- a/src/libsync/foldermetadata.cpp +++ b/src/libsync/foldermetadata.cpp @@ -1270,3 +1270,5 @@ bool FolderMetadata::verifyMetadataKey(const QByteArray &metadataKey) const return _keyChecksums.contains(calcSha256(metadataKeyLimitedLength)) || _keyChecksums.isEmpty(); } } + +#include "moc_foldermetadata.cpp" \ No newline at end of file diff --git a/src/libsync/owncloudpropagator.cpp b/src/libsync/owncloudpropagator.cpp index 6260f83611b24..91254741c61dc 100644 --- a/src/libsync/owncloudpropagator.cpp +++ b/src/libsync/owncloudpropagator.cpp @@ -1840,3 +1840,5 @@ void PropagateVfsUpdateMetadataJob::start() } } + +#include "moc_owncloudpropagator.cpp" \ No newline at end of file diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp index 79c25814d51a3..6e221a50e44b0 100644 --- a/src/libsync/propagatedownload.cpp +++ b/src/libsync/propagatedownload.cpp @@ -1394,3 +1394,5 @@ void PropagateDownloadFile::abort(PropagatorJob::AbortType abortType) } } } + +#include "moc_propagatedownload.cpp" \ No newline at end of file diff --git a/src/libsync/propagatedownloadencrypted.cpp b/src/libsync/propagatedownloadencrypted.cpp index 03fb70fd30f5c..d23f07c28b675 100644 --- a/src/libsync/propagatedownloadencrypted.cpp +++ b/src/libsync/propagatedownloadencrypted.cpp @@ -119,3 +119,5 @@ QString PropagateDownloadEncrypted::errorString() const } } + +#include "moc_propagatedownloadencrypted.cpp" \ No newline at end of file diff --git a/src/libsync/propagateremotedelete.cpp b/src/libsync/propagateremotedelete.cpp index f0e74ea2bfc57..e0d4521cc8395 100644 --- a/src/libsync/propagateremotedelete.cpp +++ b/src/libsync/propagateremotedelete.cpp @@ -130,3 +130,5 @@ void PropagateRemoteDelete::slotDeleteJobFinished() done(SyncFileItem::Success, {}, ErrorCategory::NoError); } } + +#include "moc_propagateremotedelete.cpp" \ No newline at end of file diff --git a/src/libsync/propagateremotedeleteencrypted.cpp b/src/libsync/propagateremotedeleteencrypted.cpp index b2a8e86ae67ee..dc9fd46e9b99c 100644 --- a/src/libsync/propagateremotedeleteencrypted.cpp +++ b/src/libsync/propagateremotedeleteencrypted.cpp @@ -74,3 +74,5 @@ void PropagateRemoteDeleteEncrypted::slotUpdateMetadataJobFinished(int statusCod Q_UNUSED(message); deleteRemoteItem(_item->_encryptedFileName); } + +#include "moc_propagateremotedeleteencrypted.cpp" \ No newline at end of file diff --git a/src/libsync/propagateremotedeleteencryptedrootfolder.cpp b/src/libsync/propagateremotedeleteencryptedrootfolder.cpp index 24fa79275089a..15ff7080d9901 100644 --- a/src/libsync/propagateremotedeleteencryptedrootfolder.cpp +++ b/src/libsync/propagateremotedeleteencryptedrootfolder.cpp @@ -196,3 +196,5 @@ void PropagateRemoteDeleteEncryptedRootFolder::decryptAndRemoteDelete() }); job->start(); } + +#include "moc_propagateremotedeleteencryptedrootfolder.cpp" \ No newline at end of file diff --git a/src/libsync/propagateremotemkdir.cpp b/src/libsync/propagateremotemkdir.cpp index 22bdf37ed51c7..098bdea9e2fb1 100644 --- a/src/libsync/propagateremotemkdir.cpp +++ b/src/libsync/propagateremotemkdir.cpp @@ -285,3 +285,5 @@ void PropagateRemoteMkdir::success() done(SyncFileItem::Success, {}, ErrorCategory::NoError); } } + +#include "moc_propagateremotemkdir.cpp" \ No newline at end of file diff --git a/src/libsync/propagateremotemove.cpp b/src/libsync/propagateremotemove.cpp index 2c41ff3a607b1..058a06455dc0d 100644 --- a/src/libsync/propagateremotemove.cpp +++ b/src/libsync/propagateremotemove.cpp @@ -341,3 +341,5 @@ bool PropagateRemoteMove::adjustSelectiveSync(SyncJournalDb *journal, const QStr return true; } } + +#include "moc_propagateremotemove.cpp" \ No newline at end of file diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp index 725e619ee44b3..f26ad3b77d29c 100644 --- a/src/libsync/propagateupload.cpp +++ b/src/libsync/propagateupload.cpp @@ -925,3 +925,5 @@ void PropagateUploadFileCommon::abortNetworkJobs( Q_EMIT abortFinished(); } } + +#include "moc_propagateupload.cpp" \ No newline at end of file diff --git a/src/libsync/propagateuploadencrypted.cpp b/src/libsync/propagateuploadencrypted.cpp index 1e67769cb4113..9a371bffa9f74 100644 --- a/src/libsync/propagateuploadencrypted.cpp +++ b/src/libsync/propagateuploadencrypted.cpp @@ -195,3 +195,5 @@ void PropagateUploadEncrypted::slotUploadMetadataFinished(int statusCode, const } } // namespace OCC + +#include "moc_propagateuploadencrypted.cpp" \ No newline at end of file diff --git a/src/libsync/propagatorjobs.cpp b/src/libsync/propagatorjobs.cpp index a7fd90727ea88..2474888d4ff60 100644 --- a/src/libsync/propagatorjobs.cpp +++ b/src/libsync/propagatorjobs.cpp @@ -590,3 +590,5 @@ bool PropagateLocalRename::deleteOldDbRecord(const QString &fileName) return true; } } + +#include "moc_propagatorjobs.cpp" \ No newline at end of file diff --git a/src/libsync/putmultifilejob.cpp b/src/libsync/putmultifilejob.cpp index dc38b0d3ba8d7..0b169a270f2ee 100644 --- a/src/libsync/putmultifilejob.cpp +++ b/src/libsync/putmultifilejob.cpp @@ -112,3 +112,5 @@ std::chrono::milliseconds PutMultiFileJob::msSinceStart() const } } + +#include "moc_putmultifilejob.cpp" \ No newline at end of file diff --git a/src/libsync/updatee2eefoldermetadatajob.cpp b/src/libsync/updatee2eefoldermetadatajob.cpp index 1a1d899456642..55a53ccb11660 100644 --- a/src/libsync/updatee2eefoldermetadatajob.cpp +++ b/src/libsync/updatee2eefoldermetadatajob.cpp @@ -167,3 +167,5 @@ void UpdateE2eeFolderMetadataJob::unlockFolder(const EncryptedFolderMetadataHand } } + +#include "moc_updatee2eefoldermetadatajob.cpp" \ No newline at end of file diff --git a/src/libsync/updatee2eefolderusersmetadatajob.cpp b/src/libsync/updatee2eefolderusersmetadatajob.cpp index 2ea86cf4f1563..69dfc3fce4ff2 100644 --- a/src/libsync/updatee2eefolderusersmetadatajob.cpp +++ b/src/libsync/updatee2eefolderusersmetadatajob.cpp @@ -365,3 +365,5 @@ const QByteArray UpdateE2eeFolderUsersMetadataJob::folderToken() const } } + +#include "moc_updatee2eefolderusersmetadatajob.cpp" \ No newline at end of file diff --git a/src/libsync/updatemigratede2eemetadatajob.cpp b/src/libsync/updatemigratede2eemetadatajob.cpp index 7832bea210608..42556a16c7ce2 100644 --- a/src/libsync/updatemigratede2eemetadatajob.cpp +++ b/src/libsync/updatemigratede2eemetadatajob.cpp @@ -87,3 +87,5 @@ void UpdateMigratedE2eeMetadataJob::addSubJobItem(const QString &key, const Sync } } + +#include "moc_updatemigratede2eemetadatajob.cpp" \ No newline at end of file