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

Compiling QDoc with Clang excessive long compile times

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P3: Somewhat important
    • None
    • 5.11
    • Build tools: qdoc
    • None

    Description

      Building the QDoc Module alone with

      jom /nologo /j4 docs

      after compiling the other Modules, takes longer than all other Qt Modules together (excluding QtWebEngine of course).

      Build times with full utilization of all 4 Cores are:

      • VS 2013, 2015, 2017 without Clang, Qt 5.2 Alpha - 5.10: 8 - 12 Minutes! depending on overall CPU utilization
      • VS 2017 15.5.5 with Clang 5.0.1 for QDoc, prebuilt Binaries: 02 hours 33 Minutes
      • VS 2017 15.5.5 with Clang 7.0.0 for QDoc, latest SVN trunk: 01 hour 02 Minutes

      Also with Clang 5.0.1, there is the following Error Message for every Module:

      "libclang: crash detected during AST saving: {
        'filename' : 'C:/temp/qdoc_pch.wtazNK/QtCore.pch'
        'options' : 0,
      }"

      and

      (qdoc) Could not save PCH file for  "QtCore" 1
      QTemporaryDir: Unable to remove "C:\\temp\\qdoc_pch.wtazNK" most likely
      due to the presence of read-only files.

      Those Errors are not occuring with Clang 7.0.0 so they are fixed in the Compiler it seems.

      Qt Configure Parameters are:

      %SystemDrive%\qt5srcgit\qt5\configure -verbose -make-tool jom -opensource -confirm-license -prefix %SystemDrive%\qtx64\ -opengl dynamic -debug-and-release -optimize-size -openssl-linked -I%SystemDrive%\OpenSSLx64\include -L%SystemDrive%\OpenSSLx64\lib OPENSSL_LIBS="-llibssl -llibcrypto" -icu -I%SystemDrive%\ICUx64\include -L%SystemDrive%\ICUx64\lib -mp -nomake tests -nomake examples -no-warnings-are-errors -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsvg -skip qtvirtualkeyboard -skip qtwayland -skip qtwebglplugin -skip qtx11extras -skip qtwebengine

      After that the Command Script calls

      jom /nologo /j4 && ^
      [... xcopy commands to copy all the Clang, OpenSSL and ICU Libs to the Install Target Directory]
      jom /nologo /j1 install && ^
      jom /nologo /j4 docs && ^
      jom /nologo /j1 install_docs && ^

      Another Bug:

      Clang ignores the Configure Parameter '-no-pch' when set and uses PCH Files no matter what.

      If you need some Log Files, please let me know: Another test can be started easily

      Big Disclaimer: Total Clang Noob here. If I missed something obvious than Sorry but Clang Infos for Qt are close to non-existent at this point.

      Thanks!

      Attachments

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

        Activity

          People

            docinfrastructure Documentation Infrastructure Team
            meermusik Oliver Niebuhr
            Votes:
            3 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes