qt5base-lts/doc
Marc Mutz 38e90ad2b3 qcompilerdetection.h: add Q_COMPILER_UNIFORM_INIT
Up to now, the feature classe Uniform Initialization was subsumed by the
Q_COMPILER_INITIALIZER_LISTS flag together with support for
std::initializer_list.

This caused at least two problems:
1. On QNX, the standard libray does not ship <initializer_list>, even
   though the compiler (a GCC 4.6, IIRC) supports it. But since there
   was only one Q_COMPILER flag for both, support for the compiler-only
   part of the feature had to be disabled, too.
2. MSVC 2013 supports initializer lists, but has a bug that renders full
   uniform initialization support, as required for QUuid, useless.

By splitting the feature into two, we can separate them better, and do
so in QUuid, which is the only class that currently takes advantage of
uniform initialization (to provide constexpr constructors).

Since Q_COMPILER_INITIALIZER_LISTS worked as a flag for uniform
initialization so far, with the two known exceptions above,
UNIFORM_INIT is defined whenever INITIALIZER_LIST is, except that
I don't revert UNIFORM_INIT on QNX as I do for INITIALIZER_LISTS
and that I expect the MSVC 2013 features to set INITIALIZER_LIST,
but not UNIFORM_INIT.

Task-number: QTBUG-34705

Change-Id: I81916e950a0f3aab3de7977e0326d2de3d31b14c
Reviewed-by: Yuchen Deng <loaden@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 06:30:53 +01:00
..
global qcompilerdetection.h: add Q_COMPILER_UNIFORM_INIT 2013-11-15 06:30:53 +01:00
src Doc: Remove applicationicon and orientation examples from QtWidgets 2013-05-08 14:07:41 +02:00
README Doc: Added a README file for building documentation. 2012-12-05 15:30:07 +01:00

Qt 5 Documentation
==================

New in Qt 5.0, each module has its own documentation package. The documentation
resides in the module sources as well as the configuration files needed to build
the module documentation. The main Qt 5.0 Reference Documentation resides in the
qtdoc repository.

There are two ways to build Qt documentation:
* run "make docs" in qt5/ or in the repositories
* run the QDoc tool for each module


Running "make docs"
===================

To build the documentation using Makefiles, qtbase needs to be compiled and
installed.

Running qmake will create make targets to build the documentation:
* html_docs - builds only the HTML documentation
* qch_docs - packages the HTML documentation into QCH files for Qt Creator and
             Qt Assistant.
* docs - runs html_docs and qch_docs

Note: qch_docs needs qhelpgenerator to package the documentation. qhelpgenerator
is in the qttools repository.

These make targets use qmake's QT_INSTALL_DOCS variable as the output directory.
Running "qmake -query" will list the directory set to QT_INSTALL_DOCS.

To create all of the modules' documentation, run "make docs" in the
qt5 directory:
    $> make docs            # builds the bundled modules' documentation

It is also possible to build only a small subset of the documentation by using
make:
    $> cd qtbase
    $> make docs            # builds the documentation for modules in qtbase

    $> cd qtbase/src/sql
    $> make docs            # builds only the Qt SQL documentation


Running QDoc
============

QDoc is the tool for generating Qt documentation and is located in qtbase.
The simplest way to compile QDoc is to compile qtbase or only the tools in
qtbase.

    $> cd qtbase/src
    $> make sub-tools # compiles QDoc

Each module has a QDoc configuration file (.qdocconf). To build a module's
documentation, run the "qdoc" binary and pass the qdocconf file as a parameter.
A mandatory "outputdir" must be specified.

    $> qdoc doc/config/qtdoc.qdocconf -outputdir html

    Note that QDoc will delete the contents of the "html" output directory.

Packaging the Documentation
===========================

To package the documentation, the HTML files must be compiled
into a QCH file (.qch).

Required binaries:
    * assistant - found in qttools
    * qhelpgenerator - found in qttools

To compile the qch file for each module, first enter the output directory that
contains the .qhp file and generate the QCH file.

    $> cd qtbase/doc/qtdoc              #the default path for QT_INSTALL_DOCS for qtdoc
    $> qhelpgenerator qtdoc.qhp         #creates the QCH file called qtdoc.qch

The QCH file can then be loaded in Qt Assistant or Qt Creator. For Qt Assistant,
the QCH file can be registered to automatically load it.

    $> assistant -register qtdoc.qch    #to automatically load the documentation


Global Files
============

The qtbase/doc/global directory contains various files used by the modules to
build the documentation. These include macros, stylesheets, and images for
displaying documentation.

To include these files in a qdocconf, add the following to a qdocconf file:

    include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)


Documentation Structure
=======================
For a typical module, the documentation will reside in the source directory.
The examples and the example documentation are in the "examples" directory.

    qtbase/src/sql/doc/src              #Qt SQL's documentation
    qtbase/examples/sql                 #Qt SQL's examples

More Information
================

For more information about Qt 5's documentation, refer to the Qt Project wiki:
http://qt-project.org/wiki/Qt5DocumentationProject