summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/main.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qdoc: Don't include internal QML typesMartin Smith2013-11-071-1/+1
| | | | | | | | | | | | | QML types marked \internal were appearing in the "All QML Types" list. These links were dead because the pages for these internal types were not being created, which was correct. Now these internal QML types no longer appear in the list. Task-number: QTBUG-34506 Change-Id: I1d005459e84ed9a2afae94b797b9d39aa3e517f3 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: warn if index file for dependency is not foundTopi Reinio2013-11-041-2/+9
| | | | | | | | | | | | | Output a warning for each doc dependency that qdoc cannot locate an index file for. The index files are loaded for both prepare and generate phases. To avoid duplication, output warnings only when in generate phase. Change-Id: I74f9ba78e4b57cb1a62e0d1c2efda01ecc85c06d Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Snippets files no longer parsed by qdocMartin Smith2013-11-011-0/+8
| | | | | | | | | | | | | | | The files in the doc/snippets subdirectory of each example subdirectory are no longer parsed by qdoc as source files. They continue to be used as snippets files. This fix also ensures that there are no duplicates in the list of files to be parsed. Task-number: QTBUG-34003 Change-Id: Icec1a2a539237f24ee6bae89c6401f0dc81826d1 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Nico Vertriest <nico.vertriest@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix crash in qdoc startupKai Koehne2013-10-181-25/+23
| | | | | | | | | | | | | | the order of initialization of static variables is undefined, and we therefore cannot (safely) initialize the array with static QStrings declared elsewhere. This was leading to crashes in MinGW gcc 4.8.0. Work around the issue by initializing the array at runtime initialization instead. Task-number: QTBUG-34172 Change-Id: I24f0e6af6685fc280d12c8ef90d40b8ebe994450 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Improve qdoc performance.Jędrzej Nowacki2013-09-211-10/+10
| | | | | | | | | | | Valgrind blamed CppCodeMarker::addMarkUp as slow, the patch improves situation by ~12% Use of QStringLiterals instead of const char* reduce amount of allocations on startup. Change-Id: I8737e02785506bba7e23868ab3952eab09d543d2 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Remove qSort usages from qdocGiuseppe D'Angelo2013-09-131-1/+3
| | | | | | | | | QtAlgorithms is getting deprecated, see http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I419d767ea18944917888037899e6ececdb014e82 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Let default output subdir be htmlMartin Smith2013-08-121-0/+2
| | | | | | | | | | | | | | | | | | When you want qdoc to output the docs in a single output subdirectory, you would add these lines to your qdocconf file: HTML.nosubdirs = "true" HTML.outputsubdir = "html" The name of the output subdir can be anything. But if you leave out the second line, qdoc now defaults to using "html" as the single output subdir. Task-number: QTBUG-32580 Change-Id: Ibfb2a0c578515ef934e816b2d7a516b64f0f9dcf Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Restore support for output in one directoryMartin Smith2013-08-081-2/+13
| | | | | | | | | | | | | | | | | | | | | | The basic functionality is working. Add these lines to qt-html-templates-offline.qdocconf, or add them to the online version: HTML.nosubdirs = "true" HTML.outputsubdir = "html" Before it opens a .html file for writing, it tests whether the file alread exists. If so, it writes an error message, e.g.: ...platform-notes.qdoc:140: error: HTML file already exists; overwriting .../doc/html/platform-notes-windows.html There are currently nearly 100 files being overwritten for Qt5. Task-number: QTBUG-32580 Change-Id: I02b103fd00b9d1e624665ac518d571acc791be9d Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Merge branch 'stable' into devSergio Ahumada2013-05-071-1/+1
|\ | | | | | | Change-Id: Ica003a10ede86914bbbb062a2dc277a2ce39a259
| * qdoc: Config class uses current path for each path varMartin Smith2013-04-301-1/+1
| | | | | | | | | | | | | | | | | | | | The Config class is further modified to make use of the current directory information it stores with each configuration variable. Task-number: QTBUG-30725 Change-Id: I34c845e6c05d7868266324f1d54e56f94d709f95 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Add new option to qdoc.Jędrzej Nowacki2013-04-051-0/+7
|/ | | | | | | | | | The -redirect-documentation-to-dev-null option allows to get all qdoc errors, without creating full documentation. It significantly reduces amount IO operations. Change-Id: I80fb6f9e304eb106f1c1d1e6320a1b38d788f6fc Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* fix non-bootstrapped buildOswald Buddenhagen2013-04-021-1/+1
| | | | | Change-Id: Ic615dc3bee423e2bb05798ce861ca809ac89a23c Reviewed-by: hjk <hjk121@nokiamail.com>
* move the setup of QT_INSTALL_DOCS from qdoc to qt_docs.prfOswald Buddenhagen2013-04-021-12/+0
| | | | | | | | | | this is a qt specific option and really should not be hard-coded. also, the implementation used undocumented api that is internal to the bootstrapped process, which made it impossible to de-bootstrap it. Change-Id: If706960671744e64a9a7c366437977a800a6058e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qdoc: Now checks for existance of each exclude dirMartin Smith2013-03-181-1/+3
| | | | | | | | | | | If the dir exists, it is added to the list of exclude dirs. If it does not exist, it is ignored. If it does not exist, qdoc assumes there is nothing to exclude there and does not report an error. Task-number: QTBUG-29736 Change-Id: I657b84f1a967d03f83a803402d8670f9113933eb Reviewed-by: Martin Smith <martin.smith@digia.com>
* Fix spelling error found by bot.Friedemann Kleint2013-02-071-1/+1
| | | | | Change-Id: I7e9a00e014368450b6dcb8172f7888bb744d6555 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qdoc: Fix translation contexts.Friedemann Kleint2013-02-071-5/+5
| | | | | | | | | | | Put all translations into the namespace QDoc and fix warnings about invalid tr()-usage by removing the free tr()-function from tr.h. Provide QCoreApplication::translate() for bootstrap builds. Change-Id: I2b6931188346f290e80e14b84adff8892d8a860f Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* qdoc: Fix problem of missing inherited membersMartin Smith2013-01-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was another bug resulting from modularization. qdoc is now run twice for each module in Qt 5. First, qdoc is run with the -prepare flag for each module. The only thing qdoc generates is the .index file for each module. Then qdoc is run with the -generate flag for each module. Here, for each module, qdoc first reads the .index files for the modules on which the current module depends. Then qdoc generates the docs for the module. qdoc was not reading the index files for the prerequisite modules, when it was run in the -prepare phase. This has now been corrected. qdoc now reads the prerequisite .index files in both the -prepare phase and the -generate phase. Note that this requires that the order qdoc runs in the -prepare phase must be the same as the order of building modules when building Qt 5. This change also tells qdoc to ignore nodes, when traversing its main data structure to output docs, if the nodes came from reading a .index file, because the docs for these nodes are generated in the -generate phase for their respective modules. Task-number: QTBUG-28508 Change-Id: Id73652ae1c4022e4c9e4f199caab12a854e5f9b4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* qdoc: better copying of .css filesMartin Smith2012-11-161-0/+1
| | | | | | | | | | | This change ignores templatedir for css files. It assumes that the paths in the stylesheets variable are relative to the qdocconf file that contains the stylesheets variable. Task-number: QTBUG-27878 Change-Id: I2155e58f352e17d710c93ad4e92679beb169d823 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: better copying of .css filesMartin Smith2012-11-141-5/+10
| | | | | | | | | | | | | | | | | | This fix searches for the css files specified in the stylesheets variable. It searches for them in the directory specified as the templatedir. It copies them into the style subdirectory of the outputdir. It also tests QT_INSTALL_DOCS before setting it to the library info. If it was set on the command line, it is not set from the library info. This change also includes some debug code, which will be removed after testing. Task-number: QTBUG-27878 Change-Id: I7a9469b840e13b966aca44b99aebba102e5d4f0c Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* 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>