Bug 498519 - Build failled with mlpipelinemacros.h:53:68: error
Summary: Build failled with mlpipelinemacros.h:53:68: error
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Portability-Compilation (show other bugs)
Version: 8.6.0
Platform: Mint (Ubuntu based) Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-11 08:04 UTC by pascal lacroix
Modified: 2025-01-11 19:56 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 8.6.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description pascal lacroix 2025-01-11 08:04:13 UTC
Build from git download on 2025/01/11 failled with error :

"digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:269:13: note: in expansion of macro ‘MLPIPELINE_LOOP_START’
  269 |             MLPIPELINE_LOOP_START(MLPipelineStage::Loader, thisQueue);
      |             ^~~~~~~~~~~~~~~~~~~~~
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/mlfoundation/mlpipelinemacros.h:53:68: error: no matching function for call to ‘qMax(int&, qint64)’
   53 |             performanceProfileList[thisStage].maxElapsedTime = qMax(performanceProfileList[thisStage].maxElapsedTime, timer.elapsed());
      |                                                                ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:317:13: note: in expansion of macro ‘MLPIPELINE_LOOP_END’
  317 |             MLPIPELINE_LOOP_END(MLPipelineStage::Loader);
      |             ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtGui/qimage.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtGui/QImage:1,
                 from /mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/autotagspipelinebase.h:20:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note: candidate: ‘template<class T> constexpr const T& qMax(const T&, const T&)’
  673 | constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; }
      |                           ^~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note:   template argument deduction/substitution failed:
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/mlfoundation/mlpipelinemacros.h:53:68: note:   deduced conflicting types for parameter ‘const T’ (‘int’ and ‘qint64’ {aka ‘long long int’})
   53 |             performanceProfileList[thisStage].maxElapsedTime = qMax(performanceProfileList[thisStage].maxElapsedTime, timer.elapsed());
      |                                                                ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:317:13: note: in expansion of macro ‘MLPIPELINE_LOOP_END’
  317 |             MLPIPELINE_LOOP_END(MLPipelineStage::Loader);
      |             ^~~~~~~~~~~~~~~~~~~
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp: In member function ‘virtual bool Digikam::AutotagsPipelineObject::extractor()’:
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:438:85: error: no matching function for call to ‘qMax(int&, qint64)’
  438 |             performanceProfileList[MLPipelineStage::Extractor].maxElapsedTime = qMax(performanceProfileList[MLPipelineStage::Extractor].maxElapsedTime, timer.elapsed());
      |                                                                                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note: candidate: ‘template<class T> constexpr const T& qMax(const T&, const T&)’
  673 | constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; }
      |                           ^~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note:   template argument deduction/substitution failed:
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:438:85: note:   deduced conflicting types for parameter ‘const T’ (‘int’ and ‘qint64’ {aka ‘long long int’})
  438 |             performanceProfileList[MLPipelineStage::Extractor].maxElapsedTime = qMax(performanceProfileList[MLPipelineStage::Extractor].maxElapsedTime, timer.elapsed());
      |                                                                                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp: In member function ‘virtual bool Digikam::AutotagsPipelineObject::classifier()’:
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:518:86: error: no matching function for call to ‘qMax(int&, qint64)’
  518 |             performanceProfileList[MLPipelineStage::Classifier].maxElapsedTime = qMax(performanceProfileList[MLPipelineStage::Classifier].maxElapsedTime, timer.elapsed());
      |                                                                                  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note: candidate: ‘template<class T> constexpr const T& qMax(const T&, const T&)’
  673 | constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; }
      |                           ^~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note:   template argument deduction/substitution failed:
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:518:86: note:   deduced conflicting types for parameter ‘const T’ (‘int’ and ‘qint64’ {aka ‘long long int’})
  518 |             performanceProfileList[MLPipelineStage::Classifier].maxElapsedTime = qMax(performanceProfileList[MLPipelineStage::Classifier].maxElapsedTime, timer.elapsed());
      |                                                                                  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp: In member function ‘virtual bool Digikam::AutotagsPipelineObject::writer()’:
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:688:82: error: no matching function for call to ‘qMax(int&, qint64)’
  688 |             performanceProfileList[MLPipelineStage::Writer].maxElapsedTime = qMax(performanceProfileList[MLPipelineStage::Writer].maxElapsedTime, timer.elapsed());
      |                                                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note: candidate: ‘template<class T> constexpr const T& qMax(const T&, const T&)’
  673 | constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; }
      |                           ^~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:673:27: note:   template argument deduction/substitution failed:
/mnt/2c98cfab-4320-4ff2-b8d7-f2da522cc741/digikam-devel/dk-2025-01-11/digikam/core/libs/tags/autoassignment/pipelines/object/autotagspipelineobject.cpp:688:82: note:   deduced conflicting types for parameter ‘const T’ (‘int’ and ‘qint64’ {aka ‘long long int’})
  688 |             performanceProfileList[MLPipelineStage::Writer].maxElapsedTime = qMax(performanceProfileList[MLPipelineStage::Writer].maxElapsedTime, timer.elapsed());
      |                                                                              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [core/libs/tags/CMakeFiles/gui_digikamautotagassignment_obj.dir/build.make:152 : core/libs/tags/CMakeFiles/gui_digikamautotagassignment_obj.dir/autoassignment/pipelines/object/autotagspipelineobject.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:11891 : core/libs/tags/CMakeFiles/gui_digikamautotagassignment_obj.dir/all] Erreur 2
