Bug Description

[Impact]

The packaged Qt documentation, which can be viewed in browser (qt*-doc-html packages) or in Qt Assistant (qt*-doc packages) is missing all documentation generated from C++ files. Only the static text is present.

Qt is split by many modules (qtbase, qtdeclarative, qtwebengine, etc.).

To properly fix this bug, we need changes in qtbase and qttools modules. In addition, I will be uploading a no-change rebuild of qtdeclarative module to demonstrate that the fixes work.

If requested, I can also upload no-change rebuilds of some other modules to get their -doc packages properly regenerated.

[Test Case]

For qtbase5-doc-html:

1. Install qtbase5-doc-html package.

2. Make sure /usr/share/ qt5/doc/ qtcore/ qobject. html is present.

For qtdeclarative5- doc-html:

1. Install qtdeclarative5- doc-html package.

2. Make sure /usr/share/ qt5/doc/ qtquick/ qquickwidget. html is present.

[Regression Potential]

The proposed change in qtbase is affecting only builds of Qt modules documentation. So the worst thing it can do is breaking the build of -doc packages in other Qt modules. However, as confirmed by qtdeclarative example, it makes things only better, not worse.

The proposed change in qttools can affect more packages. It can result in qdoc passing more -isystem flags to clang code analyzer. I am not aware of negative consequences of this, but if they happen, these consequences will be limited to potential build failures or wrong documentation contents.

[Other Info]

Description of the fix:

qdoc is a tool that parses C++ source files and generates documentation from them. Recently, qdoc began using clang instead of its own C++ parser. Clang needs the C++ standard library to work. Starting with llvm-toolchain 1:7~+rc1-1~exp2, the GCC C++ standard library is no longer on clang’s default search paths, so we need to pass it explicitly as -I flag. The proposed qtbase patch (qdoc_default_ incdirs. diff) does that.

That patch fixes documentation build for qtbase, but for other modules there is another problem. The Qt headers are installed into /usr/include/ <triplet> /qt5 directory, but it is also not on Clang default search path. qmake passes these directories as -isystem flags, but qdoc ignores -isystem by default, unless it is built with QDOC_PASS_ISYSTEM defined. So the proposed change in qttools is building with this define.

[Original Description]

The Qt offline documentation for cosmic is incomplete. In fact there's virtually no content what so ever. It would be easier I think to list what actually got picked up that what was missed.