From bc289f4bc156997db636284bb0d52f2107217fbe 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 ab99460a0f2a6..26ca95687c100 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' @@ -3311,3 +3314,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 c4bf97098ab77..575203da2be46 100644 --- a/src/gui/socketapi/socketapi.cpp +++ b/src/gui/socketapi/socketapi.cpp @@ -1766,3 +1766,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 1390c958d02e0..3d631514372ac 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 7d5984780794b..b4547bfde2352 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 871f248f67091..5bcc8707c4e2f 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 7ec93c3f75937..996f0447649ab 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 7f7bf6d928d43..66f0d209b7f05 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 eb5f178a23658..30997bd111f17 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 e843ab250fcb0..0af2c5c111163 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -2549,3 +2549,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 7688d1a1421e2..285f7ae456831 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 92b33003596cd..9b28b2f946485 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 9ee4cfdc6ff5b..8c04150bef7cf 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 b0a2b1a94c9d4..7983ef02c5e48 100644 --- a/src/libsync/owncloudpropagator.cpp +++ b/src/libsync/owncloudpropagator.cpp @@ -1835,3 +1835,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 c5bd0a4043f1e..90ac8fdb84e6b 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 4e0fbaf22fcdb..14bf6e986b7d3 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 fc158dacda52d..c9914d01f1fb0 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 efa2a7d1e5c22..368b8bbc8ff46 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 737374f28413f..0046e658a2c9b 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 1ce49c05790d9..6628ec9d3ec61 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 b0631178d21ae..0856a8fd5218b 100644 --- a/src/libsync/propagateupload.cpp +++ b/src/libsync/propagateupload.cpp @@ -925,3 +925,5 @@ void PropagateUploadFileCommon::abortNetworkJobs( 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 11ff3472f0129..57338a162ae69 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 033cdcc03bc3b..49e0483d16208 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 817b0a025d729..17f171a80fda3 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 c1fad14bd2844..5ed858d05a96b 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 94a88ec400760..54b7ac025d74a 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 3d599ad75509b..a0313ca898d8a 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