| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
* Renamed QtProjectLib to QtVSTools.Core
* Cleaned-up/renamed solution folders
* Moved qmakefilereader, qrceditor, vsqml to Tools solution folders
Task-number: QTVSADDINBUG-735
Change-Id: I246a7f555a1171c5ab00f6d8efc0ff01228ea693
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTVSADDINBUG-735
Change-Id: If638eea93a186cf95410f57c92e375b3e39cafbd
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Modified text template code to allow integration with build targets
(i.e. process text templates during build) and also allow processing
from outside of the VS IDE (i.e. if building the VS Tools solution from
the command line).
Task-number: QTVSADDINBUG-735
Change-Id: I115575cfba7bf3899e6d01a256b640631402c4dc
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Will now print on the output window error and information messages
related to the execution of qmake. Previously, in some circumstances,
messages were not shown and qmake would fail silently in case of error.
Task-number: QTVSADDINBUG-825
Change-Id: I8b779463f495285583cdf43d070b17bec20ecaa8
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
When retrieving information about a Qt version, will now only call qmake
once to obtain all persistent properties. Previously, qmake was called
three times to obtain different properties individually.
Change-Id: Iee8da03eb7e86174cba74a25e3d60371f6fd650e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Introduces additional error checking / reporting to the registration of
Qt versions. Specifically, error conditions associated to Windows
registry operations are now logged more explicitly. A user alert message
is now also shown when the version registration fails.
Change-Id: Ib1d0180ac1126e4060406e5d0449ea16d9504463
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
Fixed a problem that prevented starting a QML debug session if a
non-Windows configuration was present.
Change-Id: Iebc49c3a32509c2ccd99fe7a826427f782c30df4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using the Qt Options dialog to register a Qt installation located in a
Linux build host is now possible. The registered version can then be
selected in the project creation wizards or in the Qt build settings
property page.
When registering a Linux-based Qt installation, the access mode -- SSH
or WSL -- must be specified, as well as the path to the installation
directory. Optionally, the path to the C++ compiler can also be
specified (default is g++).
Task-number: QTVSADDINBUG-739
Change-Id: Ib610ddd8d8be135201ea1b13cf59943c2567d62a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When creating new Qt projects, it will now be possible to select Linux
as the platform toolset. This will enable cross-compilation of the new
project.
Task-number: QTVSADDINBUG-739
Change-Id: I4ea7820e470cede1995f083e068ca4d20c9024ca
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When adding a .cpp file containing the Q_OBJECT macro, the default
value of "Dynamic C++ Source" in the moc property page is kept
unchanged as "output". This causes the .cpp file to be incorrectly
excluded from the build, and is inconsistent with the behavior when
importing qmake projects.
Task-number: QTVSADDINBUG-792
Change-Id: I42a8dd27ca7e73f8c568e7fa4c4b1d7bc6b452d3
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Fixed a problem where OBJECTS_DIR, mapped to $(IntDir) by qmake, would
then be overwritten with default value "$(Platform)\$(Configuration)\"
when importing a .pro file into VS.
Task-number: QTVSADDINBUG-785
Change-Id: I10958984906bb88ae360ea671e7e5e9aadfc57ba
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces project format version 3.3, which fixes issues
related to modified values of VC properties (e.g. $(IntDir)) being
ignored when evaluating Qt build settings.
MSBuild evaluates properties by order of definition; dependencies are
resolved by using the latest evaluation of referred properties. As such,
any subsequent changes to the value of dependencies will not be
reflected in previously evaluated properties.
Redefinitions of VC properties are stored in uncategorized property
groups (i.e. <PropertyGroup> elements without a Label attrib) inside the
MSBuild project file; if no available group is found, Visual Studio will
create a new one. The incorrect evaluation of Qt properties happens when
new property groups are created after the definition of Qt properties,
such that the evaluation of Qt properties will be using outdated values
of VC properties.
Project format version 3.3 addresses this issue by adding property
groups for VC property storage in a correct location, with respect to
Qt build settings definitions.
Task-number: QTVSADDINBUG-787
Change-Id: I6012c65d0bfdad25c15bbd14695493c349ae1cb4
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
Fixed an issue where the lupdate and lrelease options in the Qt Settings
property page were not taken into consideration.
Task-number: QTVSADDINBUG-749
Change-Id: Idcf6ed62b6d29bb0d7c1128e572bcab45d95bb65
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When calling qmake, the input and output paths are now given as relative
to the working directory. This allows calling qmake with a current path
containing non-ASCII characters.
Task-number: QTVSADDINBUG-781
Change-Id: I9ed05867fa7a5ac8d644433e061266bc367ee201
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The version of the MSBuild assemblies used by the Qt VS Tools is now
explicitly given. This will avoid warnings about assembly resolution
conflicts between the MSBuild assemblies inside of the .NET Framework
and the ones that ship with Visual Studio (the latter is the one now
explicitly selected).
Change-Id: I3a03a57bd9efd9e3731d76731c03707a9994b04f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I82219dfca287736a682cf6957d2dddb0841c5d05
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
When building the extension in Visual Studio 2015, the C# compiler will
now accept C# 7.0 code. The vstools project uses some features of this
version of the language (e.g. type testing with pattern matching).
Change-Id: I51df81773f6b25144ed3a462117453eeebf523b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Fixed a bug where the .pro import would not replace paths to the Qt
installation with $(QTDIR) if no Qt tools were invoked.
Task-number: QTVSADDINBUG-771
Change-Id: Icf86d4412a851ae06d2843cfcd16ac0ff4bb2cdc
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Fixed a problem where selecting an ad-hoc installation of Qt in the
new-project wizard would not work, showing a null-ref error. This
prevented the use of customized installations of Qt, such as vcpkg.
Task-number: QTVSADDINBUG-545
Change-Id: Id6066ccca02cb2ea88c0524bc941335733b0ab80
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The path to the qmake.conf in a Qt installation will now be calculated
using only the information obtained from qmake properties. Previously,
this calculation assumed a path relative to QTDIR, which might not be
correct in case of a customized installation (e.g. vcpkg).
Change-Id: I37212a8d412fb42ba6ecfb8b97a5277dbfc92dc1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
The QMakeQuery class can now be used to query all properties in a single
run of qmake. Previously, properties would be queried individually in
separate calls to qmake.
Change-Id: Ic4c7584ebcf1e873b3f754202962c69d15145d62
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QMake class, which encapsulates the logic of executing qmake when
needed (e.g. for generating VS projects or querying qmake properties),
has been refactored/rewritten. The goal of this change was to have more
readable and extensible code, and also to remove the use of concurrent
threads to handle data from the stdout and stderr streams of the qmake
process. This multi-threaded approach resulted in qmake error messages
being shown out-of-sync with the rest of the process output.
Task-number: QTVSADDINBUG-648
Change-Id: I29fa0cdb9d140c365ba07852cfa285762d35c0ec
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added a new class that contains features common to all new-project
templates. Specific wizards will inherit from this class, instead of
directly implementing the IWizard interface. Most of the MSBuild XML
generation, which is common to all types of project, will now be located
in this base class, and can then be customized as needed in overrides
of the specific wizard classes.
Task-number: QTVSADDINBUG-589
Task-number: QTVSADDINBUG-737
Change-Id: Ib98d02d7358b589f9174aa74e02c9fdd0dcee668
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
When querying qmake for information on a Qt build, generate a dummy
.vcxproj to retrieve VC build settings required for project template
expansion (e.g. WindowsTargetPlatformVersion, PlatformToolset, etc.)
Change-Id: Iaf7eb5bea4622486fd91dc7fa5d0c6d181438aa7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Added a constructor overload to the QtVSException to allow passing an
underlying "inner" exception to the base Exception constructor. This
is useful e.g. in case of re-throwing with a different type, to keep
track of the original exception.
Change-Id: I757d2f9fa074975961f5311fdca75726ecaf82cf
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added to EnumExt a helper function that returns a list of all values of
an enum, with each value converted (using Cast<T>()) to a given type.
Example:
EnumExt.GetValues<string>(typeof(ProjectTargets))
Change-Id: I51a7ad1b4ddb7837892ca9c87470e5d15c80ee35
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enums in C# allow a compiler-verified way of maintaining lists of
possible values. Conversion of enums to other types is limited to the
underlying integer value of each enum value, and to the string
representation of the enum value name. For an alternative, customizable
conversion (e.g. to a string representation other than the value name),
it is possible to associate an attribute to an enum value, containing
the corresponding target type value/instance:
enum Foobar {
Foo,
[EnumExt.String("Bahr")] Bar
}
Converting an enum value will output the value in the associated
attribute, or a default conversion, if an attribute is not present.
Foobar.Foo.Cast<string>() --> "Foo"
Foobar.Bar.Cast<string>() --> "Bahr"
This extended enum conversion feature is used in upcoming patches.
Change-Id: Ifdd63c8bbb55f812772fdcbe146b7b01b16c57cc
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Information on registered Qt versions is loaded by means of querying
data from qmake. To avoid an inefficient initialization, the Qt version
information is loaded lazily, on an as-needed basis. This was already
implemented, by means of a cache in the QtVersionManager. However, it
had no effect, given that, at startup, the information of all Qt
versions is checked for validity, thereby greedily loading all version
infos. This is now fixed in the current patch: (1) when checking the
validity of Qt versions, only the presence of qmake.exe is actually
verified; (2) when selecting the latest version (as a default version,
if none is provided), will use the version information in qconfig.pri,
instead of querying qmake.
Change-Id: Ie270816250e775f7bdeb7cad9a290f07409fbc03
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
When importing a .pro file, ensure unused include/lib path entries are
discarded.
Change-Id: Ibae8a502bdadedf5f311c79b3be4507faa3c8275
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
When importing qmake projects, if a *-private module name is specified,
this will now be reflected in the value of the "Qt Modules" property of
the resulting MSVC project. Previously, private module refs were ignored
when importing .pro files; only the "public" modules were considered.
Task-number: QTVSADDINBUG-704
Change-Id: I5a859c02852c18baa67344fdbc390089371f25e4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the import procedure of qmake projects, when transforming custom
build command lines to use VS macros instead of fixed values, ensure
that parts of filenames are not replaced with $(Configuration) or any
other macro. This is achieved by transforming file name references (e.g.
ui_foo.h --> ui_%(Filename).h ) before replacing configuration and
platform names.
Task-number: QTVSADDINBUG-732
Change-Id: Ic6a56cae8d240b58bfc45da7de7b3479631249a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Will now set a randomly generated GUID when creating Qt projects.
Previsouly, this was hard-coded.
Task-number: QTVSADDINBUG-560
Change-Id: Ifd8cb50433702fbe9d7ae7a0a68d5e0922fa0845
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed a problem where the wrong project keyword tag was overwritten with
the Qt VS project format version, when more than one keyword tag was
present in the original project. Depending on the order of the tags,
the resulting project would contain two keyword tags with different
project format versions.
Task-number: QTVSADDINBUG-702
Change-Id: I343e85a17b9f14971ca414fc57542243021549e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Fixed an error that would cause project conversion / format update to
fail when the linker dependencies property (<AdditionalDependencies>)
was in the project file but had an empty value (i.e. whitespace).
Task-number: QTVSADDINBUG-702
Change-Id: I9f5e381caf3f7b4a8e43252bde466795ef7c26a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updated the format of Qt projects to better match the requirements for
Visual Studio C++ projects (*) that enable integrating with the IDE, in
particular, that allow external property sheets to be referenced.
(*) https://docs.microsoft.com/en-us/cpp/build/reference/vcxproj-file-structure#per-configuration-propertygroup-elements
Task-number: QTVSADDINBUG-685
Change-Id: I6ef0ef9d4fb25709217aecdda25c18f134567c12
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To include Qt properties, extracted from qmake, into a VS/MSBuild
project requires that MSBuild be invoked recursively, after the Qt
properties file has been generated. This change fixes some
inconsistencies between the "outer" build (i.e. the initial call to
MSBuild, corresponding to the original build request), and the "inner"
build (i.e. the recursive call to MSBuild, after the Qt properties file
is generated), as well as build requests related to the update of
IntelliSense information (syntax highlighting, code completion, etc.)
Task-number: QTVSADDINBUG-708
Change-Id: If5d1fcd4ab2ffd996b1817cc3953cefeba3bfe4a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The "Additional Library Directories" linker property will now default to
the LIBPATH information generated by qmake. Also, the 'lib' directory in
the Qt installation will no longer be set by default. This path is now
read from qmake and should not be hard-coded.
Change-Id: I21d49b96dcd7374f5d5df60d8476918d41c2b761
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTVSADDINBUG-674
Change-Id: Id85815ebbf16471a7e1ce8328278d1b8f505a31e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When converting projects to the latest V3 format, will now detect the
usage of Qt modules by the presence of link library references and
QT_<module>_LIB macro definitions. Previously, only the presence of the
release link libraries were considered, leading to problems if these
were not referenced (i.e. in the case of a static lib project).
Task-number: QTVSADDINBUG-681
Change-Id: I0dfd2bc27056af340ce0cf306f31ce9849e442b4
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As of 2.4, uic would generate errors when invoked from a project
imported from a .pro file, if the uic output directory was the current
(i.e. project) directory.
Task-number: QTVSADDINBUG-686
Change-Id: Icc30b9f56e189188ef5f128d5d25f7aa7e06e1d2
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTVSADDINBUG-674
Task-number: QTVSADDINBUG-686
Change-Id: I68c52dd7b77c6c256bcb61f23dbf31eb4a65cb77
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Design-time build, used by Intellisense, will now include missing
information about output paths of Qt tools. Also, the refresh of
Intellisense is now triggered more aggressively.
Task-number: QTVSADDINBUG-673
Change-Id: I98c5602ae28e0c336e7e0b9a32051519730e6358
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When converting projects to the V3 format, will now correctly preserve
the path to the output of Qt tools. Previously, this path was
overwritten with the default setting for new projects.
Task-number: QTVSADDINBUG-665
Change-Id: I4584ac1e9ec95219c770efb5aa7e52a9b424a765
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
When converting to the latest version of the Qt VS Tools project format,
some additional checks will now be carried out, namely if a filters file
is present and if ItemDefinitionGroup are properly formatted.
Task-number: QTVSADDINBUG-663
Change-Id: I1017959e7ede486b2697253b179e9f99107fd028
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Added an import of .props file with default values of Qt settings.
Visual Studio requires this to be defined in the project file ahead of
the property group definition in order to show the default values in
the property page.
Task-number: QTVSADDINBUG-545
Change-Id: I4f061dd113fe304829d7ac2504216d5269fbabc5
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The Qt settings property page now includes fields to specify the path
to binary files of Qt modules and tools, as well as to provide
additional paths to search for module libs. The paths provided can be
either absolute or relative to the Qt installation.
Task-number: QTVSADDINBUG-545
Change-Id: I0bbed066dfe067e4200299f841ba53243c7b063b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
| |
Task-number: QTVSADDINBUG-496
Change-Id: I4027ab3bdb3368ed31f8e71527b6c583155e442d
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
Project format conversion to version 3.1 from versions 2.0 and 3.0.
Task-number: QTVSADDINBUG-651
Change-Id: Ia4b9acc1f422a0c90f3f835aefa9c8a1d2ffc19e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces a revision of the v3 project format, which will
now allow Qt settings to reference user macros defined in imported
property sheets. This includes the following changes to the order of
property evaluation:
- "QtSettings" property group moved to after the import of user
property sheets;
- QtInstall property moved from the "Configuration" property group
to the "QtSettings" property group;
- Import of qt.props moved to after the "QtSettings" property group.
Task-number: QTVSADDINBUG-651
Change-Id: I55a022647327c89157175e1b25e55cf680a65924
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Fixed an issue in the conversion to Qt/MSBuild where moc-generated C++
sources excluded from build in the original project are included in the
converted project.
Task-number: QTVSADDINBUG-597
Change-Id: I1fbec901d744b0da3b4ad7d788e13a26182c151c
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|