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

RCC? mangled incorrectly filename with number on it causing mangled qmlcache_loader.cpp definitions

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Fixed
    • Affects Version/s: 5.11.0
    • Fix Version/s: 5.11.2
    • Component/s: QML: Compiler
    • Labels:
      None
    • Environment:
      Windows 10 Enterprise 1803 x64.
      Visual Studio 2017 15.7.3.
      Self Compiled QT 5.11 branch from git (shared x64).
      QTCreator 4.6.2 from the git.

      Description

      I am trying to compiling qBittorrent latest Master branch from the github and currently stuck with rcc? outputting mangled filename definition if the filename inside the .qrc has version number on it.

      For example in qBittorrent webui.qrc it has the following content :

      // <RCC>
      <qresource prefix="/">
      <file>www/private/about.html</file>
      <file>www/private/addtrackers.html</file>
      <file>www/private/confirmdeletion.html</file>
      <file>www/private/css/Core.css</file>
      <file>www/private/css/dynamicTable.css</file>
      <file>www/private/css/Layout.css</file>
      <file>www/private/css/style.css</file>
      <file>www/private/css/Tabs.css</file>
      <file>www/private/css/Window.css</file>
      <file>www/private/download.html</file>
      <file>www/private/downloadlimit.html</file>
      <file>www/private/filters.html</file>
      <file>www/private/index.html</file>
      <file>www/private/newcategory.html</file>
      <file>www/private/preferences.html</file>
      <file>www/private/preferences_content.html</file>
      <file>www/private/properties.html</file>
      <file>www/private/properties_content.html</file>
      <file>www/private/rename.html</file>
      <file>www/private/scripts/client.js</file>
      <file>www/private/scripts/contextmenu.js</file>
      <file>www/private/scripts/download.js</file>
      <file>www/private/scripts/dynamicTable.js</file>
      <file>www/private/scripts/lib/clipboard.min.js</file>
      <file>www/private/scripts/lib/excanvas-compressed.js</file>
      <file>www/private/scripts/lib/mocha-yc.js</file>
      <file>www/private/scripts/lib/mootools-1.2-core-yc.js</file>
      <file>www/private/scripts/lib/mootools-1.2-more.js</file>
      <file>www/private/scripts/lib/parametrics.js</file>
      <file>www/private/scripts/misc.js</file>
      <file>www/private/scripts/mocha-init.js</file>
      <file>www/private/scripts/progressbar.js</file>
      <file>www/private/scripts/prop-files.js</file>
      <file>www/private/scripts/prop-general.js</file>
      <file>www/private/scripts/prop-trackers.js</file>
      <file>www/private/scripts/prop-webseeds.js</file>
      <file>www/private/setlocation.html</file>
      <file>www/private/shareratio.html</file>
      <file>www/private/statistics.html</file>
      <file>www/private/transferlist.html</file>
      <file>www/private/upload.html</file>
      <file>www/private/uploadlimit.html</file>
      <file>www/public/css/login.css</file>
      <file>www/public/login.html</file>
      <file>www/public/scripts/lib/mootools-1.2-core-yc.js</file>
      </qresource>
      </RCC>
      

      From above full content of webui.qrc pay attention into 3 fillename which has version number on it  :

      <file>www/private/scripts/lib/mootools-1.2-core-yc.js</file>
      <file>www/private/scripts/lib/mootools-1.2-more.js</file>
      <file>www/public/scripts/lib/mootools-1.2-core-yc.js</file>
      

      The rcc? outputting the following excerpt from the qmlcache_loader.cpp

      namespace _www_private_scripts_lib_mootools_1_js { 
      extern const unsigned char qmlData[];
      const QQmlPrivate::CachedQmlUnit unit = {
      reinterpret_cast<const QV4::CompiledData::Unit*>(&qmlData), nullptr, nullptr
      };
      }
      namespace _www_public_scripts_lib_mootools_1_js { 
      extern const unsigned char qmlData[];
      const QQmlPrivate::CachedQmlUnit unit = {
      reinterpret_cast<const QV4::CompiledData::Unit*>(&qmlData), nullptr, nullptr
      };
      }
      namespace _www_private_scripts_lib_mootools_1_js { 
      extern const unsigned char qmlData[];
      const QQmlPrivate::CachedQmlUnit unit = {
      reinterpret_cast<const QV4::CompiledData::Unit*>(&qmlData), nullptr, nullptr
      };
      }
      
      

      As you can see above it seems that rcc? has problems with files which has number dot number in it's filename. Also "_core_js" and "_more_js" naming inside the qmlcache_loader.cpp being deleted by the rcc?.

       

      And of course QT projects compilation will failed with the following error example :

      release\qmlcache_loader.cpp(185): error C2374: 'QmlCacheGeneratedCode::_www_private_scripts_lib_mootools_1_js::unit': redefinition; multiple initialization
      

       

      Above example could be become like these if i am not mistaken?

      namespace _www_private_scripts_lib_mootools_1_2_core_js { 
      extern const unsigned char qmlData[];
      const QQmlPrivate::CachedQmlUnit unit = {
      reinterpret_cast<const QV4::CompiledData::Unit*>(&qmlData), nullptr, nullptr
      };
      }
      namespace _www_public_scripts_lib_mootools_1_2_core_js { 
      extern const unsigned char qmlData[];
      const QQmlPrivate::CachedQmlUnit unit = {
      reinterpret_cast<const QV4::CompiledData::Unit*>(&qmlData), nullptr, nullptr
      };
      }
      namespace _www_private_scripts_lib_mootools_1_2_more_js { 
      extern const unsigned char qmlData[];
      const QQmlPrivate::CachedQmlUnit unit = {
      reinterpret_cast<const QV4::CompiledData::Unit*>(&qmlData), nullptr, nullptr
      };
      }
      

      Thanks for reading, i hope it will be fixed soon.

        Attachments

        For Gerrit Dashboard: QTBUG-68608
        # Subject Branch Project Status CR V

          Activity

            People

            • Assignee:
              shausman Simon Hausmann
              Reporter:
              echelon Aditya Nugraha
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Gerrit Reviews

                There are no open Gerrit changes