aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Disable fast initialization by defaultv2.2.22.2Miguel Costa2018-09-171-2/+8
| | | | | | | | | | | | Will now only run the package initialization in a background thread if there is an environment variable %QTVS_INIT% set with value "fast". Otherwise, initialization runs in the main thread, as before. This is due to reports that initialization is unstable in version 2.2.2 and may cause the extension not to start-up properly or at all. Task-number: QTVSADDINBUG-571 Change-Id: I9ec76ac2fa41c1c2d60375f8462bb057269dbd99 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix potential deadlock in initializationMiguel Costa2018-09-171-51/+61
| | | | | | | | | | In the extension initialization, ensured setting the event that signals completion of initialization by moving it to a 'finally' block. Otherwise, in case of exception during initialization, a deadlock might occur that could permanently freeze the main thread of Visual Studio. Change-Id: I0e11e129249633f95ff4137839c6bb60a718e274 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Update version number to 2.2.2 (VS 2015/2013)Miguel Costa2018-09-112-2/+2
| | | | | | | | | | Updated the version number in the manifest files for VS 2015 and 2013. By mistake, only the manifest for VS 2017 was updated in the previous patch. Task-number: QTVSADDINBUG-570 Change-Id: I250a6a4254dc8f630cc317431aaaf145a5a2af06 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix tracker log entries with many dependenciesMiguel Costa2018-09-111-6/+18
| | | | | | | | | Fixed issues in the recording of file tracker log entries that prevented the correct management of the incremental build if a file had more than one additional dependency. Change-Id: Id8cb754be13ef424ed6a478fe4fbb2c5a9dd9504 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix Qt/MSBuild files not updatingMiguel Costa2018-09-111-16/+17
| | | | | | | | | | | | The patch that fixed QTVSADDINBUG-569 introduced an issue that prevents the Qt/MSBuild files from being updated in their default location %LOCALAPPDATA%\QtMsBuild when the %QTMSBUILD% environment variable is set. This patch fixes this by always updating the Qt/MSBuild files in their default location, event if %QTMSBUILD% points to another location. Task-number: QTVSADDINBUG-569 Change-Id: I86e88e6cc10d688df658c3cd6f6b060e6d419dd5 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Update version number to 2.2.2Miguel Costa2018-09-1022-35/+48
| | | | | Change-Id: I14fdd5cd8714b295c499cc55ff30c9f86bf04901 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Do not overwrite %QTMSBUILD% environment variable at startupMiguel Costa2018-09-101-19/+22
| | | | | | | | | | | The initialization of the Qt VS Tools now checks if the %QTMSBUILD% environment variable is already defined before setting it. Previously, this variable was always overwritten at startup, making it unusable as a means to configure an alternative location to the Qt/MSBuild files. Task-number: QTVSADDINBUG-569 Change-Id: I1a5bcfad702a5aa334ee844487eb94ae049e2881 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Use full path of dependencies when writing tracker log fileMiguel Costa2018-09-101-3/+3
| | | | | | | | | | | | | | Recording file access log entries into the tracker files (*.tlog) now uses the full path of additional dependency files. Previously, these dependencies where added to the log with a path relative to the project, which meant that the VS file tracker was unable to find them and would not propertly manage incremental build, i.e. if a Qt item add any additional dependencies, then the build would never be considered up-to-date, and MSBuild would always be invoked, even if no changes were made to any of the project files. Change-Id: I614d9cb33e2e017f9e0efde760d7ed5ad672848d Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Revert QML syntax highlightingMiguel Costa2018-09-0938-3427/+1638
| | | | | | | | | | | | | | | | | | | | | | To allow the release of a maintenance version containing several bug fixes but without any major new features, the changes corresponding to the QML syntax highlighting have been reverted in the 2.2 branch. The following changes were reverted: Add Qt Declarative integration 39ebe357f1c7f5fb692024e19c25f648bed044bd Add configurable QML syntax highlighting c11c7e04c5627f90e8bf31bb180d5b4d2371ceba Disable previous QML syntax highlighting 4c9eb3cd819a158e2387815060a9880401e1962f Optimize QML syntax highlighting for larger files dc0bd5767f1868f47cfca61ba44a3be130ff917a Change-Id: I91702e2f91f508dd3ceb2c654933e41ebf953f35 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Run package initialization in backgroundMiguel Costa2018-08-234-66/+99
| | | | | | | | | Moved the initialization of the extension package to a background task to avoid Visual Studio warning about startup performance. Task-number: QTVSADDINBUG-551 Change-Id: I3ca78c594db21bb397c4e44ff621d9dbf759678a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix command line parser failing when newline is presentMiguel Costa2018-08-231-3/+4
| | | | | | | | | | | When converting from custom build commands to Qt/MSBuild, will now correctly handle the presence of a newline in a command. Previously, the presence of a newline would cause the parser to ignore the last token of the command line, and the conversion would then fail. Task-number: QTVSADDINBUG-566 Change-Id: I3ed407b848e25754004c239bdbb9e605fbffe7d7 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Handle duplicate items when converting projectMiguel Costa2018-08-231-11/+13
| | | | | | | | | | | | Conversion to Qt/MSBuild will now allow duplicate items in the source project. Visual Studio allows duplicates in the project XML files, though only one entry is displayed in the project explorer. Converting a project with duplicate entries caused an "item with same key" error, and the conversion would then fail. Task-number: QTVSADDINBUG-563 Change-Id: I72976d00ca541e7ff1aa00c0bc833fff33f47734 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Optimize QML syntax highlighting for larger filesMiguel Costa2018-08-136-257/+768
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The performance of the QML syntax highlighting was noticeably poor when handling larger files (> 3000 lines); it took some time for the highlighting to be displayed after the file had been opened, and also, when scrolling down, the text editor would freeze for a moment. The optimization is mostly encapsulated in the newly created QmlAsyncClassifier class and auxiliary types. The approach was twofold: 1. Classifiers that need to parse the same version of a QML file will now use a shared QML parser instance; only the first access will trigger the parsing and will store the result of classification in a shared list of tags. Subsequent accesses by other classifier objects will just read the shared data. Previously, each classifier had its own instance of the QML parser. Because VS will create several classifier objects for the same file, this meant that the QML parser would be needlessly invoked several times for the exact same content. This is what caused the delay in displaying the syntax highlighting. 2. Access to the classification results is now achieved through a binary search on the list of tags. Previously, this list was accessed linearly, which caused a delay when the classifiers were queried by VS (e.g. when scrolling down in the text editor). Change-Id: I83544a9b03f964ff11e9ce3cbbde54304bb7ca03 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add missing items to list of Qt modulesMiguel Costa2018-07-172-0/+52
| | | | | | | | | Added new entries to the list of modules that is used to configure Qt projects. The modules had not been included in the list by mistake. Task-number: QTVSADDINBUG-558 Change-Id: I52279ad4706bfbef03bd04f2f06a9f4ba0dd6904 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Disable previous QML syntax highlightingMiguel Costa2018-06-2021-1726/+8
| | | | | | | | | | Disabled the QML syntax highlighting previously in use. This is now superseded by the new syntax highlighting integrated with the Qt Declarative parser. Task-number: QTVSADDINBUG-501 Change-Id: I5f2567f0d1db4038df73e15219ea7363ab65da99 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add configurable QML syntax highlightingMiguel Costa2018-06-1912-0/+1884
| | | | | | | | | | | | | Integrated the parser in Qt Declarative with the Visual Studio editor extensibility classes for the purpose of implementing a QML syntax highlighting that is configurable, and has better performance, accuracy and usability than previous approaches. In particular, this fixes an issue reported in VS 2015 and VS 2017, where it is not possible to configure the formatting of the QML syntax highlighting. Task-number: QTVSADDINBUG-501 Change-Id: I8ed61d7a4dc0cd9eeeebc19a36d02f49b21957ac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add Qt Declarative integrationMiguel Costa2018-06-198-0/+1112
| | | | | | | | | | | | | This patch adds a new C++ project to the Qt VS Tools repository. The output is a DLL intended to be called from C# code in the Qt VS Tools extension. The purpose of this DLL is to provide access to services in the Qt Declarative module. Initially, this will focus on integrating the QML parser in the syntax highlighting feature provided by the extension. Further integration with Qt Declarative may be added in future patches. Task-number: QTVSADDINBUG-501 Change-Id: If04efaca090c20766687b80e2875ad7d91e177fd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Write Tlog entries for moc, rcc and uicMiguel Costa2018-06-191-6/+69
| | | | | | | | | | | | | | | Added moc, rcc and uic entries to the file tracker log (Tlog) to ensure that the up-to-date check is correct, cf. this reply from Microsoft: https://developercommunity.visualstudio.com/solutions/184689/view.html Also, removed the DisableFastUpToDateCheck property that was set to "true" by default. This property was added to avoid inaccuracies in the fast up-to-date check. These inaccuracies are resolved by the presence of the new Tlog entries. Task-number: QTVSADDINBUG-544 Change-Id: I21e70231d12a4191cca9ea6ad50aa5fbdd12711c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add missing Visual Studio SDK referenceMiguel Costa2018-06-012-0/+2
| | | | | | | | A reference to Microsoft.VisualStudio.Utilities for Visual Studio 2015 and 2017 was missing. Change-Id: Ic516ada750645318049811815be3cc46a8bb8aba Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update version number to 2.2.1v2.2.1Miguel Costa2018-04-1728-42/+68
| | | | | Change-Id: Ie3981b2c9aa4941d3485cca346368b8c86d09520 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix typo in moc property page descriptionMiguel Costa2018-04-171-1/+1
| | | | | | | | The description of the -b option of moc now indicates that it preserves (rather than overwrites) the default include. Change-Id: Iea9a8e3caeb4e0863b2b7abcda1c84f1bfa7ed12 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Show wait dialog during RefreshMocStepsMiguel Costa2018-04-172-1/+21
| | | | | | | | | | Show dialog with progress bar during the processing of RefreshMocSteps. This function updates the definitions of every moc step (from the current C++ compiler settings) and may take longer with large projects. Task-number: QTVSADDINBUG-537 Change-Id: I1d2a6b0d8df287aa4c677db063058361a2a0b655 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add new WaitDialog classMiguel Costa2018-04-173-18/+192
| | | | | | | | | Added a new utility class (WaitDialog) that provides a dialog with a progress bar, intended to give feedback to the user during operations that take longer and may put Visual Studio in a "not responding" mode. Change-Id: I4e69a55906c73679f94d80930e9da5fcb0da1541 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix null reference in PromptChangeQtVersionMiguel Costa2018-04-171-0/+3
| | | | | | | | | | When changing Qt versions, if the previously configured version is no longer installed, PromptChangeQtVersion would throw a null reference exception (calling GetVersionInfo on an non-existing Qt version returns null). Change-Id: If9782cdc1b0fbd4b994b3790eb08d3839699c577 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix incorrect escaping of paths in command line stringsMiguel Costa2018-04-171-3/+17
| | | | | | | | | | | | | | | When generating command line strings to invoke Qt tools, in options specifying file system paths, if the option ends with a backslash, it is now escaped properly by appending a further '\' (cf. the documentation on the CommandLineToArgvW() Windows API function https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391). Previously, this unescaped backslash would cause problems when the option was enclosed in quotes (the terminating \" would be interpreted as an escaped literal quotation mark). Task-number: QTVSADDINBUG-538 Change-Id: I481d7f83226fb1e7c3352acc6d9f43771c7e788a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Optimize the copy of properties from C++ compiler ruleMiguel Costa2018-04-122-1/+35
| | | | | | | | | | | | | If using the Qt/MSBuild rules, copying the include path and the preprocessor definitions from the C++ compiler rule to the QtMoc rule will only change project level property storage. Previously, when using custom build steps, the property storage of every moc file needed to be modified, which caused Visual Studio to stop responding, up to several minutes for larger projects. Task-number: QTVSADDINBUG-537 Change-Id: Ie6e631d922c562d3cf2eb59b447dc95a7ef1aef9 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix problems with incremental buildMiguel Costa2018-04-121-15/+171
| | | | | | | | | | | | | | | Added a log file with the options used to invoke moc, rcc and uic on each of the Qt source files. This information is used to determine which files need to be re-processed in case one or more options were changed. Previously, there was no mechanism to accurately verify this. The modified date of the project file was checked against that of the output files and, if the project was more recent, that would trigger a re-build of all moc, rcc and uic steps, even if the modifications were not related to the Qt tools. Task-number: QTVSADDINBUG-535 Change-Id: I0a856b48efeda9e8af405d458f58eb28bb8caf4f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Move global properties outside of target QtPrepareMiguel Costa2018-04-121-9/+5
| | | | | | | | | | | Global properties used by several Qt/MSBuild targets are now defined outside the scope of a particular target. Previously, these properties were defined inside the QtPrepare target, which made them dependent on its execution. A subsequent patch will require that global properties do not depend on the execution of this target. Change-Id: Ib184d3fe589246506e43514dbb53d3f832750c83 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add macro expansion support to command line parserMiguel Costa2018-04-124-102/+205
| | | | | | | | | | | | Added support for macro expansion while parsing command line strings of Qt tools. This is needed to process '@' options containing macros. In this case, to determine the path to the options file, the macros must first be expanded, otherwise parsing will fail and cause errors in calling code, e.g. in the conversion from custom build to Qt/MSBuild. Task-number: QTVSADDINBUG-533 Change-Id: Ib48813a2452c918f2989b5e27f903c7ad2fb8a2a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add error handling to .pro import/conversionMiguel Costa2018-04-122-6/+18
| | | | | | | | | Show a message when errors occur during the conversion to Qt/MSBuild of projects imported from .pro files. Task-number: QTVSADDINBUG-533 Change-Id: I1784ed021046192812a83eab77226ae12a54c2f6 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Rollback changes to project XML on errorsMiguel Costa2018-04-111-1/+40
| | | | | | | | | | | | Public methods of the MsBuildProject class will only have side-effects in case of success. Previously this was not the case, which caused problems, e.g. in the import of .pro files: if an error occurred during conversion to Qt/MSBuild, the project file was saved with an incorrect format and the project could not be loaded. Task-number: QTVSADDINBUG-533 Change-Id: I9e7ca279b4c53d08c07ee54240f2dc246a661f17 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix error in conversion to Qt/MSBuildMiguel Costa2018-04-051-1/+1
| | | | | | | | | | | | | | When removing generated files from the project, only try to remove files that haven't yet been removed (i.e. parent XML node is not null). In the conversion to Qt/MSBuild, generated files are removed per configuration. Given that the same file could be referenced in several configurations (e.g. by defining MOC_DIR in the .pro file instead of defaulting to debug/moc_foo.cpp and release/moc_foo.cpp), an error would then occur ("Parent is missing") when trying to remove a file more than once. Task-number: QTVSADDINBUG-533 Change-Id: Ifa64ce4f232c136760f425f1a604b39ef2ea0110 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix incorrect definitions in project fileMiguel Costa2018-03-296-56/+76
| | | | | | | | | | | | | | | 1. Modified the generation of project files (.vcxproj) in order to place ItemDefinitionGroup elements in the correct location. Previously, these elements were placed earlier in the file, which caused problems with inheritance of properties defined in property sheets. 2. When creating new Qt projects, ItemDefinitionGroup's are now defined per configuration. Previously, these elements were defined only once, which caused properties to always have the same value in all configurations. Task-number: QTVSADDINBUG-534 Change-Id: Id85b2c942c299af1969923346022767aba3d9ac8 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Don't call SetQtEnvironment during debug sessionMiguel Costa2018-03-281-0/+3
| | | | | | | | | | | | | During the event handler for the debug start command, only call SetQtEnvironment when the debug session is about to start. This event is fired every time the debug start command (F5) is executed, which includes the case of resuming execution after hitting a breakpoint. In this case, calling SetQtEnvironment is not needed and may cause noticeable delays when debugging large projects. Task-number: QTVSADDINBUG-532 Change-Id: I6a4725631185c3166907429222cc5a3d619c4cc2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Disable "fast up-to-date check" by defaultMiguel Costa2018-03-281-0/+3
| | | | | | | | | | | | | | | | | | | Disable by default the fast up-to-date check that is performed by Visual Studio to decide whether or not to call MSBuild. Setting the property DisableFastUpToDateCheck ensures an "accurate" build, fully based on MSBuild semantics: "Whether Visual Studio should do its own faster up-to-date check before Building, rather than invoke MSBuild to do a possibly more accurate one. You would set this to [true] if you have a heavily customized build process and builds in Visual Studio are not occurring when they should." (https://goo.gl/4riNrR) In recent versions of VS 2017, the "fast up-to-date check" fails in the case of the Qt/MSBuild targets, leading to projects not being built when a .uic or .qrc file is changed. Task-number: QTVSADDINBUG-531 Change-Id: Ib847fbdad881d747afcbc963144100a60825ae91 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix conversion of .moc and .cbt filesMiguel Costa2018-03-281-1/+3
| | | | | | | | | Fixed a bug in the conversion to Qt/MSBuild, where .moc and .cbt files where not processed and remained as custom build steps in the converted project. Change-Id: I6b933c1dd6d5e7761ba036ce4a302aad7f028798 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Improve performance of conversion to Qt/MSBuildMiguel Costa2018-03-283-39/+100
| | | | | | | | | | | | | | | | Modified the conversion from custom build steps to Qt/MSBuild such that larger projects can be converted faster. The optimization focused on the code that removes generated items from the project: instead of looking at every item in the project, only .cpp files will now be checked if they are generated sources and should therefore be excluded from the project. To further speed up this process, added an index on the path of .cpp files. Additionally, to provide UI feedback during the conversion procedure, a progress dialog is now displayed when converting whole solutions. Task-number: QTVSADDINBUG-515 Change-Id: Ib9326554bcf99dbff8b6dd0c65d1a44e18ab68b1 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix delay when starting to build large solutionMiguel Costa2018-03-232-11/+14
| | | | | | | | | | | When a project build is started, setting up the Qt environment no longer defines the LocalDebuggerEnvironment property. This property is not relevant for building the project and its definition was causing a noticeable delay in solutions with many projects and configurations. Task-number: QTVSADDINBUG-520 Change-Id: Id798e564ca2cc97363f2f1576baa9269b7fb8b25 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix bugs with .cpp custom build stepMiguel Costa2018-03-231-10/+12
| | | | | | | | | | | | | | | | | For projects that still use custom build steps, fixed a few bugs in the moc step configuration for .cpp files containing the Q_OBJECT macro: 1. The custom build property page did not have an output specified, which meant the moc step would never run; 2. With older projects that have custom build steps on .moc files, after saving the .cpp, there would be two custom build steps for the same .cpp file; 3. The C++ macro definitions and include paths used in the moc command were being extracted from the project property page instead of the .cpp file properties, which could cause problems if the macros and includes were defined individually per .cpp file. Change-Id: I6c7eef22bf54b6a192ea0d229521b372cb31cc03 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix delay saving .cpp fileMiguel Costa2018-03-232-52/+33
| | | | | | | | | | | | | | For projects that still use custom build steps, optimized the procedure that checks if .cpp files have a moc step associated. This now relies only on the presence of a .cbt file, which is much faster than the previous method of going through every file in the project, times every configuration, trying to find the .cpp as source for a moc command. This method was causing noticeable delays when saving any .cpp file in larger projects created with older versions of the Qt VS Tools. Task-number: QTVSADDINBUG-509 Change-Id: I6c0543ddb15e444c8c91838c76c8f98fadff0f93 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Get target architecture from qconfig.pri (QT_ARCH)Miguel Costa2018-03-232-83/+45
| | | | | | | | | | | Enhanced the parser of qconfig.pri to be able to access the value of QT_ARCH, including the case of cross-compilation (where this variable is defined inside a conditional block). The previous method of parsing the Qt5Core.dll PE record does not work with a static build of Qt. Task-number: QTVSADDINBUG-523 Change-Id: Ic12e35c520c8af90ae7a44f8b7dd191cbbd7c408 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Disable dynamic C++ source if already includedMiguel Costa2018-03-231-2/+16
| | | | | | | | | | | | When converting from custom build to Qt/MSBuild, if a moc header does not have a corresponding generated file, disable the dynamic C++ source for that moc header. This is needed for the case when the moc output is #include'd in the associated source file instead of being compiled on its own. Task-number: QTVSADDINBUG-530 Change-Id: Iae136ff6a14c867ed3250aa255b0681b77bcc29e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Don't copy properties from moc to C++ dynamic sourceMiguel Costa2018-03-231-10/+2
| | | | | | | | | | | | When adding dynamic C++ sources, generated by moc, to the build process, don't copy preprocessor macros and include paths from the moc property page to the dynamic source. These properties will now be inherited from the C++ property page at project level. This is more consistent with the previous behavior using custom build and generated files. Task-number: QTVSADDINBUG-522 Change-Id: If6f48f2886dd21e2026467a767a3aa66a8e3ab00 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use VS macros when converting to Qt/MSBuildMiguel Costa2018-03-231-12/+20
| | | | | | | | | | | | Modified the conversion of custom build steps to Qt/MSBuild in order to use the macros %(Filename)%(Extension), $(Configuration) and $(Platform) instead of specific values. This ensures that the values of properties defined at project level are generic and can be applied to any file that is added later. Task-number: QTVSADDINBUG-512 Change-Id: I44f8d6f9be14566dc1708392e370f1455250e3b6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix command line parser not working with '@' optionMiguel Costa2018-03-234-30/+96
| | | | | | | | | | | | | Command line parser for moc now takes into account '@' options. Previously '@' options were not considered, which led to errors, e.g. when converting .pro files with long INCLUDEPATH definitions. The expansion of the '@' option is encapsulated in the command line parser, i.e. the calling code will see the expanded command line, with the '@' option replaced by the contents of the option file. Task-number: QTVSADDINBUG-510 Change-Id: If4a18eea7802d452c0d73cd01c09d1d4809ef319 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Handle command line strings longer than 8191 charsMiguel Costa2018-03-231-142/+224
| | | | | | | | | | | Modified MSBuild targets to allow an argument string with more than 8191 when calling moc, rcc and uic. The built-in argument string generator is designed to work with cmd.exe, which limits the maximum length of the arguments string. Since we are creating the processes via .NET framework instead of invoking cmd.exe, this limitation does not apply. Change-Id: Idc02f7a4339df828c760318bbe45ecb1565c7ccb Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix usage of $(IntDir) in the definition of QtWorkFilePathMiguel Costa2018-03-091-1/+1
| | | | | | | | | | | | | | Changed the definition of the QtWorkFilePath property, taking into account the possibility that $(IntDir) is an absolute path. The property QtWorkFilePath points to the work file used by the Qt/MSBuild targets (e.g. to collect the list of moc/rcc/uic tasks to run in parallel). The previous definition generated build errors if $(IntDir) was defined as an absolute path. Task-number: QTVSADDINBUG-511 Change-Id: Ib8aa863ccc01498dd0842d3ab580330d35162ff6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix removing quotes when converting custom build stepsMiguel Costa2018-03-092-3/+7
| | | | | | | | | | | | Added support for escaped quotes when parsing the command line of custom build steps. This was missing and caused problems, e.g. when a macro in the form ABC="xyz" was defined. Also adjusted the expansion of the moc macro definition property into the corresponding argument as it was not compatible with quoted values in macro definitions. Task-number: QTVSADDINBUG-514 Change-Id: Iafa487399def32828e7026d533672a0ce2496a65 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix not using Qt installation if built with -qtlibinfixMiguel Costa2018-03-094-19/+48
| | | | | | | | | | | | Checks if a Qt installation was built with -qtlibinfix and, if so, uses the infix to obtain the correct file names of DLL's and library files. Previously, the infix was not taken into account, which meant that the additional libraries information was incorrectly generated and, in v2.2.0, Qt versions built with -qtlibinfix were not usable. Task-number: QTVSADDINBUG-506 Change-Id: I9540bb8e43d8bf97ac303d212f90e8349b9532d7 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Docs: Remove dependency to Qt's macros.qdocconfTopi Reinio2018-02-282-1/+5
| | | | | | | | | | | | | | | The macros.qdocconf from Qt's global documentation config includes a macro that uses the value of QT_VERSION, which is not defined for Qt VS Tools manual. The documentation build therefore fails with 'error: Environment variable 'QT_VERSION' undefined'. To work around this, load the macros we use from a local qdocconf file. Change-Id: Iaa045bb3523e13a962d39e04dd41497e14f63bfe Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>