make: *** [Makefile:146 : all] Erreur 2 "





-Ordinateur-
Processeur		: Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
Mémoire		: 32813MB (6981MB utilisé)
Machine Type		: Tower
Systeme d'exploitation		: Linux Mint 22

Environnement de développement de KDE 
Version 5.115.0
Qt 
Version 5.15.13 (Compilé avec 5.15.13)


ADDITIONAL INFORMATION


Date de compilation :
10/01/2025 18:33
Cible de compilation :
Debug
Architecture de compilation :
x86_64
Révision sous Git : 
032...81f3
Branche sous Git : 
master

Was building nicely
Comment 1 Michael Miller 2025-01-11 11:31:00 UTC
Hi Pascal,
I completed a significant merge yesterday.  The AI models, classifiers, and pipeline for Autotagging has been completely rewritten.

I'll look at the pipeline macros to see why they won't compile for you.

Cheers,
Mike
Comment 2 Maik Qualmann 2025-01-11 15:17:02 UTC
Pascal compiles with Qt5. I think qMax in the macros should be replaced with std:max for testing purposes.

Maik
Comment 3 Michael Miller 2025-01-11 15:20:09 UTC
(In reply to Maik Qualmann from comment #2)
> Pascal compiles with Qt5. I think qMax in the macros should be replaced with
> std:max for testing purposes.
> 
> Maik

Hi Maik,
Good idea.  I think the problem is the different types (int vs qint64).  I was to commit a change that casts all calls to qMax to (qint64).  I'll also change it to std::max.  Hopefully the two changes together fix the issue.

Cheers,
Mike
Comment 4 Maik Qualmann 2025-01-11 15:27:33 UTC
Hi Michael,

Hmm, are you sure about qint64? I actually checked it before, both are actually int.

Maik
Comment 5 Michael Miller 2025-01-11 15:29:51 UTC
(In reply to Maik Qualmann from comment #4)
> Hi Michael,
> 
> Hmm, are you sure about qint64? I actually checked it before, both are
> actually int.
> 
> Maik

One is an int, the other is a long long int
> deduced conflicting types for parameter ‘const T’ (‘int’ and ‘qint64’ {aka ‘long long int’})

Cheers,
Mike
Comment 6 pascal lacroix 2025-01-11 16:19:45 UTC
Révision sous Git : 
f80...6a69
https://invent.kde.org/graphics/digikam/commit/f8060cae7c9252bc56087264e738f19510816a69

build and run nicely on linux mint 22

Thanks !
Comment 7 Michael Miller 2025-01-11 16:21:28 UTC
(In reply to pascal lacroix from comment #6)
> Révision sous Git : 
> f80...6a69
> https://invent.kde.org/graphics/digikam/commit/
> f8060cae7c9252bc56087264e738f19510816a69
> 
> build and run nicely on linux mint 22
> 
> Thanks !

Wonderful!  I'm happy that fixed it for you.

Cheers,
Mike
Comment 8 Maik Qualmann 2025-01-11 16:51:37 UTC
Hi Michael,

I have several compile warnings here, unfortunately in German.

In Datei, eingebunden von /home/maik/Devel/digikam/core/libs/mlfoundation/mlpipelinefoundation.h:36,
                 von /home/maik/Devel/digikam/core/libs/mlfoundation/mlpipelinefoundation.cpp:16:
/home/maik/Devel/digikam/core/libs/mlfoundation/mlpipelinemacros.h:82:1: Warnung: mehrzeiliger Kommentar [-Wcomment]
   82 | // #define MLPIPELINE_CATCH(pipelineStageName) \
      | ^

Maik
Comment 9 Michael Miller 2025-01-11 19:56:23 UTC
(In reply to Maik Qualmann from comment #8)
> Hi Michael,
> 
> I have several compile warnings here, unfortunately in German.
> 
> In Datei, eingebunden von
> /home/maik/Devel/digikam/core/libs/mlfoundation/mlpipelinefoundation.h:36,
>                  von
> /home/maik/Devel/digikam/core/libs/mlfoundation/mlpipelinefoundation.cpp:16:
> /home/maik/Devel/digikam/core/libs/mlfoundation/mlpipelinemacros.h:82:1:
> Warnung: mehrzeiliger Kommentar [-Wcomment]
>    82 | // #define MLPIPELINE_CATCH(pipelineStageName) \
>       | ^
> 
> Maik

Hi Maik,
No worries.  It's been a long time since I learned German, but I still understand enough to see the problem.  It should be fixed in my latest commit.

Cheers,
Mike