summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/main.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qdoc: Adding the -log-progress optionMartin Smith2012-10-251-3/+6
| | | | | | | | | | | | | | | qdoc now sends progress log messages to stderr only if -log-progress appears on the command line. The progress messages are not printed to stderr if -log-progress is not used. i.e., -log-progress is off by default. Task number: QTBUG-27707 Change-Id: Id605d943506ab38639730bf16473b156d061dc53 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Don't load index in -prepare phaseMartin Smith2012-10-251-91/+104
| | | | | | | | | | | | | | | | | | | | | | | | | qdoc was loading index files during the -prepare phase, which it shouldn't do. The index files it was loading were from modules other than the one qdoc was running on. They had not been deleted because qdoc only clears the output directory of the module it is running on. Also added a static function to the Location class to print information messages on standard error. This is useful to see what qdoc is doing and when it is doing it because these log messages are interleaved in the qdoc error messages. More of these log messages will be added as needed. Also removed some unneeded qDebug() stuff in the code that processes the dependencies from the qdocconf file. Task number: QTBUG-27707 Change-Id: I1eec8d6ec89ff040969c2a1f62f21f551f347e05 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* qdoc: qdoc now can run in 2 passesMartin Smith2012-10-121-0/+10
| | | | | | | | | | | | | | | | | | | Two command line options have been added, -prepare and -generate. If you run qdoc with -prepare, qdoc reads and parses the source files but does not generate the documentation. It only creates the .index file for the module you are running qdoc on. If you run qdoc with -generate, qdoc reads and parses the source files as well as the .index files created by running qdoc with -prepare, and it generates the documentation but no .index file. If you run without either option, qdoc runs as before, i.e. it runs both passes as a single pass. Task number: QTBUG-27539 Change-Id: Idbfe3f0f9dff58283596b504f00dff3f70f6e371 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Modularize documenation buildTor Arne Vestbø2012-10-101-0/+12
| | | | | | | | | | qdocconf files can now reference $QT_INSTALL_DOCS to pick up e.g. global includes, instead of using relative paths. Qt modules will automatically get a doc target that builds and installs into the right place (including supporting shadow-builds) if they set QMAKE_DOCS before loading(qt_module). Change-Id: Ia408385199e56e3ead0afa45645a059d1a8b0d48 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* qdoc: Implements the -no-link-errors optionMartin Smith2012-10-101-0/+7
| | | | | | | | | | | | The -no-link-errors flag tells qdoc not to print any link error messages at all. This is useful for finding and fixing all non-link errors in a module. Task number: QTBUG-26870 Change-Id: Id4b0eebb6c0509c57d2f01763b6dedbfb6756a91 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Adding a debug functionMartin Smith2012-10-081-0/+15
| | | | | | | | | | | | | qdoc segfaults for one user, when he runs the release version of qdoc but not the debug version. This change adds a -debug option to the qdoc command line options. If set, qdoc will print debug messages at useful milestones so we can see where it is when it goes into the weeds. Change-Id: I0e826e74399eaf50091817c68c775d02c6b615d2 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Augment imagedirs listMartin Smith2012-09-291-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | Modularization of examples has resulted in putting all documentation and code for an example in each example subdirectory. In particular, each example subdirectory now contains a doc/images subdirectoy, where images are stored that are linked to from the example .qdoc files, which are in the doc/src subdirectory of the example directory. Because there are so many example subdirectories, it would be difficult to list all the doc/images directories in the imagedirs variable of the qdocconf file. Therefore, qdoc now searches all the directories listed in the exampledirs variable to find all the doc/images subdirectories there, and it adds these to the imagedirs variable for use in finding images called out in \image and \inlineimage commands. Task Nr: QTBUG-27248 Change-Id: I070ba1a558ab32e1db06429a71c083b55f9dd0ea Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: retrying More refactoring of qdoc data structuresMartin Smith2012-09-261-4/+0
| | | | | | | | | | | This commit is the second phase of a significant overhaul of qdoc. Two new classes, QDocIndexFiles, and QDocTagFiles, are added to encapsulate the creation and use of the qdoc index files, and the creation of the qdoc tag file. Change-Id: I94651b10628e535ea7b26bd8256037cd819ccea7 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* qdoc: Refactoring of qdoc data structuresMartin Smith2012-09-141-32/+19
| | | | | | | | | | | | | | | | | | This commit is the beginning of a significant overhaul of qdoc. A new class, QDocDatabase, is added, which will eventually encapsulate all the data structures used by qdoc. In this commit, the Tree class is made private and only accessible from QDocDatabase. Several maps structures are also moved into QDocDatabase from other classes. Much dead code and unused parameters were removed. Further simplification will follow. Change-Id: I237411c50f3ced0d2fc8d3b0fbfdf4e55880f8e9 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* Fix a bug in qdoc where to look for index files.Jan-Arve Saether2012-09-071-1/+3
| | | | | | | | | | This was only a problem if the qdocconf file was in the same directory as the current directory (QDir::relativeFilePath() returns an empty string in that case), so if the documentation was generated with the makefile rules, this problem did not reveal itself. Change-Id: I9c8956fdb46c4f307df7ab297dc94e8d3ef93fb4 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Find qdoc indexes in relative paths.Frederik Gladhorn2012-09-011-1/+1
| | | | | Change-Id: Ie717e85bfc3d49173d1ae4caf2a01ad6e9b8b625 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Let qdoc respect excludedirs for examples.Frederik Gladhorn2012-08-291-1/+1
| | | | | Change-Id: I01063b38122aea3615801ff013c8c4a1589327fc Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Fix a bug in qdocs handling of excludedirsJan-Arve Saether2012-08-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug was there because the way qdoc tries to exclude the directories given in the "excludedirs" variable: It did a simple string comparision on the candidate path (to include) with every string in the "excludedirs" variable. However, this did not work for all cases, since the paths are not canonicalized. For instance, the problem I faced was that the following qdocconf fragment: (config file located in doc/qtwidgets.qdocconf) sourcedirs += .. excludedirs += snippets Since qdoc would recursively parse all subfolders of sourcedirs, it would at one point visit the snippets folder, but it would have the relative path "../doc/snippets", which did not match with "snippets", causing snippets to not be excluded. In addition, it seems that qdoc tries hard not to use absolute paths (maybe because of more human-friendly error messages). I therefore chose to canonicalize the relative paths. As a side-effect this also give a better output from qdoc, as ../doc/foo.qdoc:42: Missing link will become foo.qdoc:42: Missing link Change-Id: If9c25fa569abd03542bd12675acd44d8f4e0282c Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Don't always add example .qdoc files to source listMartin Smith2012-08-071-3/+5
| | | | | | | | | When qdoc finds a .qdoc file in an exampledirs directory, it only adds it to the source list if it isn't already in the source list. This may be overkill, but it's safe. Change-Id: I2c5714c968f06e90f9b29b3a5481f80469e19ced Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* qdoc: Added support for modularized example docMartin Smith2012-08-011-0/+10
| | | | | | | | | | | qdoc now searches for .qdoc files in the directories listed in the exampledirs variable. These files are added to the list of sources to be parsed. Task nr: QTBUG-26708 Change-Id: I6dfd7cd7b41e0bdf847f88b6d61ac0272902d4e1 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Removed several #if 0 blocks.Martin Smith2012-07-061-21/+0
| | | | | | | Removed a lot of dead code. Change-Id: I237521efab7dd046d3a47ab92a6a0e083c59ab55 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Report multiple topic commands as an errorMartin Smith2012-06-281-16/+25
| | | | | | | | | | | | Some documenters are using two topic commands in a single qdoc comment. This is only allowed for \qmlproperty so that multiple QML properties can be documented with a single comment. qdoc now reports an error for all other combinations of multiple topic commands. Task Nr: QTBUG-26345 Change-Id: I1f9a6d2502ccffa76c2d41f961be3750014a0a56 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Add const & to foreach 'iterators'Albert Astals Cid2012-06-271-1/+1
| | | | | | | Change-Id: I8c0600dfd919f45d14a0011f2da9b9fe0b9a0df3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* QDoc: Check if index file was already inserted in list.Casper van Donderen2012-06-141-8/+15
| | | | | | | | | | | Previously it was possible to insert exactly the same index file in the map twice by specifying an -indexdir which is the same as -installdir. Probably you can also have two indexes with the same name that happen to have the same creation time, but changes of that happening are slim to none. Change-Id: I6be5fb9d04839026830b9948887b282489b379c0 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* QDoc: Also allow dependant modules to be specified on CLI.Casper van Donderen2012-06-121-1/+8
| | | | | Change-Id: I25dfbadc788616a864ecbf322434a3ce45bb94e5 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Better error messages for QML command errorsMartin Smith2012-06-121-11/+39
| | | | | | | | | | | | Some error messages were not clear for these qdoc commands: \qmlclass, \qmlmodule, \inqmlmodule, and \qmlproperty. They have been made clearer now. Also, qdoc now parses input files in the same order all the time now. The order is alphabetic now. This might not be the optimal order. Change-Id: Id53a5ec8105009c71f4bbd41973a54aed7821099 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: Look for template and include() under installdir.Casper van Donderen2012-06-051-1/+2
| | | | | | | | The installdir will now also be used to search for include() qdocconf variables and the stylesheet. Change-Id: I388392114fd5a8d57bab0b71699b30e4a6ddd46e Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: Remove fatal exit when not finding an index directory.Casper van Donderen2012-05-301-1/+0
| | | | | | | | QDoc would exit with exit code 1 when an index directory is not found, this behaviour was probably a bit too strict. Change-Id: If62fe1aeac4392002fa7419f6abcb62ed41c2beb Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: Add support for 'all subfolders' in dependant modules.Casper van Donderen2012-05-301-5/+24
| | | | | | | | | It is now possible to use '*' when specifying the 'depends' qdocconf variable, this will automatically load all index files found in subdirectories of the index dirs. Change-Id: I94b140df27da8d987824005a1dcf2a9348d5cd9e Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Make qdoc compile with QT_STRICT_ITERATORSThiago Macieira2012-05-291-8/+8
| | | | | Change-Id: I2923315678d1aef516b35a8c83fe734367723a28 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: Generate correct relative paths and links when using -installdir.Casper van Donderen2012-05-161-0/+5
| | | | | | | | This change will generate working links between all modules in qtbase. Some testing needs to be done on the other modules. Change-Id: Ic65a9c753f891ac51427ca7c1cdcab13611d2f5b Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Fix some QString usage issues (Krazy warnings).Friedemann Kleint2012-05-161-3/+3
| | | | | | | | - Avoid single-character constants. - Use QString() instead of "". Change-Id: If04eff389e7b6d4a18201365b711708fdf545d00 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Remove the HAVE_DECLARATIVE define.Stephen Kelly2012-05-101-6/+0
| | | | | | | It is unconditionally defined. Change-Id: I8961805eab984dd7331b7ce3dc228a031193892b Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Fixed minor version number in DITA XMLMartin Smith2012-05-041-1/+0
| | | | | | | | | The DITA XML didn't contain the correct QML Module version mumber in the imports statement. Change-Id: I22b75facc1396c5adea88be49c86fff11f19f27b Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: Implement -installdir CLI option for module cross-linking.Casper van Donderen2012-04-251-2/+8
| | | | | | | | | | | | QDoc needs to know the final location of the installed documentation to generate correct relative links between the modules. Normally you can use QLibraryInfo::DocumentationPath for this, but since QDoc gets compiled during Qt bootstrapping QLibraryInfo is not available yet. The -installdir option still allows us to specify QLibraryInfo::DocumentationPath on the command line. Change-Id: Ic4729f4daad112f0d175931467cf09cfcf5145a3 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: Support -indexdir on CLI and depends in qdocconf.Casper van Donderen2012-04-231-0/+56
| | | | | | | | | You can now specify a list of modules in the "depends" qdocconf variable. This stringlist is then used by the -indexdir option to specify in which directory to search for [depends entry]/[depends entry].index Change-Id: Icab6dd0133e180ac04365da9605743def6fb754d Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: add missing newline characters in qdoc -help.Casper van Donderen2012-04-141-2/+2
| | | | | Change-Id: Ibd50091693be393c6b479d6ca8927ba1ed578709 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Add CLI option to not generate example docs.Casper van Donderen2012-03-281-7/+12
| | | | | Change-Id: I059ae76430adada020d338905b39ba3089c89615 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Update to prepare to run on a directory.Casper van Donderen2012-03-131-21/+2
| | | | | | | | | | This change sets some default file extensions to accept to generate documentation. It also removes support for the sourceModules qdocconf variable which is not used anymore. It was used just after modularization. Change-Id: Iabdcfb534dc662bd44e0928036fd68ee4e460b07 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Move qdoc into qtbase and bootstrap itLars Knoll2012-03-081-0/+481
We need qdoc in qtbase to be able to properly modularize our documentation and build it when building the different Qt modules. qdoc does contain a copy of the qml parser from qmldevtools, but this is the lesser evil compared to how we are currently forced to genereate our docs (and the fact that no developer can run qdoc and check the docs for their module). Change-Id: I9f748459382a11cf5d5153d1ee611d7a5d3f4ac1 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com> Reviewed-by: Martin Smith <martin.smith@nokia.com>