aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Convert custom build command strings with multiple lines2.1Miguel Costa2017-12-122-7/+22
| | | | | | | | | | | | | When converting custom build steps to Qt/MSBuild target items, the conversion procedure will now be able to handle command strings with multiple lines. In these cases, only the sub-string with the relevant command will be considered. Custom build steps with multiple lines are potentially problematic, e.g. if empty lines are present in the command string (see associated issue for example of this problem). Task-number: QTVSADDINBUG-414 Change-Id: I93ae2f233ee35d27462b9087ada58b1134102e87 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Replace custom build steps with MSBuild targetsMiguel Costa2017-12-0116-343/+3512
| | | | | | | | | | | | Overhaul of Qt tool (moc, rcc, uic) usage in generated projects. Running the Qt tools on project files no longer relies on custom build steps but rather on Qt-specific MSBuild targets that are installed together with the VS Tools. Older projects generated with previous versions of the VS Tools can be converted to use the MSBuild targets Conversion is not mandatory as custom build steps are still supported. Change-Id: I4c01491b2c263deb2cdf2c5fcc12ecdf718eb11f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add MSBuild targets for QtMiguel Costa2017-12-0115-0/+1316
| | | | | | | | | | | | | | Added MSBuild customization files to support Qt-specific tasks like moc, rcc, uic. Instead of custom build steps that only allow a command line field, which has to be specified for each project item, MSBuild targets allow each tool to have a dedicated dialog (or "property page") with one field per tool option. Common options can be specified only once at project/configuration level and inherited by all items of the same type. Unlike custom build steps that can only run in sequence, using the Qt MSBuild targets it is possible to run the tools in parallel processes. Change-Id: Ie348bccec0402c10299096e51381a88e4a58dad2 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix lupdate not working with Qt 5.9Miguel Costa2017-10-203-209/+179
| | | | | | | | | | | | | When the command line to run lupdate was too long to specify individual source files, a temporary .pro file was created instead. The processing of the .pro file then triggered the same issue as QTVSADDINBUG-472 (qmake unable to find cl without VC vars). Removed the need for the temporary .pro file by using the '@' option of lupdate (added a call to SetVCVars() before running lupdate, just to be on the safe side). Task-number: QTVSADDINBUG-491 Change-Id: I6bce4c1c72093eceee8d1951bbbe464c072ba1a3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove warning of unreferenced variableMiguel Costa2017-10-111-1/+1
| | | | | | | Removed an unused variable declaration that was generating a warning. Change-Id: I52859561f5b99756104e942ebf3d5a25afacbef0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Redesign moc step for cpp files to allow generic macro expansionMiguel Costa2017-10-111-106/+201
| | | | | | | | | | | | | The moc step for cpp files was redesigned to allow macros like %(RelativeDir) to be used in the output path. Previous approach relied on a single .moc file acting as both source of the custom build step and as output. The new approach uses a dummy file for the custom build step definition (similar to moc_predefs.h.cbt) required to generate the .moc file. Task-number: QTVSADDINBUG-105 Change-Id: Ia202fca8a5c6df1ca0d9e64a5719726155555bbe Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix moc output filename clashesMiguel Costa2017-10-117-17/+268
| | | | | | | | | | Modified moc step to allow macros like %(RelativeDir) to be used in the output path. This enables the support of projects with moc source files with the same name in different directories. Task-number: QTVSADDINBUG-105 Change-Id: Ia34edae3d1f63f5f3af2ae52dbe1cfaef7fafb35 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix error with "embedded interop type" after update of VS 2017Miguel Costa2017-09-181-0/+1
| | | | | | | | | | | In the VS 2017 build, added a reference to: Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.dll After the update of Visual Studio to version 15.3.4, this assembly must be added as a reference, otherwise we get a few errors with: "Cannot find the interop type that matches the embedded interop type". Change-Id: If871da35eb6517b07b7cf23194fdf38dd8503bf4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix creating bad project if "flat" flag is removedMiguel Costa2017-09-141-1/+1
| | | | | | | | | | | | | | During .pro file import, RefreshRccSteps() now looks into subfilters for rcc outputs to remove instead of just the top-level filter. In the case where qmake generated a project structure with rcc outputs in the "Generated Files/debug" and "Generated Files/release" filters (which is the case with CONFIG -= flat), RefreshRccSteps() did not correctly handle these outputs as it only looked for them in the topmost "Generated Files" filter. Task-number: QTVSADDINBUG-439 Change-Id: I2b71f0a511b2dd487f01f08fbc201e5f5006f72c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix setting QTDIR after LocalDebuggerEnvironment in the .user fileMiguel Costa2017-09-131-0/+22
| | | | | | | | | | | | In VS2013/15, if the LocalDebuggerEnvironment property is already defined when setting the QTDIR property, then it will be stored in the .user file before the QTDIR property, which is an error because there is a dependency. To work around this, we first remove the property and then add it after QTDIR is set. Task-number: QTVSADDINBUG-363 Change-Id: Iddeb27e5d719c3da6623dbcee735b7f3fc4b3604 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Set vcvars before calling qmakeMiguel Costa2017-08-141-50/+115
| | | | | | | | | | Instead of calculating the path to the compiler, calls the vcvars batch file and adds the environment variables to the qmake process start information. This ensures that qmake will have all available details about the compiler. Change-Id: Ie2f82851c57677ddc8bd186a920585e591122fe5 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Update version number to 2.1.2Miguel Costa2017-08-0311-13/+21
| | | | | Change-Id: I2b425131f56c44d7a3fc172bf43b3dc11817971a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix run moc'ing at every build even if there is no file changedMiguel Costa2017-08-031-1/+1
| | | | | | | | | | | | Changed DeleteFilesFromFilter to exclude .cbt files. These files are generated by qmake when importing the .pro file and should not be deleted. DeleteFilesFromFilter deletes moc_predefs.h.cbt and this causes the moc_predefs.h file to be generated at every build. Task-number: QTVSADDINBUG-410 Change-Id: I9793751baf8eb948b647bedf04109b4df1d32aae Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix missing reference to ExtensionsExplorer.UI in VS 2017Miguel Costa2017-07-272-1/+6
| | | | | | | Corrected the reference to the ExtensionsExplorer.UI from v14 to v15. Change-Id: Ia0c1fdf6aaa1a17d42414049e2775173477bdf1f Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Fix package containing corrupted dataMiguel Costa2017-07-275-28/+39
| | | | | | | | | | | Post build modifications to the VSIX package are now configured in the project. The post build produced a package that would fail on install with the following error: System.IO.FileFormatException: File contains corrupted data. Task-number: QTVSADDINBUG-460 Change-Id: I36e8aac3dc2877b128ffe5a9cd112f6bf1605e73 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix opening pro file with Qt 5.9Miguel Costa2017-07-262-1/+84
| | | | | | | | | | | Before invoking qmake, add path of compiler to the environment. qmake requires this in order to invoke the compiler during conversion. Calculation of the compiler path extracted from vcvars.bat Task-number: QTVSADDINBUG-472 Change-Id: I148dd9aac60830357b3553c4b55faa70c9ed9642 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Fix new item with VS not generating the mocMiguel Costa2017-07-251-0/+4
| | | | | | | | | | Checks if item is of type CustomBuild before accessing custom tool information. Accessing the custom tool information before setting the item type to CustomBuild generates an exception while adding the moc. Task-number: QTVSADDINBUG-396 Change-Id: Icec885894e6c3abd78b324f98a6028c41f1a2029 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Fix reported issues against the VS2017 beta releaseKarsten Heimrich2017-03-1710-6/+48
| | | | | | | | | | | * Update Prerequisite toolset * Use the right PlatformToolset version * Disable AddFilter code causing an infinite loop * Update the checksum after patching the vsixmanifest file Task-number: QTVSADDINBUG-459 Change-Id: I9e3054734a2039b9ad5af2e9f2d275356d074d31 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add support for Visual Studio 2017Karsten Heimrich2017-03-097-3/+145
| | | | | | Task-number: QTVSADDINBUG-459 Change-Id: I91b801aa1061e72541e6a77aa9d317e238f58593 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Update to patch level release version 2.1.1Karsten Heimrich2017-03-089-12/+14
| | | | | Change-Id: Ie68f4a12decd6dc197cc556da53ca6581abeb71f Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Dump exception to the debug output pane, don't show message boxesKarsten Heimrich2017-02-061-1/+2
| | | | | Change-Id: I94ced1a8e951c865da9d63f39187f50908274622 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Do not crash if the file to adjust does not existKarsten Heimrich2017-02-061-0/+3
| | | | | | | | | | Return early if the file does not exists. In case of an exception, dump it to the debug output pane instead of showing countless message boxes. Task-number: QTVSADDINBUG-453 Change-Id: Ie97a733b72f6da5deca099bb19ba3e2a1ca54d0c Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Update version number, copyright, assembly info, READMEv2.1.0Karsten Heimrich2017-01-2722-28/+43
| | | | | Change-Id: I6d82544fb98afcba8911cb58ed21cdaad61e7681 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Remove superfluous manifest fileKarsten Heimrich2017-01-261-75/+0
| | | | | Change-Id: I8151ca09855226873618c0db9d966b8ce638ad02 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Update change logKarsten Heimrich2017-01-261-0/+11
| | | | | Change-Id: I8c70c84557a03edd1a3181a4268cbfa1a085e206 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Wait until all task finished, fixes broken repair functionKarsten Heimrich2017-01-111-9/+11
| | | | | Change-Id: I25929f46f1c0d68515107d693dedbb0d7154521a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Remove overload, use default argument insteadKarsten Heimrich2017-01-111-6/+1
| | | | | Change-Id: Id133f375ba1b1e916fde739c9e2ea06f096be0f7 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Use dedicated method the check for file typeKarsten Heimrich2017-01-111-1/+1
| | | | | Change-Id: I07876437b8750169212b264dc347ff00e4135e59 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix argument null exceptionKarsten Heimrich2017-01-111-1/+1
| | | | | Change-Id: Idbbced8788078c925ee8b230fb291ee62b92d724 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Reuse the already existing fullPath variableKarsten Heimrich2017-01-091-4/+5
| | | | | Change-Id: Ibcaa841b3daabcd7512104622775bebe256ae721 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Use of parallelism for Q_OBJECT parsing during .pro file importKarsten Heimrich2017-01-091-9/+18
| | | | | | | | | | First step to speed up the import of Qt projects from .pro files. Execute parsing for Q_OBJECT, Q_GADET macros in parallel and move it to a background task to not block the UI. This gains us close to 50% on a capable machine in combination with the former patch. Change-Id: Icb8acb1a633833dc490e94e3c9609894d30a7d4b Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Some better performance while parsing C++ filesKarsten Heimrich2017-01-093-27/+63
| | | | | | | | Load the file as a whole and perform an initial search on the file before parsing line by line, e.g. to find Q_OBJECT, Q_GADGET macro. Change-Id: Ied69749be6ce5c2e92a31da211df087f580db5d2 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Cleanup superfluous code path, merge implementationKarsten Heimrich2017-01-092-46/+32
| | | | | Change-Id: Iab67c15c3e0e597c2e8ee535e59a5668039efe7a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Cache the Qt version informationKarsten Heimrich2017-01-0911-35/+49
| | | | | | | | | | The version manager did this before, but not the actual class itself. Since this class could be instantiated on its own, we had to obtain the stored information again and again from qmake which is quite expensive. (Noticed while importing a large .pro) Change-Id: I8462b9cf76758fff89323cd78aa59cf8cc82e124 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Unify file extension checkingKarsten Heimrich2017-01-098-90/+90
| | | | | Change-Id: I1323a3fcddf0c8733f59ce210c304564587f0534 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Minor style changesKarsten Heimrich2017-01-094-4/+3
| | | | | Change-Id: I75d5bdee8aa115372eb4171cef4667cb1458e009 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Reuse TextMate language files for QML and qmake syntax highlightingKarsten Heimrich2017-01-0632-8/+1257
| | | | | | | | | | | | | | We remove our rather slow Classifier implementation and reuse the existing files from Baptist Benoist and cpp-qt.tmbundle. The aforementioned files implement QML and qmake syntax highlighting based on Visual Studio's capability to load TextMate bundles. Reference repositories: vscode-qml: https://github.com/bbenoist/vscode-qml cpp-qt.tmbundle: https://github.com/textmate/cpp-qt.tmbundle Change-Id: Ie3d0e01e1991b441c8e02e45a9fef3674844d9bf Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add Atom feed file to setup a private VSIX extension galleryKarsten Heimrich2016-12-202-0/+45
| | | | | | | | | See the Qt Visual Studio Tools Wiki on how to use the file. This makes it fairly easy to test the update mechanism or to deploy the extension in-house. Change-Id: Ia85fba35b8859d88732e0d86dcf5c929be208d8c Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix broken QML classifier implementationKarsten Heimrich2016-12-202-4/+12
| | | | | Change-Id: I581a267463ca6a41ac505e6773c0eb1f1bc153ef Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Compile fix for Visual Studio 2013Karsten Heimrich2016-12-202-3/+3
| | | | | Change-Id: I085f12b3d621486980631533daf27de21d045564 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix Using directive is not required by the codeKarsten Heimrich2016-12-071-1/+0
| | | | | Change-Id: Ieac9a2f16a70f48e4267a0b3c6308652eb7d8f9e Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix whitespace adjustmentKarsten Heimrich2016-12-075-25/+17
| | | | | | | | | Right now we changed only the files that would be opened by the editor. Better do it soon as we create the files and we know all of them. Change-Id: Id67b3643938654d1d24bd31cb0a6255d5ebc2566 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix writing the moc_*.inc fileKarsten Heimrich2016-12-021-6/+22
| | | | | | | | | MOC uses a different parser now and will not understand the old format, write it in a way MOC can handle it. Also fix splitting the include path to support path with spaces, like ".\foo bar\". Change-Id: I806fa284f76c80291adef3e65caa8ec21cbcbf82 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix wrong usage of QT_STATIC and QT_DLLKarsten Heimrich2016-12-013-1/+11
| | | | | | Task-number: QTVSADDINBUG-445 Change-Id: I285c04fef5fdde04d110546d7cc19222b9f0acd2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Force the FolderBrowserDialog to scroll to the selected pathKarsten Heimrich2016-11-221-0/+1
| | | | | Change-Id: I4ab0fc0b6c2dcd4ddd35ef749bf10db5f3e83172 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Use the ShellSettingsManager for registry reading/writingKarsten Heimrich2016-11-225-39/+33
| | | | | Change-Id: I0108194afd445bbefb4b433a39e9e92a1634a718 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Rewrite to show $(QTDIR) environment or errors immediatelyKarsten Heimrich2016-11-222-95/+47
| | | | | | | | | No need to delay the error message, remove the timer. Also show an error message if the user tries to use $(QTDIR) but we can't find it in the environment, propably a VS restart should fix it. Change-Id: Ie25b2588fd9c0d30d47ee384e3db4672ba103601 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix: Environment variables are not saved/restored after VS restartKarsten Heimrich2016-11-182-9/+28
| | | | | | Task-number: QTVSADDINBUG-407 Change-Id: I6a93b2eff62abb6c7f16b5eb8147a9541d0fdd3d Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge remote-tracking branch 'origin/2.0' into devAlex Blasche2016-11-1612-47/+197
|\ | | | | | | Change-Id: Ibf35fe4e76389edb8e2a4cd150de6a5512d38107
| * Implement conditional configuration includes2.0Karsten Heimrich2016-11-1410-43/+195
| | | | | | | | | | | | | | | | | | | | | | Since the VS Gallery expects each VSIX having a different GUID, we need to have a separate .vsixmanifest file per VS version. Put the configuration stuff in a dedicated directory, split the AfterBuild from the actual .csproj and have a .targets file and .vsixmanifest per Visual Studio version. Update the README file. Change-Id: I32ffee1c40345812b7f2232987e4e7a5b20c3da6 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>