summaryrefslogtreecommitdiffstats
path: root/src/tools/moc/main.cpp
Commit message (Collapse)AuthorAgeFilesLines
* moc: Add a hidden option to make QML macro warnings fatalFabian Kosmale2025-03-101-0/+6
| | | | | | | | | | | | | | | | We don't want to make them fatal by default, as that could break user projects with identifiers whose name collide with the macros (which is fine if they don't actually want to use the registration macros). However, when using qt_add_qml_module, we can assume that anything looking like a registration macro should actually be one. Prepare for this by adding a flag which makes the warning fatal, and which can then be set in qtdeclarative. Task-number: QTBUG-134148 Change-Id: I3a49968b05d66e4e4ca3a8a2dae1a7b543471c68 Reviewed-by: Ivan Solovev <[email protected]>
* moc: Do not accept empty input files on --collect-jsonUlf Hermann2025-02-211-4/+10
| | | | | | | | ... and also don't generate them on --output-json. That was an invitation for build time race conditions. Change-Id: I206ee47f08aa657f9b1cbec4e9e9b3ea97605cae Reviewed-by: Thiago Macieira <[email protected]>
* moc: Always indentify as mocFabian Kosmale2024-12-131-0/+2
| | | | | | | | | | | | | | | | | | External tools might rely on the output of "moc --version" to identify moc, and, depending on how robust their parsing is, could break if the reported name does not equal "moc". Explicitly set the application name to moc, so that even if the moc binary gets renamed and invoked via a symlink, it will still correctly identify itself. This might help with both binaries from the Qt Company's installer, as well as with distros which rename moc to moc6. Pick-to: 6.9 6.8 6.5 Task-number: QLS-1605 Change-Id: Id85e2ffa17d445213da0b37e7bd038d7b68e2c2a Reviewed-by: Ulf Hermann <[email protected]>
* moc: add a hidden --active-qt option for ActiveQtThiago Macieira2024-11-121-0/+7
| | | | | | | | | So it doesn't have to clean up the output, which it may get wrong. It doesn't want the qt_static_metacall function or the signal implementations. Change-Id: Ia0b110db8d5ef60020bdfffdbe547052dcff210e Reviewed-by: Oliver Wolff <[email protected]>
* moc: port to RAII handling of fopen()ed FILE*sMarc Mutz2024-05-151-39/+30
| | | | | | | | | | | | | | | | | | | Similar to what we did for androiddeployqt, port moc's output file handling from raw FILE* to unique_ptr<FILE> with an fclose() "deleter". Introduce a openFileForWrite() helper function to abstract away the difference between Unixoid and Windows FILE handling. Keep the actual type of the unique_ptr instantiation local to openFileForWrite() function so that creation and destruction are defined close together, notwithstanding the occasional need to spell out the type of the return value in callers. NB: The moc copy in qtscxml does not contain this code. Pick-to: 6.7 6.5 Change-Id: I0c9bca0bf3e29c137c02cc563098c5f2e2708cf3 Reviewed-by: Fabian Kosmale <[email protected]>
* Tools: handle file opening failureGiuseppe D'Angelo2024-04-141-2/+5
| | | | | | | | | Most of the cases, a file handle (stdin/out) is opened without checking for error. That operation may still fail, so check for it. Change-Id: I30c3e7b40858acd8b1662622129bd6557722dccd Reviewed-by: Ahmad Samir <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* moc: Print sterror(errno) when moc can't write the output fileAlexandru Croitor2023-07-121-3/+6
| | | | | | | | | | Also prepend a "Error:" label to all strrerror handling locations, to make it clear where the error starts. Pick-to: 6.2 6.5 6.6 Task-number: QTBUG-101926 Change-Id: I1a781b4c5716636eff4d47a6c8554dcbd51d2697 Reviewed-by: Fabian Kosmale <[email protected]>
* moc: Store errno after fopen callAlexandru Croitor2023-07-121-2/+8
| | | | | | | | | To avoid QFile::encodeName() potentially overriding the value. Pick-to: 6.2 6.5 6.6 Task-number: QTBUG-101926 Change-Id: Ie751df877d6624238ded344474b5eccc324ec541 Reviewed-by: Fabian Kosmale <[email protected]>
* Moc: port to qsizetypeAhmad Samir2023-05-281-1/+1
| | | | | | | | Simple s/int/qsizetype/. Fixes some narrowing conversion warnings. Pick-to: 6.5 Change-Id: Ied82e861298fa9763089cadc7eae6e536f1bb9ca Reviewed-by: Thiago Macieira <[email protected]>
* Port from container::count() and length() to size() - V5Marc Mutz2022-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); except that the on() matcher has been replaced by one that doesn't ignoreParens(). a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'. Added two NOLINTNEXTLINEs in tst_qbitarray and tst_qcontiguouscache, to avoid porting calls that explicitly test count(). Change-Id: Icfb8808c2ff4a30187e9935a51cad26987451c22 Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-05-161-28/+3
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* Tools: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-05-031-9/+11
| | | | | | | | | As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Task-number: QTBUG-98434 Change-Id: I6d4712a71b5ebf3f379f1f98ea476557bce963ef Reviewed-by: Marc Mutz <[email protected]>
* Tools: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-05-021-7/+7
| | | | | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Change-Id: Ib9e01ede4e0d7869fc95414d36f37df4a30b16b4 Reviewed-by: Marc Mutz <[email protected]>
* moc: Add --debug-includes option to mocAlexandru Croitor2022-04-051-0/+16
| | | | | | | | | | | | Because moc silently ignores missing headers, or sometimes includes the wrong header, it is useful to have a facility to print which header paths were considered and found. Add a new --debug-includes option that does that. Task-number: QTBUG-101775 Change-Id: I72b294ae53d6e47252c7d8afe0f2245da78bfadb Reviewed-by: Fabian Kosmale <[email protected]>
* Let androiddeployqt write a dependency fileAndreas Buhr2021-07-081-44/+1
| | | | | | | | | Let androiddeployqt write a dependency file so that the build system knows when to re-run it. Fixes: QTBUG-94567 Change-Id: I5985d707f257b22789013a74f0a6f7c4de6e5e88 Reviewed-by: Joerg Bornemann <[email protected]>
* Avoid blocking read from stdin when collecting json filesAlexey Edelev2021-05-311-3/+6
| | | | | | | | | | | Change the behavior of moc when collecting json files. If argument files are specified, suppose moc received empty input and skip input from standard input. Pick-to: 6.1 Fixes: QTBUG-93504 Change-Id: I45ec790ed458f1fae543d069555bc8abc6560816 Reviewed-by: Alexandru Croitor <[email protected]>
* Another round of 0->nullptr cleanupAllan Sandfeld Jensen2020-07-311-1/+1
| | | | | Change-Id: Ic8db7dc252f8fea46eb5a4f334726d6c7f4645a6 Reviewed-by: Sona Kurazyan <[email protected]>
* MetaObject: Store the QMetaType of the methodsFabian Kosmale2020-06-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | This does the analog of 46f407126ef3e94d59254012cdc34d6a4ad2faf2 for the methods we care about (signals, slots, Q_INVOKABLEs). In addition to the actual QMetaType, we store an array with offsets so that we later can do a mapping from methodIndex to metatype. The newly added QMetaMethod::{return,parameter}MetaType methods can then be used to retrieve the metatypes. This does however require that all involved types are complete. This is unfortunately not a feasible requirement. Thus, we only populate the metatype array on a best effort basis. For any incomplete type, we store QMetaType::Unknown. Then, when accessing the metatype, we fall back to the old string based code base if it's Unknown. Squashes "moc: support incomplete types" and "Fix compile failures after QMetaMethod change" Fixes: QTBUG-82932 Change-Id: I6b7a587cc364b7cad0c158d6de54e8a204289ad4 Reviewed-by: Lars Knoll <[email protected]>
* Teach moc to output a Make-style depfileAlexandru Croitor2019-12-171-0/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If moc is invoked with the --output-dep-file option, it will generate a "moc_<source_file_name>.d" dep file which contains dependency entries that can be consumed by a Makefile / Ninja build system. This is useful for build tools (like CMake) to know when moc should be re-ran. In the future, it might also be useful for ccache (teach ccache not to re-run moc when not necessary). The dependency list contains: the original source file, the passed --include files (like moc_predefs.h), the include files that were discovered while preprocessing the source file, and the plugin metadata json files listed in Q_PLUGIN_METADATA macros. The file paths are encoded using QFile::encodeName, so using the local 8-bit encoding. The paths are also escaped (so ' ' replaced by '\ ', '$' by '$$', etc) according to the Make-style rules as described in clang's dep file generator https://github.com/llvm/llvm-project/blob/release/9.x/clang/lib/Frontend/DependencyFile.cpp#L233 For reference, the equivalent Ninja depfile parser source code can be found at https://github.com/ninja-build/ninja/blob/v1.9.0/src/depfile_parser.in.cc#L37 Additional options that can be passed: --dep-file-path - to change the location where the dep file should be generated. --dep-file-rule-name - to change the rule name (first line) of the dep file (useful when no -o option is specified, so output goes to stdout). Encoding story. Note that moc doesn't handle non-local-8-bit characters properly when processing include directives at the preprocessor step. Specifically the content of the main input file is read as a raw byte array (which can be UTF-8 encoded) and then each include directive is resolved via Preprocessor::resolveInclude(), which calls QString::fromLocal8Bit(). Because moc uses the QtBootstrap library, only a limited set of codecs are available: various UTF 8 / 16 / 32 codecs and QLatin1Codec (ISO-8859-15). This means that on Windows, if the source input file is UTF-8 encoded, and contains include names with UTF-8 characters (like an emoji or any character >= 127 that is not in the QLatin1 codec), moc will fail to resolve and process that include, and thus no dep file entry will be created either. On macOS / QNX / WASM the main locale is UTF-8, so file content and paths will be processed correctly (hardcoded via QT_LOCALE_IS_UTF8 in src/corelib/codecs/qtextcodec_p.h). On Linux it will depend on the current locale / encoding set, and if that encoding is one of the ones supported above. UTF-8 should work fine. [ChangeLog][QtCore][moc] moc can now output a ".d" dep file that can be consumed by other build systems. Task-number: QTBUG-74521 Task-number: QTBUG-76598 Change-Id: I5585631ff1bbbae4e2875cade9cb6c20ed018c0a Reviewed-by: Leander Beernaert <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* Add support for machine-readable JSON output to the MOCSimon Hausmann2019-10-041-2/+39
| | | | | | | | | | | The --output-json parameter will make moc produce a .json file next to the regular output file. With --collect-json the .json files for a module can be merged into a single one. Task-number: QTBUG-68796 Change-Id: I0e8fb802d47bd22da219701a8df947973d4bd7b5 Reviewed-by: Simon Hausmann <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>
* Merge remote-tracking branch 'origin/5.9' into 5.10Lars Knoll2017-12-301-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf mkspecs/win32-g++/qmake.conf src/corelib/global/qglobal_p.h src/corelib/global/qoperatingsystemversion_p.h src/corelib/io/qfilesystemengine_win.cpp src/network/bearer/qbearerengine.cpp src/platformsupport/input/libinput/qlibinputpointer.cpp src/sql/doc/snippets/code/doc_src_sql-driver.cpp src/widgets/kernel/qwidget_p.h src/widgets/kernel/qwidgetwindow.cpp src/widgets/styles/qfusionstyle.cpp tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp Change-Id: I80e2722f481b12fff5d967c28f89208c0e9a1dd8
| * Allow moc to handle Unicode output filenames on Windows with MSVCJake Petroules2017-12-281-2/+2
| | | | | | | | | | | | | | | | | | The C standard library functions cannot handle UTF-8 filenames. Instead, we need to use the wide-character versions which accept UTF-16 input. Task-number: QTBUG-65492 Change-Id: If4b3b4eeeec4f3bbb428b8f6b0311a65d01463b0 Reviewed-by: Thiago Macieira <[email protected]>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-301-0/+1
|\| | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/windows/qwindowswindow.cpp tests/auto/widgets/kernel/qaction/tst_qaction.cpp Change-Id: Ia017a825ed2ca2d53ac586f4ae48df6f65818d40
| * moc: Restore compatibility with Qt 5.7's -b optionOlivier Goffart2017-10-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | In Qt 5.7, it was possible to call moc "-bfoo.h" or "-b foo.h" and it had the same effect. With the port to QCommandLineOption, we broke the -b option as it was not annotated as a short option. (Regression in a7e3c17e755881aa3169a2bb662338bbd2c67512) Task-number: QTBUG-63706 Change-Id: I161d0f1a4e65d129063b5e8431802257677da19d Reviewed-by: Jake Petroules <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
| * Revert "moc: remove _MSC_EXTENSIONS #define"Jani Heikkinen2017-06-051-3/+0
| | | | | | | | | | | | | | | | | | | | It seems this change is preventing us to integrate qt5.git in '5.9' This reverts commit c3030d7163245b55abfd09eefe696c035c55011c. Task-number: QTBUG-61204 Change-Id: Id98afaa23be0a8dd6f2c54a899f46542c65436aa Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
| * moc: remove _MSC_EXTENSIONS #defineJoerg Bornemann2017-05-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because we obviously don't support Microsoft's extensions in C++. This is required because some MS headers have code that isn't proper C++, like iso646.h: #if !defined(__cplusplus) || defined(_MSC_EXTENSIONS) #define and && Do not pass /Za to MSVC to generate moc_predefs.h, because this option is incompatible with compiler options like /fp:fast that may be user-specified. This reverts commit e1a70ce4 and re-fixes the issue similarly to commit d72ac3f3. Task-number: QTBUG-58391 Change-Id: I5c0143283afed09f98200806c87259c039c00ae1 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* | Use new QStringList::contains(QL1S)Anton Kudryavtsev2017-03-201-2/+2
|/ | | | | | | ... to reduce text size by replacing QStringLiteral with QL1S. Change-Id: I8166282d915f081ba816989039451466ec29e208 Reviewed-by: Thiago Macieira <[email protected]>
* Make better use of new QStringList::join(QLatin1String) overloadMarc Mutz2017-02-191-1/+1
| | | | | | | | It was added in Qt 5.8. Change-Id: I7194fbfaef9219110604f3b03a893a658c996c06 Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* moc: force the Microsoft compiler not to define _MSC_EXTENSIONSThiago Macieira2016-12-081-3/+0
| | | | | | | | | | This re-fixes commit d72ac3f35f4c6d6405e9675d54124b3ddb8d80ab, which simply removed the #define but did so at the wrong place. Instead of forcing the macro to be removed, let's simply not have it defined in the first place. Change-Id: Ie6dbad9bbbd9488887e8fffd148dd67d9a31b32e Reviewed-by: Jake Petroules <[email protected]>
* moc: Add warnings when resolving and opening includes failsFriedemann Kleint2016-07-291-5/+16
| | | | | | | | | | | | Previously, only cryptic warnings: QFSFileEngine::open: No file name specified occurred. Task-number: QTBUG-55014 Change-Id: Ic99614eb58c605ed6e1b86d3d4b8f527c5b9244c Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* Make moc obey the preprocessor environment variable for include pathsThiago Macieira2016-07-201-0/+29
| | | | | | | | | | | | | | | | | | | | | | C preprocessors augment their standard list of include paths from the environment: Unix preprocessors use $C_INCLUDE_PATH (for C) and $CPLUS_INCLUDE_PATH (for C++), plus CPATH for both, whereas MSVC uses the an environment variable simply called "INCLUDE". Handling this for MSVC is particularly important because the VCVARSALL.BAT script sets the necessary #include paths in the environment for important things. Without that being parsed, moc won't find some #defines, like WINAPI_DESKTOP_FAMILY. [ChangeLog][moc] qmake and moc now cooperate to use the Visual Studio environment variables (set by the VCVARSALL.BAT script) to find system include files. A possible consequence is that moc parses application headers slightly differently, depending on #if conditions that depended on macros that previous versions had not seen #define'd. Implementers of other buildsystems are advised to pass the --compiler-flavor=msvc option to moc. Change-Id: I7e06274214d1939b0124e5b4bf169cceaef9ca46 Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* moc: get the system #defines from the compiler itselfThiago Macieira2016-07-201-1/+16
| | | | | | | | | | | | | | | | | | | | In order for moc to properly parse #ifdefs and family, we've had QMAKE_COMPILER_DEFINES as a list of pre-defined macros from the compiler. That list is woefully incomplete. Instead, let's simply ask the compiler for the list. With GCC and family, we use the -dM flag while preprocessing. With ICC on Windows, the flag gains an extra "Q" but is otherwise the same. For MSVC, it requires using some undocumented switches and parsing environment variables (I've tested MSVC 2012, 2013 and 2015). The new moc option is called --include to be similar to GCC's -include option. It does more than just parse a list of pre-defined macros and can be used to insert any sort of code that moc needs to parse prior to the main file. Change-Id: I7de033f80b0e4431b7f1ffff13fca02dbb60a0a6 Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* moc: remove _MSC_EXTENSIONS #defineThiago Macieira2016-07-021-0/+3
| | | | | | | | | | | | Because we obviously don't support Microsoft's extensions in C++. This is required because some MS headers have code that isn't proper C++, like iso646.h: #if !defined(__cplusplus) || defined(_MSC_EXTENSIONS) #define and && Change-Id: Ib57b52598e2f452985e9fffd145a3d4ec28e773d Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-031-1/+1
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/3rdparty/double-conversion/include/double-conversion/utils.h src/corelib/global/qnamespace.qdoc src/corelib/tools/qsimd_p.h tests/auto/corelib/io/qfile/tst_qfile.cpp Change-Id: I3ca1007bab5355d251c13002a18e93d81c254d34
| * Moc: use const (and const APIs) moreAnton Kudryavtsev2016-04-181-1/+1
| | | | | | | | | | | | | | | | For CoW types, prefer const methods to avoid needless detach()ing. Change-Id: Iefc33552d826aa30320e52acd2d421c9bdae127e Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Marc Mutz <[email protected]>
* | moc: Use QCommandLineParser::ParseAsLongOptions and ↵Olivier Goffart2016-04-281-0/+10
|/ | | | | | | | | | | QCommandLineOption::ShortOptionStyle So the command lines is more compatible with compilers flags. And new options like -isystem can be used. Change-Id: I7ad0997e5dab7d0425f12cde415abae6e9034a5b Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: David Faure <[email protected]>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-041-0/+2
|\ | | | | | | Change-Id: I35ca979395620e104e50b06366d0869433a4ffc2
| * moc: bail out early on missing or invalid options fileJoerg Bornemann2016-03-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | If moc is invoked with the @ argument and no options file is specified or the options file cannot be read, do not try to parse the empty arguments list. Otherwise QCommandLineParser will print an additional error message that is of no value for the user. Task-number: QTBUG-51847 Change-Id: I9aa1eb20a44097b553123be8bc6fded87473a03a Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* | moc: eradicate all Q_FOREACH loopsMarc Mutz2016-01-261-8/+15
| | | | | | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for, or, for loops over .keys() or .uniqueKeys(), with explicit iterator loops. Saves 2300b in text size on optimized GCC 5.3 Linux AMD64 builds. Change-Id: I6e1d4f5e56895dfd74aba21a3d4e913b5825645c Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* | Updated license headersJani Heikkinen2016-01-211-17/+12
|/ | | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Lars Knoll <[email protected]>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <[email protected]>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <[email protected]>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-121-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
| * Document `moc -f<...>` behavior change in Qt-5.2.0David Faure2014-02-111-1/+1
| | | | | | | | | | | | | | | | Better late than never :) Task-number: QTBUG-33749 Change-Id: I5035255e66a56754b609441f5b81ab119565a7cb Reviewed-by: Olivier Goffart <[email protected]>
* | moc: Make error message 'too many input files' more verbose.Friedemann Kleint2014-01-271-1/+1
|/ | | | | | | Make it easier to diagnose quoting errors in scripts. Change-Id: I17894a426faa5cdf50f5ace4ed422ab2bd202558 Reviewed-by: Olivier Goffart <[email protected]>
* moc: Fix parsing of complex defines defined via command lineOlivier Goffart2014-01-171-1/+2
| | | | | | | | | | | | | | | | | Since now in Qt5 the moc does full macro substitution, it needs to handle the defines passed is command argument, even if they span over multiple tokens, or if they do not have any token. Example: moc '-DCOMPLEX=QVector<int>' '-DEMPTY=' foo.h [ChangeLog][moc] Fixed passing -D of a macro defined to something more complex than a single identifier. Task-number: QTBUG-33668 Change-Id: Ie8131de215f1659a24af4778d52ee40cda19759f Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Jędrzej Nowacki <[email protected]>
* moc: Don't stumble over MSVC __declspec.Stephen Kelly2013-09-241-0/+1
| | | | | | | | | Commit 310031188c6 (Fix moc stumbling over gcc __attribute__ extensions, 2012-10-01) applied similar logic for GNU style attributes. Change-Id: I550eaefd703b4e974e6ffae7716f02074c8a8823 Reviewed-by: Olivier Goffart <[email protected]>
* moc: add -M<key=value> to ease static qml plugin linkingRichard Moe Gustavsen2013-09-131-0/+23
| | | | | | | | | | | | | | | | | | | | | | | A module plugin in qml belongs to a URI/namespace. This uri is resolved run-time by QtDeclarative by knowing the path of the qmldir that references the plugin. For static plugins this becomes a problem, since we lost the information regarding which plugin belongs to which qmldir, since a static plugin has no file path. To avoid pushing the responsibility of clarifying this onto the application developer, it is better to embed this information into the meta data of the plugins themselves. Since this information can be resolved by the build system, a new option to moc has been added: -M<key=value> that will let you add meta tags to the meta data from the command line to each class that has an IID specified. For the URI case, we can then e.g do: -Muri=QtQuick.Controls -Muri=QtQuick.Controls.Private Change-Id: I81a156660148fc94db6f3cac0473e9e1c8458c58 Reviewed-by: Olivier Goffart <[email protected]>
* Fix moc-crash when compiling QtScript on Windows.Friedemann Kleint2013-09-111-8/+7
| | | | | | | @file-arguments were not parsed correctly. Change-Id: I10dc7ebcd7c9eedb332c7c350aa06c7ac9c2e8b1 Reviewed-by: Olivier Goffart <[email protected]>
* Port moc to QCommandLineParserDavid Faure2013-09-101-218/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This required special care because of @option-file where additional args can be read from. Found again one undocumented option, --ignore-option-clashes. Usage: moc [options] [header-file] [@option-file] Qt Meta Object Compiler version 67 (Qt 5.2.0) Options: -h, --help Displays this help. -v, --version Displays version information. -o <file> Write output to file rather than stdout. -I <dir> Add dir to the include path for header files. -F <framework> Add Mac framework to the include path for header fil es. -E Preprocess only; do not generate meta object code. -D <macro[=def]> Define macro, with optional definition. -U <macro> Undefine macro. -i Do not generate an #include statement. -p <path> Path prefix for included file. -f <file> Force #include [optional <file>] (overwrite default) . -b <file> Prepend #include <file> (preserve default include). -n <which> Do not display notes (-nn) or warnings (-nw). Compat ibility option. --no-notes Do not display notes. --no-warnings Do not display warnings (implies --no-notes). --ignore-option-clashes Ignore all options that conflict with compilers, lik e -pthread conflicting with moc's -p option. Arguments: [header-file] Header file to read from, otherwise stdin. [@option-file] Read additional options from option-file. Change-Id: I0dfa8e029f95ad8084832530d701e30f315df98e Reviewed-by: Olivier Goffart <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>