Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-123995

CMake error "Too many parentheses." on qt_add_lupdate

XMLWordPrintable

    • d39e9f21c (dev), 98d822d1b (6.7)

      Since https://codereview.qt-project.org/c/qt/qttools/+/533986, having a lot of UI file sources in a target results in Qt generating a regex with a lot of alternatives when using qt_add_lupdate. CMake doesn't like that and prints this error when running `make update_translations`:

      $ make update_translations 
      RegularExpression::compile(): Too many parentheses.
      RegularExpression::compile(): Error in compile.
      CMake Error at /usr/lib/cmake/Qt6LinguistTools/GenerateLUpdateProject.cmake:40 (list):
        list sub-command FILTER, mode REGEX failed to compile regex
        "(/ui_adduserprefixdialog\.h$)|(/ui_routesetdialog\.h$)|(/ui_routingtabledialog\.h$)|(/ui_routingtablewidget\.h$)|(/ui_sitesettingsdialog\.h$)|(/ui_changelanguagedialog\.h$)|(/ui_changepassworddialog\.h$)|(/ui_ftpdialog\.h$)|(/ui_ftpdialog\.h$)|(/ui_logindialog\.h$)|(/ui_logwidget\.h$)|(/ui_mainwindow\.h$)|(/ui_mapframe\.h$)|(/ui_mapperspectivewidget\.h$)|(/ui_siteinfodialog\.h$)|(/ui_sitesperspectivewidget\.h$)|(/ui_useradministrationdialog\.h$)|(/ui_userdialog\.h$)|(/ui_activealarmspropertieswidget\.h$)|(/ui_boolpropertyeditor\.h$)|(/ui_gaterequestsmemorydialog_g3\.h$)|(/ui_propertieswidgetgate_g3\.h$)|(/ui_propertieswidgetroutingtable_g3\.h$)|(/ui_propertieswidgettc_g3\.h$)|(/ui_propertieswidgetzone_g3\.h$)|(/ui_safetymanagerwidget_g3\.h$)|(/ui_gaterequestsmemorydialog\.h$)|(/ui_propertieswidgettunnelhel002\.h$)|(/ui_propertieswidgettunnelhel002zoned\.h$)|(/ui_propertieswidgetvecommilano\.h$)|(/ui_propertieswidgetawa\.h$)|(/ui_propertieswidgetbuscontroller\.h$)|(/ui_propertieswidgetdoor\.h$)|(/ui_propertieswidgetdrr\.h$)|(/ui_propertieswidgetelbox\.h$)|(/ui_propertieswidgetelboxfuse\.h$)|(/ui_propertieswidgetelboxheating\.h$)|(/ui_propertieswidgetelboxups\.h$)|(/ui_propertieswidgetgate\.h$)|(/ui_propertieswidgetgpin\.h$)|(/ui_propertieswidgetgpio\.h$)|(/ui_propertieswidgetgpout\.h$)|(/ui_propertieswidgetheatingcontactornew\.h$)|(/ui_propertieswidgetheatingcontactoros4p\.h$)|(/ui_propertieswidgetheatinggroup\.h$)|(/ui_propertieswidgetheatinggroupnew\.h$)|(/ui_propertieswidgetheatingrod\.h$)|(/ui_propertieswidgetheatingrodnew\.h$)|(/ui_propertieswidgetksw\.h$)|(/ui_propertieswidgetmps\.h$)|(/ui_propertieswidgetoccupationdetector\.h$)|(/ui_propertieswidgetoclsection\.h$)|(/ui_propertieswidgetpd\.h$)|(/ui_propertieswidgetpme\.h$)|(/ui_propertieswidgetpmm\.h$)|(/ui_propertieswidgetroute\.h$)|(/ui_propertieswidgetroutingtable\.h$)|(/ui_propertieswidgetsafetycpu\.h$)|(/ui_propertieswidgetsegment\.h$)|(/ui_propertieswidgetsignal\.h$)|(/ui_propertieswidgetsts\.h$)|(/ui_propertieswidgetsymbol\.h$)|(/ui_propertieswidgetsystem\.h$)|(/ui_propertieswidgettc\.h$)|(/ui_propertieswidgettdiloop\.h$)|(/ui_propertieswidgetvecomcontroller\.h$)|(/ui_propertieswidgetvecomloop\.h$)|(/ui_propertieswidgetvecomtc\.h$)|(/ui_propertieswidgetvetra\.h$)|(/ui_propertieswidgetvirtualtc\.h$)|(/ui_propertieswidgetzeccontroller\.h$)|(/ui_propertieswidgetzone\.h$)|(/ui_safetymanagerwidget\.h$)|(/ui_conv50elsettingsdialog\.h$)|(/ui_propertieswidgetconv50el\.h$)|(/ui_createsitewidgetdialog\.h$)|(/ui_currentiteminfowidget\.h$)|(/ui_datetimeinputdialog\.h$)|(/ui_propertieswidgetdisconcabinet\.h$)|(/ui_propertieswidgetdisconcabinetfuse\.h$)|(/ui_propertieswidgetdisconcabinetups\.h$)|(/ui_propertieswidgetdiscondrive\.h$)|(/ui_propertieswidgetdiscongpio\.h$)|(/ui_propertieswidgetdisconoclsection\.h$)|(/ui_propertieswidgetdisconrfid\.h$)|(/ui_propertieswidgetdisconvoltagefreelamp\.h$)|(/ui_propertieswidgetdisconvoltmeter\.h$)|(/ui_dlggetsinceuntil\.h$)|(/ui_doublepropertyeditor\.h$)|(/ui_genericpropertieswidget\.h$)|(/ui_historysitewidget\.h$)|(/ui_integerpropertyeditor\.h$)|(/ui_livesitewidget\.h$)|(/ui_propertieswidgetcontainer\.h$)|(/ui_sitedeviceswidget\.h$)|(/ui_propertieswidgetstcppi\.h$)|(/ui_propertieswidgetstctc\.h$)|(/ui_svgwidget\.h$)|(/ui_propertieswidgettscheating\.h$)|(/ui_propertieswidgettscheating\.h$)|(/ui_propertieswidgettsczone\.h$)|(/ui_propertieswidgettsczone\.h$)".
      Call Stack (most recent call first):
        /usr/lib/cmake/Qt6LinguistTools/GenerateLUpdateProject.cmake:75 (filter_generated_ui_headers)
      

      The regex is created in the filter_generated_ui_headers function here: https://code.qt.io/cgit/qt/qttools.git/tree/src/linguist/GenerateLUpdateProject.cmake#n65

      One solution would be to remove the files one by one. However, I'm not sure why I even need to specify the UI files in my target in the first place. If I don't, all my translation strings disappear, because qt6_add_lupdate doesn't detect the ui files by itself, but otherwise, UI files are detected with AUTOUIC for actual UI purposes.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            jbornema Joerg Bornemann
            syyyr Václav Kubernát
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes