Bug 500112

Summary: Kxmlgui framework fails to compile on macos
Product: [Frameworks and Libraries] frameworks-kxmlgui Reporter: Daniel Crutti <dancrutti>
Component: generalAssignee: kdelibs bugs <kdelibs-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: christoph, nicolas.fella
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Homebrew (macOS)   
OS: macOS   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Daniel Crutti 2025-02-15 08:53:29 UTC
CONTEXT
I am running an 2015 intel macbook air
Apple has their own compiler called appleclang that is their own version of clang
SUMMARY
I was building the Kxmlgui framework where I got error about no type named 'Patterns' in 'KKeySequenceRecorder'
STEPS TO REPRODUCE
1. Have an apple computer on macos sequoia
2. clone Kxmlgui git repo
3. try to build & compile it

OBSERVED RESULT
[  1%] Generating mo...
[  1%] Built target pofiles-e42e2a9ca404ab93916fa714542b2954
[  2%] Generating ts...
[  2%] Built target tsfiles-e42e2a9ca404ab93916fa714542b2954
[  2%] Built target KF6XmlGui_autogen_timestamp_deps
[  3%] Built target KF6XmlGui_autogen
[  3%] Building CXX object src/CMakeFiles/KF6XmlGui.dir/kkeysequencewidget.cpp.o
In file included from /Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:13:
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.h:276:44: error: no type named 'Patterns' in 'KKeySequenceRecorder'
  276 |     void setPatterns(KKeySequenceRecorder::Patterns patterns);
      |                      ~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.h:285:27: error: no type named 'Patterns' in 'KKeySequenceRecorder'
  285 |     KKeySequenceRecorder::Patterns patterns() const;
      |     ~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:464:26: error: variable has incomplete type 'void'
  464 | void KKeySequenceWidget::setPatterns(KKeySequenceRecorder::Patterns patterns)
      |                          ^
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:464:69: error: expected ')'
  464 | void KKeySequenceWidget::setPatterns(KKeySequenceRecorder::Patterns patterns)
      |                                                                     ^
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:464:37: note: to match this '('
  464 | void KKeySequenceWidget::setPatterns(KKeySequenceRecorder::Patterns patterns)
      |                                     ^
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:464:60: error: no member named 'Patterns' in 'KKeySequenceRecorder'
  464 | void KKeySequenceWidget::setPatterns(KKeySequenceRecorder::Patterns patterns)
      |                                      ~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:464:78: error: expected ';' after top level declarator
  464 | void KKeySequenceWidget::setPatterns(KKeySequenceRecorder::Patterns patterns)
      |                                                                              ^
      |                                                                              ;
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:469:23: error: no type named 'Patterns' in 'KKeySequenceRecorder'
  469 | KKeySequenceRecorder::Patterns KKeySequenceWidget::patterns() const
      | ~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:471:25: error: no member named 'patterns' in 'KKeySequenceRecorder'
  471 |     return d->recorder->patterns();
      |            ~~~~~~~~~~~  ^
In file included from /Users/daniel/Programs/kframe/kxmlgui/src/kkeysequencewidget.cpp:595:
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:157:63: error: no member named 'Patterns' in 'KKeySequenceRecorder'
  157 |         QtPrivate::TypeAndForceComplete<KKeySequenceRecorder::Patterns, std::true_type>,
      |                                         ~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:161:76: error: expected '(' for function-style cast or type construction
  161 |         QtPrivate::TypeAndForceComplete<KKeySequenceWidget, std::true_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:163:63: error: expected '(' for function-style cast or type construction
  163 |         QtPrivate::TypeAndForceComplete<void, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:164:79: error: expected '(' for function-style cast or type construction
  164 |         QtPrivate::TypeAndForceComplete<const QKeySequence &, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:166:63: error: expected '(' for function-style cast or type construction
  166 |         QtPrivate::TypeAndForceComplete<void, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:167:79: error: expected '(' for function-style cast or type construction
  167 |         QtPrivate::TypeAndForceComplete<const QKeySequence &, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:168:68: error: expected '(' for function-style cast or type construction
  168 |         QtPrivate::TypeAndForceComplete<QAction *, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:170:63: error: expected '(' for function-style cast or type construction
  170 |         QtPrivate::TypeAndForceComplete<void, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:172:63: error: expected '(' for function-style cast or type construction
  172 |         QtPrivate::TypeAndForceComplete<void, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:174:63: error: expected '(' for function-style cast or type construction
  174 |         QtPrivate::TypeAndForceComplete<void, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/daniel/Programs/kframe/kxmlgui/build/src/KF6XmlGui_autogen/include/moc_kkeysequencewidget.cpp:175:79: error: expected '(' for function-style cast or type construction
  175 |         QtPrivate::TypeAndForceComplete<const QKeySequence &, std::false_type>,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [src/CMakeFiles/KF6XmlGui.dir/kkeysequencewidget.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/KF6XmlGui.dir/all] Error 2
make: *** [all] Error 2

EXPECTED RESULT
I expected it to build & compile without errors
SOFTWARE/OS VERSIONS
macOS: Sequoia
ADDITIONAL INFORMATION
N/A
Comment 1 Nicolas Fella 2025-02-15 11:11:46 UTC
You need to use the latest master branch of kguiaddons
Comment 2 Daniel Crutti 2025-02-15 17:54:41 UTC
(In reply to Nicolas Fella from comment #1)
> You need to use the latest master branch of kguiaddons

Oh thanks yeah I had an older version of kguiaddons
Comment 3 Christoph Cullmann 2025-06-19 15:45:41 UTC
Works in master.