[Development] Failed to build Qt6 Documentation from qt/qtbase sources?

Haowei Hsu hwhsu1231 at gmail.com
Tue Aug 1 14:22:37 CEST 2023


Hello, Qt Development Team.

Recently, I tried to build the Qt6 Documentation from qt/qtbase
<https://github.com/qt/qtbase> sources. In order to
build Qt6 Documentation more conveniently, I prepared a
*CMakeUserPresets.json*
in the root directory with some required configurations introduced in:

   - Building Qt Documentation - Qt Wiki
   <https://wiki.qt.io/Building_Qt_Documentation#Building_Qt_6_Documentation>
   - Qt Build System Glossary - Qt Wiki
   <https://wiki.qt.io/Qt_Build_System_Glossary#Documentation-only_Build>

The following is the content of my *CMakeUserPresets.json*:

{
  "version": 4,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 23,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "win32",
      "description": "Windows",
      "binaryDir": "${sourceDir}/build/${presetName}",
      "generator": "Ninja",
      "toolset": {
        "value": "v142,host=x64",
        "strategy": "external"
      },
      "architecture": {
        "value": "x64",
        "strategy": "external"
      },
      "cacheVariables": {
        "CMAKE_C_COMPILER": "cl.exe",
        "CMAKE_CXX_COMPILER": "cl.exe",
        "QT_HOST_PATH": "C:/Qt/6.3.2/msvc2019_64",
        "QT_NO_PACKAGE_VERSION_CHECK": true
      },
      "environment": {
        "LLVM_INSTALL_DIR": "C:\\Program Files\\LLVM"
      }
    }
  ]
}

The followings are the steps I used to build *docs_Core* target

   1. Run: *git clone https://github.com/qt/qtbase.git
   <https://github.com/qt/qtbase.git>*
   2. Run: *cd qtbase*
   3. Run: *git checkout 6.5*
   4. Add the above custom *CMakeUserPresets.json*
   5. Run: *vcvarsall.bat x64*
   6. Run: *cmake --preset win32*
   7. Run: *cmake --build build/win32 --target docs_Core*

However, it turns out that there is an error in the Step 7:

[image: image.png]

What happened? What did I miss? Can you help me to figure out this problem?

You can see the attachment with the full log: *log-build-qt6-docs.txt*
---
Haowei Hsu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20230801/65af4941/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 304800 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20230801/65af4941/attachment-0001.png>
-------------- next part --------------
D:\Repo\GitHub\testing>git clone https://github.com/qt/qtbase.git
Cloning into 'qtbase'...
remote: Enumerating objects: 915031, done.
remote: Counting objects: 100% (2660/2660), done.
remote: Compressing objects: 100% (994/994), done.
remote: Total 915031 (delta 1829), reused 2481 (delta 1653), pack-reused 912371
Receiving objects: 100% (915031/915031), 629.40 MiB | 5.19 MiB/s, done.
Resolving deltas: 100% (730048/730048), done.
Updating files: 100% (21763/21763), done.

D:\Repo\GitHub\testing>cd qtbase

D:\Repo\GitHub\testing\qtbase>git checkout 6.5
Updating files: 100% (2313/2313), done.
Switched to branch '6.5'
Your branch is up to date with 'origin/6.5'.

D:\Repo\GitHub\testing\qtbase>vcvarsall.bat x64
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.23
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

D:\Repo\GitHub\testing\qtbase>cmake --preset win32
Preset CMake variables:

  CMAKE_CXX_COMPILER="cl.exe"
  CMAKE_C_COMPILER="cl.exe"
  QT_HOST_PATH="C:/Qt/6.3.2/msvc2019_64"
  QT_NO_PACKAGE_VERSION_CHECK:BOOL="TRUE"

Preset environment variables:

  LLVM_INSTALL_DIR="C:\Program Files\LLVM"

-- The CXX compiler identification is MSVC 19.29.30147.0
-- The C compiler identification is MSVC 19.29.30147.0
-- The ASM compiler identification is MSVC
-- Found assembler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
            -DCMAKE_C_FLAGS=/DWIN32 /D_WINDOWS
            -DCMAKE_C_FLAGS_DEBUG=/Zi /Ob0 /Od /RTC1
            -DCMAKE_C_FLAGS_RELEASE=/O2 /Ob2 /DNDEBUG
            -DCMAKE_C_FLAGS_RELWITHDEBINFO=/Zi /O2 /Ob1 /DNDEBUG
            -DCMAKE_CXX_FLAGS=/DWIN32 /D_WINDOWS /GR /EHsc
            -DCMAKE_CXX_FLAGS_DEBUG=/Zi /Ob0 /Od /RTC1
            -DCMAKE_CXX_FLAGS_RELEASE=/O2 /Ob2 /DNDEBUG
            -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=/Zi /O2 /Ob1 /DNDEBUG
            -DCMAKE_EXE_LINKER_FLAGS=/machine:x64
            -DCMAKE_C_STANDARD=11
            -DCMAKE_C_STANDARD_REQUIRED=ON
            -DCMAKE_CXX_STANDARD=17
            -DCMAKE_CXX_STANDARD_REQUIRED=ON
            -DCMAKE_MODULE_PATH:STRING=D:/Repo/GitHub/testing/qtbase/cmake/platforms

-- Configuration summary shown below. It has also been written to D:/Repo/GitHub/testing/qtbase/build/win32/config.summary
-- Configure with --log-level=STATUS or higher to increase CMake's message verbosity. The log level does not persist across reconfigurations.

-- Configure summary:

Building for: win32-msvc (x86_64, CPU features: sse sse2)
Compiler: msvc 19.29.30147.0
Build options:
  Mode ................................... debug
  Fully optimize release builds (-O3) .... no
  Building shared libraries .............. yes
  Using C standard ....................... C11
  Using C++ standard ..................... C++17
  Unity Build ............................ no
  Relocatable ............................ yes
  Using precompiled headers .............. yes
  Using Link Time Optimization (LTCG) .... no
  Using Intel CET ........................ no
  Target compiler supports:
    x86 Intrinsics ....................... Basic VAES AVX512VBMI2
  Sanitizers:
    Addresses ............................ no
    Threads .............................. no
    Memory ............................... no
    Fuzzer (instrumentation only) ........ no
    Undefined ............................ no
  Build parts ............................ libs tools
  App store compliance ................... no
Qt modules and options:
  Qt Concurrent .......................... yes
  Qt D-Bus ............................... yes
  Qt D-Bus directly linked to libdbus .... no
  Qt Gui ................................. yes
  Qt Network ............................. yes
  Qt PrintSupport ........................ yes
  Qt Sql ................................. yes
  Qt Testlib ............................. yes
  Qt Widgets ............................. yes
  Qt Xml ................................. yes
Support enabled for:
  Using pkg-config ....................... no
  udev ................................... no
  OpenSSL ................................ yes
    Qt directly linked to OpenSSL ........ no
  OpenSSL 1.1 ............................ no
  OpenSSL 3.0 ............................ yes
  Using system zlib ...................... no
  Zstandard support ...................... no
  Thread support ......................... yes
Common build options:
  Linker can resolve circular dependencies  yes
Qt Core:
  backtrace .............................. no
  DoubleConversion ....................... yes
    Using system DoubleConversion ........ no
  GLib ................................... no
  ICU .................................... no
  Using system libb2 ..................... no
  Built-in copy of the MIME database ..... yes
  cpp/winrt base ......................... yes
  Tracing backend ........................ <none>
  Logging backends:
    journald ............................. no
    syslog ............................... no
    slog2 ................................ no
  PCRE2 .................................. yes
    Using system PCRE2 ................... no
  Application permissions ................ no
Qt Sql:
  SQL item models ........................ yes
Qt Network:
  getifaddrs() ........................... no
  IPv6 ifname ............................ no
  libproxy ............................... no
  Schannel ............................... yes
  DTLS ................................... yes
  OCSP-stapling .......................... yes
  SCTP ................................... no
  Use system proxies ..................... yes
  GSSAPI ................................. no
  Brotli Decompression Support ........... no
  qIsEffectiveTLD() ...................... yes
    Built-in publicsuffix database ....... yes
    System publicsuffix database ......... no
Core tools:
  Android deployment tool ................ yes
  macOS deployment tool .................. no
  Windows deployment tool ................ yes
  qmake .................................. yes
Qt Gui:
  Accessibility .......................... yes
  FreeType ............................... yes
    Using system FreeType ................ no
  HarfBuzz ............................... yes
    Using system HarfBuzz ................ no
  Fontconfig ............................. no
  Image formats:
    GIF .................................. yes
    ICO .................................. yes
    JPEG ................................. yes
      Using system libjpeg ............... no
    PNG .................................. yes
      Using system libpng ................ no
  Text formats:
    HtmlParser ........................... yes
    CssParser ............................ yes
    OdfWriter ............................ yes
    MarkdownReader ....................... yes
      Using system libmd4c ............... no
    MarkdownWriter ....................... yes
  EGL .................................... no
  OpenVG ................................. no
  OpenGL:
    Desktop OpenGL ....................... no
    Dynamic OpenGL ....................... yes
    OpenGL ES 2.0 ........................ no
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    OpenGL ES 3.2 ........................ no
  Vulkan ................................. no
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. no
  libinput ............................... no
  HiRes wheel support in libinput ........ no
  INTEGRITY HID .......................... no
  mtdev .................................. no
  tslib .................................. no
  xkbcommon .............................. no
  X11 specific:
    XLib ................................. no
    XCB Xlib ............................. no
    EGL on X11 ........................... no
    xkbcommon-x11 ........................ no
    xcb-sm ............................... no
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. no
  EGLFS details:
    EGLFS OpenWFD ........................ no
    EGLFS i.Mx6 .......................... no
    EGLFS i.Mx6 Wayland .................. no
    EGLFS RCAR ........................... no
    EGLFS EGLDevice ...................... no
    EGLFS GBM ............................ no
    EGLFS VSP2 ........................... no
    EGLFS Mali ........................... no
    EGLFS Raspberry Pi ................... no
    EGLFS X11 ............................ no
  LinuxFB ................................ no
  VNC .................................... no
  VK_KHR_display ......................... no
  QNX:
    lgmon ................................ no
    IMF .................................. no
  XCB:
    Using system-provided xcb-xinput ..... no
    GL integrations:
      GLX Plugin ......................... no
        XCB GLX .......................... no
      EGL-X11 Plugin ..................... no
  Windows:
    Direct 2D ............................ yes
    Direct 2D 1.1 ........................ yes
    DirectWrite .......................... yes
    DirectWrite 3 ........................ yes
Qt Widgets:
  GTK+ ................................... no
  Styles ................................. Fusion Windows WindowsVista
Qt Testlib:
  Tester for item models ................. yes
  Batch tests ............................ no
Qt PrintSupport:
  CUPS ................................... no
Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. yes
  OCI (Oracle) ........................... no
  ODBC ................................... yes
  PostgreSQL ............................. yes
  SQLite ................................. yes
    Using system provided SQLite ......... no


--

Qt is now configured for building. Just run 'cmake --build . --parallel'

Once everything is built, you must run 'cmake --install .'
Qt will be installed into 'C:/Qt/Qt-6.5.3'

To configure and build other Qt modules, you can use the following convenience script:
        C:/Qt/Qt-6.5.3/bin/qt-configure-module.bat

If reconfiguration fails for some reason, try removing 'CMakeCache.txt' from the build directory
Alternatively, you can add the --fresh flag to your CMake flags.

-- Configuring done (95.0s)
-- Generating done (2.4s)
CMake Warning:
  Manually-specified variables were not used by the project:

    QT_NO_PACKAGE_VERSION_CHECK


-- Build files have been written to: D:/Repo/GitHub/testing/qtbase/build/win32

