summaryrefslogtreecommitdiffstats
path: root/src/tools
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a bug in how paths are made canonical and relativeJan Arve Saether2012-10-081-1/+1
| | | | | Change-Id: Id9b2de9097cab4520882b48a28fccd382c5e076d Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Simplification of target ref constructionMartin Smith2012-10-086-171/+188
| | | | | | | | | | | | This change is being done to simplify qdoc, but the motivation was to fix a segfault in qdoc when running the release version of qdoc on linux. The change improves qdoc by simplifying the code whether it fixes the segfault or not. Change-Id: I2c865f7f1e2a44763aa7349d1bd739ad562f4029 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Change to debug outputMartin Smith2012-10-081-1/+2
| | | | | | | | Only print debug output if -debug is used on the command line. Change-Id: I2bdfca1a072f728427da61f05b34e6e07d933183 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Change qdoc to use QML terminologyMartin Smith2012-10-081-1/+1
| | | | | | | | | \since command's output to "This QML type was introduced..." Task number: QTBUG-24784 Change-Id: I741efb57979eb76f4675915ef1a6b983deb492d9 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Adding a debug functionMartin Smith2012-10-084-0/+41
| | | | | | | | | | | | | 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>
* Fix moc stumbling over gcc __attribute__ extensionsSimon Hausmann2012-10-011-0/+8
| | | | | | | | | | | | | | | | | Reported by David Faure. In KDE a DEPRECATED macro gets defined in a header file created by cmake. The define is not guarded with #if Q_CC_GNU or similar because at cmake time the compiler is determined. Therefore moc suddenly sees this gcc specific token and stumbles over it. This patch simply defines an empty __attribute__ macro that will expand to nothing and thus become invisible to moc's "C++ parser" after the pre-processing. Change-Id: I4448b9ac3f72b6334e32b27484401fb0fca23a0c Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* qdoc: Augment imagedirs listMartin Smith2012-09-295-8/+54
| | | | | | | | | | | | | | | | | | | | | | | | | 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: remove the experimental basedir variablePierre Rossi2012-09-2810-147/+1
| | | | | | | | | It was introduced in the early days of the docs' modularization and appears not to be used anywhere anymore. Change-Id: I5b0c60d92828624af2129153fce96ad01aec861c Reviewed-by: Martin Smith <martin.smith@digia.com>
* Remove CDE and Motif styles from qtbaseJens Bache-Wiig2012-09-271-2/+0
| | | | | | | | | | | | | | | | | It is time to clean up some of our legacy code. These styles have not been actively maintained for a long time and I think it is safe to say that they should no longer belong as part of the default distribution of Qt. We dont support any platforms based on CDE with our source packages. Note that even if we are removing these styles from the default distribution of Qt, applications that depend on them will still be able to bundle the existing (and unmodified) styles along with their own source code as we are not breaking compatibility. Change-Id: I1709630c20ba8e8088cd01628628d86856db57a4 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* qdoc: retrying More refactoring of qdoc data structuresMartin Smith2012-09-2616-1738/+2016
| | | | | | | | | | | 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>
* Remove duplicate words and punctuation from documentation.Mitch Curtis2012-09-261-1/+1
| | | | | Change-Id: I5550c62d412510bc2c5acceb2cae7d2f2ef6a8d3 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Moc: Correctly expand macros with argumentsLars Knoll2012-09-252-19/+163
| | | | | | | | | Moc now supports full expansion of macros with arguments with the exception of some keywords such as Q_OBJECT and others that are used internally Change-Id: I283d47152f75de81ec68a3df1f0f2273f11c5149 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Moc: Make # and ## valid tokens in cpp parsing modeLars Knoll2012-09-252-4/+6
| | | | | | | | This is required so preprocessing macros with arguments can work correctly. Change-Id: Ia30ede6a3579be13800bf1255d313748e2d696f9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Correctly parse function macrosLars Knoll2012-09-253-8/+75
| | | | | | | | Parse function macros and add it's list of arguments to the Macro definition. Change-Id: Id22f5cf4a1c098f7b4f5b72f002900cd40d03e0f Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Correctly expand macros without arguments in mocLars Knoll2012-09-252-15/+51
| | | | | | | | | | | | This helps e.g. cases where a namespace is defined through a macro and moc doesn't see it at all. Expanding macros with arguments is significantly more work, and should happen in a separate commit. Change-Id: Ic8d0443d06fab2ed343115d8c43022f2c67ec3cd Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Use QStringList::join(QChar) overload where applicable [tools]Marc Mutz2012-09-2310-12/+12
| | | | | | | | | | This is an automated change performing the following replacements: join\("(.)"\) -> join('\1') join\(QLatin1String\("(.)"\)\) -> join(QLatin1Char('\1')) join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1')) Change-Id: Ia087beb886bbaec1a0976cd924440d8904044879 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-22151-3490/+3490
| | | | | | | | 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>
* QDBusMetaTypeId: don't cache the result of qMetaTypeId<>() in static intsMarc Mutz2012-09-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | There's not much point in caching the result of qMetaTypeId<>, because it's already internally memoised. In addition, the code that initialised the static int caches wasn't protected against concurrent access under the assumption that the operations performed were thread-safe. That is true for most of them, but not for the stores to the static ints, which race against each other: // Thread A // Thread B r1 = initialized /*=false*/ r1 = initialized /*=false*/ r2 = qMetaTypeId<...>(); r2 = qMetaTypeId<...>(); message = r2; message = r2; // race, ditto for all other ints To fix, turn the ints into inline functions that just call the respective qMetaTypeId<>() function. Change-Id: I5aa80c624872c3867232abc26ffdcde70cd54022 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* move syncqt call to qt_module_headers.prfOswald Buddenhagen2012-09-211-0/+13
| | | | | | | | | | | | | for one, the syncqt invocation is qt module magic and thus simply does not belong into the generic default_pre file. second, this way the forwarding header generation is now linked to the rest of the build magic for a particular module, which is way less confusing for the unsuspecting developer. Change-Id: Idc8e420d3faf173d7fff4a41e6e1c59af15c3023 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* make src/tools/ compile without CamelCase headersOswald Buddenhagen2012-09-1969-198/+196
| | | | | | | | so the build works with syncqt -minimal Change-Id: Ief5e8eb9a504dd6c84cff76cc3e5257450386a0f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make qdoc read multiline macros in files with CRLF endingsJan-Arve Saether2012-09-181-1/+4
| | | | | | | | | | | | | | | | | | | | | This caused qdoc for instance to not being able to parse qglobal.h correctly. (On windows, it stopped to parse anything meaningful after the line with this macro:) #define Q_INIT_RESOURCE_EXTERN(name) \ extern int QT_MANGLE_NAMESPACE(qInitResources_ ## name) (); It worked on linux just because on linux a line continuation 'token' is the sequence "\\\n" (on windows it is "\\\r\n") So for files with CRLF line endings, it treated *only* the first line as a macro, potentially causing the subsequent lines to affect the state of the tokenizer. Change-Id: If7c80ee7eb317f2d324ace7ff540ced7c31185dc Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Martin Smith <martin.smith@nokia.com>
* SIC: QtPrintSupport - Remove QAbstractPageSetupDialogJohn Layt2012-09-171-1/+0
| | | | | | | | | | | | QAbstractPageSetupDialog is a completely unnecessary base class that is not really abstract and is used nowhere else. This changes merges its methods into the QPageSetupDialog main class. While technically SIC no-one else uses this so no apps should be affected. Change-Id: I59b1739f1c453c34c25d1664d5d042e7918db316 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Make maemo scope syntax in project files more genericLaszlo Papp2012-09-141-1/+1
| | | | | | | | | | | | | | | | | It is necessary to use the n9 device file for now in scratchbox or/and on the community open build service because the maemo platform mkspecs file assumes that a cross-toolchain is used all the time. If no platform file is used, then for instance certain plugins may not be built in general. There is currently an ongoing issue with the meego plugin for context management in the Harmattan components project. That is currently not built due to this issue, so no orientation works in those applications. The nice solution would be to make the maemo platform file work with cross and native toolchains as well, but that requires a decent amount of investigation and work. Thereby, the scope is extended this way for now. Change-Id: I172c7d152bdbb2db279526d9fd1ca5648d0cd0a9 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* qdoc: Refactoring of qdoc data structuresMartin Smith2012-09-1435-2111/+1817
| | | | | | | | | | | | | | | | | | 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>
* Mark (non-public API's) ctor's as explicitSergio Ahumada2012-09-142-2/+2
| | | | | | | | | Make C++ class constructors that can be used with only one required argument 'explicit' to minimize wrong use of the class. Change-Id: I12ad5b6eb1794108c6b7464a2573e84068733b03 Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDoc manual: ordered command listJerome Pasion2012-09-141-3/+3
| | | | | | | | Some commands were not listed in alphabetical order. Change-Id: I299abe145ca0f9d63c9ceefb801f5c53548e7938 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Output absolute paths in qdoc messages.Frederik Gladhorn2012-09-111-2/+5
| | | | | Change-Id: I4499bb0464cca3703026e317e940612091bf55a2 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Use QStringList::join(QChar) overload where applicable [QtDBus]Marc Mutz2012-09-101-1/+1
| | | | | | | | | | This is an automated change performing the following replacements: join\("(.)"\) -> join('\1') join\(QLatin1String\("(.)"\)\) -> join(QLatin1Char('\1')) join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1')) Change-Id: I807b0e88ac71a0cb367fb4170cca8f2cb0ad43f3 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Use the same hash for 8 bit strings as in QByteArrayLars Knoll2012-09-091-12/+1
| | | | | | | | | Moc still used a different and quite a bit more complicated algorithm to hash 8bit strings then QByteArray. Change-Id: I86efb08d5ab7de1863fc168dcfc73399e72e1331 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Removing duplicate includesSergio Ahumada2012-09-091-1/+0
| | | | | | | Do not include a header more than once Change-Id: Ia2e5d66e72988ad833cf5177a3f8aa988bf510e9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix missing or improper include guard in headersSergio Ahumada2012-09-091-2/+2
| | | | | | | | Use an include guard in headers to ensure the header is not included more than once. Make the header guard match its file name. Change-Id: Icf7d7d4bed91443b3b21ef5d4219dbd260dffef3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qdoc: Renaming include guard in qmlmarkupvisitor.h headerSergio Ahumada2012-09-081-2/+2
| | | | | | | | This header guard is duplicated with qmlvisitor.h Change-Id: I11787dd8af2834e446eabd219f93b74c0b52428d Reviewed-by: Martin Smith <martin.smith@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Added API Reference Style GuidelinesJerome Pasion2012-09-077-8/+617
| | | | | | | | | | | | -added C++ and QML language guidelines as part of QDoc Guide -included snippets -fixed links in the HTML template of the QDoc Guide -compiles when the main QDoc manual is compiled Change-Id: Iadd799712eef80e905d092396cb7a1e25a863b43 Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com> Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Martin Smith <martin.smith@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>
* Generate includes for Qt containers used as auto-metatypes.Stephen Kelly2012-09-031-0/+42
| | | | | | | | | | | | Otherwise the containers might be forward declared in the moc file, and when the moc file is compiled in a standalone translation unit, the full definition of it would not be available. This results in odd compile errors, so instead generate the includes if required. Change-Id: Ie01c5a5d45314daad0b00dec03b3e1e18cdbae64 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix moc generating invalid code for slots with reference types as argument.Volker Krause2012-09-021-2/+2
| | | | | | | | | | | We can't have T& declared/registered as a metatype (wont compile), but using it as type for a slot argument is possible. With the recent introduction of metatype auto-registration we have to make sure that moc doesn't attempt to auto-register those. Simple types are handled correctly already, this fixes containers and smart pointers. Change-Id: Id96857c57d6ebf158a67e9d527c89dc195473b1b Reviewed-by: Stephen Kelly <stephen.kelly@kdab.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>
* Use QString() instead of "".Frederik Gladhorn2012-09-017-58/+58
| | | | | Change-Id: I42c55344663808b8362e2c9185273a00fc1c70b0 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: Write SHA1 of .qhp to file.Casper van Donderen2012-08-313-1/+18
| | | | | | | | | QDoc should generate a SHA1 hash of the .qhp file to be able to use that file as a search index. The idea is that we can use the hash as an identifier to check if the search index was updated. Change-Id: Ifd19571bcebf7d735ef452dca6c046a14fedc0e2 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Doc: Simplify qtbase qdocconfs.Casper van Donderen2012-08-311-5/+8
| | | | | | | | | | We should be using the global qdocconf for the common variables. This change also allows you to just specify -installdir without using a templatedir. Change-Id: I207d279d9b5199212e896fc5ccab5c212b1896c6 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix static plugins for classes in namespaces.Friedemann Kleint2012-08-301-1/+2
| | | | | | | | | | | Breakage introduced by 819d0203e6fd9d27dc4c22e8c3cb8b437998f62a . Extend QT_MOC_EXPORT to take the unqualified class name as well for the function names. Change-Id: I736097b564caa37c522d723780663d03341f9032 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Lukas Geyer <lgeyer@gmx.at>
* Let qdoc respect excludedirs for examples.Frederik Gladhorn2012-08-293-5/+4
| | | | | Change-Id: I01063b38122aea3615801ff013c8c4a1589327fc Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Use qualified name for QT_MOC_EXPORT_PLUGIN()Lukas Geyer2012-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using non-qualified name for QT_MOC_EXPORT_PLUGIN() breaks template instatiation for QPointer<T>::operator=(T*) in qt_plugin_instance() when the class is embedded a namespace with the same name. namespace Test { class Test : public QObject { Q_OBJECT Q_PLUGIN_METADATA(IID "Test") public: Test(QObject *parent = 0) : QObject(parent) {} }; } // namespace Test In function 'QObject* qt_plugin_instance()': error: expected type-specifier before 'Test' error: no match for 'operator=' in '_instance = (int*)operator new(4u)' note: candidates are: In file included from qtbase\include\QtCore/qpointer.h:1:0, from qtbase\include\QtCore/QtCore:68, from test.cpp:1: qtbase/src/corelib/kernel/qpointer.h:87:25: note: QPointer<T>& QPointer<T>::operator=(T*) [with T = QObject] qtbase/src/corelib/kernel/qpointer.h:87:25: note: no known conversion for argument 1 from 'int*' to 'QObject*' qtbase/src/corelib/kernel/qpointer.h:79:7: note: QPointer<QObject>& QPointer<QObject>::operator=(const QPointer<QObject>&) qtbase/src/corelib/kernel/qpointer.h:79:7: note: no known conversion for argument 1 from 'int*' to 'const QPointer<QObject>&' error: expected ';' before 'Test' Change-Id: Idd3e57ab1c888352ad2a8e8f6efca75d858089df Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add automatic metatype registration for invokable methods.Stephen Kelly2012-08-282-1/+52
| | | | | | | | | | | This works similarly to the automatic registration for Q_PROPERTY types, but in this case it mostly affects the need for users to call qRegisterMetaType<T>() before using queued connections with methods using non-built-in metatypes, or before using invokeMethod manually. Change-Id: Ib17d0606b77b0130624b6a88b57c36d26e97d12d Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Add automatic metatype registration for Q_PROPERTY types.Stephen Kelly2012-08-283-5/+93
| | | | | | | | | | | | | | | | In Qt 4, the user needs to call qRegisterMetaType if the property could otherwise be read before the type is registered with the metatype system. This patch makes that unnecessary and automatic by registering it when the first read indicates that it is not yet registered instead or when QMetaProperty::userType is called before it is registered. The types which are automatically registered exclude the built-in types, which do not need to be registered, and include metatypes which are automatically declared, such as pointers to QObject derived types and containers of existing metatypes. Change-Id: I0a06d8efdcb64121618e2378366d0142fa0771f5 Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* moc: parse classes that use Q_DECL_FINAL|final|sealedMarc Mutz2012-08-261-1/+11
| | | | | | | | | | | | | | | | | | | | This only works with the C++11 contextual keyword directly, the MSVC equivalent 'sealed', or the Qt define for it. While this isn't a problem for syncqt, being an internal tool, moc should eventually be able to parse user code using local C++11-final-wrapping macros. For this, I guess moc would have to be taught to expand macros in code and not just test #if clauses, potentially driven by something like #pragma qt-moc expand-this #define MY_FINAL_CLASS final but that's something for someone more intimately familiar with moc's source than I am. Change-Id: Id6aec961a881e8d5a9b76a7fc8e1c02c71913f64 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* doc: Replaced FakeNode with DocNodeMartin Smith2012-08-2119-545/+539
| | | | | | | | | | | | | | | | | | The name FakeNode was a bad choice. It was used to represent something that wasn't derived from a C++ declaration in a .h file. Any generic page or QML item or any special kind of qdoc construct was stored in a FakeNode. The name was unfortunate because the constructs stored in FakeNodes were just as real as C++ constructs. So FakeNode has been renamed to DocNode, which just refers to a documentation node. The node type Fake has been replaced with node type Document. Change-Id: Ida9de8288b7b8915bf9273fd890ca84aaf05e182 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Remove QProxyModel from qtbase.Stephen Kelly2012-08-201-1/+0
| | | | | | | A copy is placed in uihelpers for anyone who might be using it. Change-Id: I175f7bc5dcbf25a910d28bfd8985579866392938 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Doc: Fix spelling errorsSergio Ahumada2012-08-172-3/+3
| | | | | Change-Id: Ibae8d10183f6b15a16b1499daa2df8802dbb014e Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
* Fix a bug in qdocs handling of excludedirsJan-Arve Saether2012-08-176-13/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>