D:\Repo\GitHub\testing\qtbase>cmake --build build/win32 --target docs_Core
[1/45] cmd.exe /C "cd /D D:\Repo\GitHub\testing\qtbase\build\win32\src\corel...D:/Repo/GitHub/testing/qtbase/build/win32/src/corelib/codeattributions.qdoc"
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\easing\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\forkfd\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\forkfd\qt_attribution.json: Expected JSON string as value of Files.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\freetype\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\harfbuzz-ng\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\icc\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\libjpeg\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\libpng\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\libpsl\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\libpsl\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\libpsl\qt_attribution.json: Expected JSON string as value of Files.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\md4\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\md4c\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\md5\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\pcre2\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\rfc6234\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\sha3\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\sha3\qt_attribution.json: Expected JSON string as value of Comment.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\sha3\qt_attribution.json: Expected JSON string as value of Files.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\sqlite\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\tinycbor\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\3rdparty\zlib\qt_attribution.json: Expected JSON string as value of SecurityCritical.
File D:\Repo\GitHub\testing\qtbase\src\corelib\kernel\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\corelib\text\qt_attribution.json: Expected JSON string as value of Comment.
File D:\Repo\GitHub\testing\qtbase\src\corelib\text\qt_attribution.json: Expected JSON string as value of Files.
File D:\Repo\GitHub\testing\qtbase\src\corelib\text\qt_attribution.json: Expected JSON string as value of Comment.
File D:\Repo\GitHub\testing\qtbase\src\corelib\text\qt_attribution.json: Expected JSON string as value of Files.
File D:\Repo\GitHub\testing\qtbase\src\dbus\qt_attribution.json: Unknown key Comment.
File D:\Repo\GitHub\testing\qtbase\src\testlib\3rdparty\qt_attribution.json: Expected JSON string as value of Comment.
File D:\Repo\GitHub\testing\qtbase\src\testlib\3rdparty\qt_attribution.json: Expected JSON string as value of Files.
[2/45] Compiling syncqt
[1/1] Cleaning all built files...
Cleaning... 2 files.
[1/2] Building CXX object CMakeFiles\syncqt.dir\main.cpp.obj
[2/2] Linking CXX executable D:\Repo\GitHub\testing\qtbase\build\win32\bin\syncqt.exe
[43/45] cmd.exe /C "cd /D D:\Repo\GitHub\testing\qtbase\build\win32\src\core.../Repo/GitHub/testing/qtbase/build/win32/src/corelib/.doc/Debug/includes.txt"
FAILED: src/corelib/CMakeFiles/prepare_docs_Core D:/Repo/GitHub/testing/qtbase/build/win32/src/corelib/CMakeFiles/prepare_docs_Core
cmd.exe /C "cd /D D:\Repo\GitHub\testing\qtbase\build\win32\src\corelib && "C:\Program Files\CMake\bin\cmake.exe" -E env QT_INSTALL_DOCS="C:/Qt/Qt-6.5.3/./doc" QT_VERSION=6.5.3 QT_VER=6.5 QT_VERSION_TAG=653 BUILDDIR=D:/Repo/GitHub/testing/qtbase/build/win32/src/corelib C:/Qt/6.3.2/msvc2019_64/bin/qdoc.exe -installdir /./doc -outputdir D:/Repo/GitHub/testing/qtbase/build/win32/./doc/qtcore D:/Repo/GitHub/testing/qtbase/src/corelib/doc/qtcore.qdocconf -prepare -indexdir D:/Repo/GitHub/testing/qtbase/build/win32/./doc -no-link-errors @D:/Repo/GitHub/testing/qtbase/build/win32/src/corelib/.doc/Debug/includes.txt"
D:/Repo/GitHub/testing/qtbase/src/corelib/doc/qtcore.qdocconf:1: (qdoc) error: Cannot open file 'C:/Qt/Qt-6.5.3/./doc/global/qt-module-defaults.qdocconf': ???????????
Cannot open file 'C:/Qt/Qt-6.5.3/./doc/global/qt-module-defaults.qdocconf': ???????????

Aborting
ninja: build stopped: subcommand failed.

D:\Repo\GitHub\testing\qtbase>


More information about the Development mailing list