Merge remote-tracking branch 'origin/10.0'
Change-Id: Ie591b7130b33a042509e56701384f8ff4d9cb7f8
25
dist/changelog/changes-10.0.0.md
vendored
@@ -15,6 +15,8 @@ General
|
|||||||
|
|
||||||
* Added support for temporarily dragging progress details out of the way
|
* Added support for temporarily dragging progress details out of the way
|
||||||
in addition to hiding them with the button below them (QTCREATORBUG-28078)
|
in addition to hiding them with the button below them (QTCREATORBUG-28078)
|
||||||
|
* Fixed that the locator search term was not preserved when using `Open as
|
||||||
|
Centered Popup`
|
||||||
|
|
||||||
Editing
|
Editing
|
||||||
-------
|
-------
|
||||||
@@ -108,6 +110,12 @@ Projects
|
|||||||
by default (QTCREATORBUG-28513)
|
by default (QTCREATORBUG-28513)
|
||||||
* Fixed that `Package manager auto setup` created a dependency of the project
|
* Fixed that `Package manager auto setup` created a dependency of the project
|
||||||
build to the Qt Creator installation
|
build to the Qt Creator installation
|
||||||
|
* Fixed that cloned build configurations could miss values from the `Initial
|
||||||
|
Parameters` (QTCREATORBUG-28759)
|
||||||
|
* Fixed that CMake preset macros were not expanded for environment variables
|
||||||
|
(QTCREATORBUG-28606)
|
||||||
|
* Fixed a crash with the `Kit Configuration` button for build configurations
|
||||||
|
(QTCREATORBUG-28740)
|
||||||
|
|
||||||
### Qbs
|
### Qbs
|
||||||
|
|
||||||
@@ -129,9 +137,15 @@ Debugging
|
|||||||
* Fixed highlighting in the `Disassembler` view
|
* Fixed highlighting in the `Disassembler` view
|
||||||
* Fixed skipping `std::function` details when stepping
|
* Fixed skipping `std::function` details when stepping
|
||||||
* Fixed an out of memory issue when debugging long lists (QTCREATORBUG-26416)
|
* Fixed an out of memory issue when debugging long lists (QTCREATORBUG-26416)
|
||||||
|
* Fixed the highlighting of values and members in the memory view
|
||||||
|
(QTCREATORBUG-23681)
|
||||||
|
* GDB
|
||||||
|
* Fixed issues with GDB 13.1
|
||||||
* CDB
|
* CDB
|
||||||
* Fixed the printing of addresses of pointers with multiple base classes
|
* Fixed the printing of addresses of pointers with multiple base classes
|
||||||
(QTCREATORBUG-28337)
|
(QTCREATORBUG-28337)
|
||||||
|
* Fixed some performance issues (QTCREATORBUG-18287)
|
||||||
|
* Fixed a freeze with non-UTF-8 system encoding (QTCREATORBUG-25054)
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
|
||||||
@@ -159,9 +173,10 @@ Version Control Systems
|
|||||||
### Git
|
### Git
|
||||||
|
|
||||||
* Improved tracking of external changes (QTCREATORBUG-21089)
|
* Improved tracking of external changes (QTCREATORBUG-21089)
|
||||||
* Added editor annotation for blame information (instant blame) with a setting
|
* Added editor annotation for blame information (instant blame) with the setting
|
||||||
(opt-out) and an action to show it manually for the current line
|
`Edit > Preferences > Version Control Git > Add instant blame annotations to
|
||||||
(QTCREATORBUG-23299)
|
editor` (opt-out) and the `Tools > Git > Current File > Instant Blame` action
|
||||||
|
to show annotation manually for the current line (QTCREATORBUG-23299)
|
||||||
|
|
||||||
Test Integration
|
Test Integration
|
||||||
----------------
|
----------------
|
||||||
@@ -169,7 +184,8 @@ Test Integration
|
|||||||
* Improved `Run` and `Debug Test Under Cursor` (QTCREATORBUG-28496)
|
* Improved `Run` and `Debug Test Under Cursor` (QTCREATORBUG-28496)
|
||||||
* Improved the number of files that are scanned for tests
|
* Improved the number of files that are scanned for tests
|
||||||
* Improved output handling (QTCREATORBUG-28706)
|
* Improved output handling (QTCREATORBUG-28706)
|
||||||
* Made the expensive checking for tests in derived `TestCase` objects optional
|
* Added an option to enable the expensive checking for tests in derived
|
||||||
|
`TestCase` objects to `Edit > Preferences > Testing > Qt Test`
|
||||||
|
|
||||||
Platforms
|
Platforms
|
||||||
---------
|
---------
|
||||||
@@ -242,6 +258,7 @@ Philip Van Hoof
|
|||||||
Pranta Dastider
|
Pranta Dastider
|
||||||
Robert Löhning
|
Robert Löhning
|
||||||
Sami Shalayel
|
Sami Shalayel
|
||||||
|
Samuel Gaist
|
||||||
Samuel Ghinet
|
Samuel Ghinet
|
||||||
Sergey Levin
|
Sergey Levin
|
||||||
Sivert Krøvel
|
Sivert Krøvel
|
||||||
|
Before Width: | Height: | Size: 9.8 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-bazaar.webp
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-clearcase.webp
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-cvs.webp
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-fossil.webp
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-general.webp
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-gerrit.webp
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-git.webp
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-mercurial.webp
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-perforce.webp
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-vcs-subversion.webp
Normal file
After Width: | Height: | Size: 5.0 KiB |
@@ -172,7 +172,7 @@
|
|||||||
\c {cmake-format.exe}.
|
\c {cmake-format.exe}.
|
||||||
\li Select \uicontrol {Enable auto format on file save} to automatically
|
\li Select \uicontrol {Enable auto format on file save} to automatically
|
||||||
format CMake files when you save them.
|
format CMake files when you save them.
|
||||||
\li In \uicontrol {Restrict to MIME types}, add the \l{Adding MIME Types}
|
\li In \uicontrol {Restrict to MIME types}, add the \l{Editing MIME Types}
|
||||||
{MIME types} of the files to format, separated by semicolons. The
|
{MIME types} of the files to format, separated by semicolons. The
|
||||||
default value, \c {text/x-cmake} formats CMake files. If the field is
|
default value, \c {text/x-cmake} formats CMake files. If the field is
|
||||||
empty, all files are formatted.
|
empty, all files are formatted.
|
||||||
|
@@ -83,7 +83,7 @@
|
|||||||
directories.
|
directories.
|
||||||
|
|
||||||
Also, the \uicontrol {Open Terminal} button in the
|
Also, the \uicontrol {Open Terminal} button in the
|
||||||
\uicontrol {Use build environment} section opens a terminal on the device.
|
\uicontrol {Build Environment} section opens a terminal on the device.
|
||||||
|
|
||||||
\section1 Starting External Processes
|
\section1 Starting External Processes
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2018 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -40,4 +40,22 @@
|
|||||||
\uicontrol Uncommit leaves the working tree ready for a new commit. The only
|
\uicontrol Uncommit leaves the working tree ready for a new commit. The only
|
||||||
change it might make is restoring pending merges that were present before
|
change it might make is restoring pending merges that were present before
|
||||||
the commit.
|
the commit.
|
||||||
|
|
||||||
|
\section1 Bazaar Preferences
|
||||||
|
|
||||||
|
To set Bazaar preferences, select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol {Version Control} > \uicontrol Bazaar:
|
||||||
|
|
||||||
|
\image qtcreator-preferences-vcs-bazaar.webp {Bazaar preferences}
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \uicontrol Command specifies the path to the command line client
|
||||||
|
executable.
|
||||||
|
\li \uicontrol {Default username} and \uicontrol {Default email}
|
||||||
|
specify the username and email address to use by default when
|
||||||
|
committing changes.
|
||||||
|
\li \uicontrol {Log count} sets the maximum number of lines the log can
|
||||||
|
have.
|
||||||
|
\li \uicontrol Timeout sets a timeout for version control operations.
|
||||||
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2018 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -15,9 +15,8 @@
|
|||||||
\title Using ClearCase
|
\title Using ClearCase
|
||||||
|
|
||||||
IBM Rational ClearCase is a version control, workspace management, parallel
|
IBM Rational ClearCase is a version control, workspace management, parallel
|
||||||
development support, and build automation solution developed by IBM. The
|
development support, and build automation solution developed by IBM. Use the
|
||||||
ClearCase client plugin is available on Linux and Windows for accessing a
|
ClearCase client plugin on Linux and Windows to access a ClearCase server.
|
||||||
ClearCase server.
|
|
||||||
|
|
||||||
\section1 Using GNU Diffutils with ClearCase
|
\section1 Using GNU Diffutils with ClearCase
|
||||||
|
|
||||||
@@ -32,8 +31,10 @@
|
|||||||
\li Select \uicontrol Edit > \uicontrol Preferences >
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol {Version Control} > \uicontrol ClearCase.
|
\uicontrol {Version Control} > \uicontrol ClearCase.
|
||||||
|
|
||||||
|
\image qtcreator-preferences-vcs-clearcase.webp {ClearCase preferences}
|
||||||
|
|
||||||
\li Select the \uicontrol External radio button. The radio button is
|
\li Select the \uicontrol External radio button. The radio button is
|
||||||
disabled if \c diff is not found in the PATH.
|
disabled if \c diff is not in the PATH.
|
||||||
|
|
||||||
\li In the \uicontrol Arguments field, specify arguments for running
|
\li In the \uicontrol Arguments field, specify arguments for running
|
||||||
\c diff.
|
\c diff.
|
||||||
@@ -51,12 +52,10 @@
|
|||||||
a UCM activity. By default, the activities are automatically assigned names.
|
a UCM activity. By default, the activities are automatically assigned names.
|
||||||
To disable this functionality, select \uicontrol Edit > \uicontrol Preferences
|
To disable this functionality, select \uicontrol Edit > \uicontrol Preferences
|
||||||
> \uicontrol {Version Control} > \uicontrol ClearCase, and then deselect the
|
> \uicontrol {Version Control} > \uicontrol ClearCase, and then deselect the
|
||||||
\uicontrol {Automatically assign activity names} check box.
|
\uicontrol {Auto assign activity names} check box.
|
||||||
|
|
||||||
To automatically check out files when you edit them, select \uicontrol Edit
|
To automatically check out files when you edit them, select the
|
||||||
> \uicontrol Preferences > \uicontrol {Version Control} > \uicontrol ClearCase,
|
\uicontrol {Automatically check out files on edit} check box.
|
||||||
and then select the \uicontrol {Automatically check out files on edit}
|
|
||||||
check box.
|
|
||||||
|
|
||||||
To cancel the checkout for a file and delete the checked-out version,
|
To cancel the checkout for a file and delete the checked-out version,
|
||||||
select \uicontrol Tools > \uicontrol ClearCase >
|
select \uicontrol Tools > \uicontrol ClearCase >
|
||||||
@@ -68,12 +67,12 @@
|
|||||||
|
|
||||||
To create a permanent new version of the current file or all files in the
|
To create a permanent new version of the current file or all files in the
|
||||||
versioned object base (VOB), select \uicontrol Tools >
|
versioned object base (VOB), select \uicontrol Tools >
|
||||||
\uicontrol {ClearCase} > \uicontrol {Check In}. To be asked to confirm
|
\uicontrol {ClearCase} > \uicontrol {Check In}. To confirm
|
||||||
that you want to check in the files, select \uicontrol Edit >
|
that you want to check in the files, select \uicontrol Edit >
|
||||||
\uicontrol Preferences > \uicontrol {Version Control} > \uicontrol ClearCase,
|
\uicontrol Preferences > \uicontrol {Version Control} > \uicontrol ClearCase,
|
||||||
and then select the \uicontrol {Prompt on check-in} check box.
|
and then select the \uicontrol {Prompt on check-in} check box.
|
||||||
|
|
||||||
By default, you are asked to enter a comment when checking files out or in.
|
By default, you have to enter a comment when checking files out or in.
|
||||||
To suppress this prompt, select \uicontrol Edit > \uicontrol Preferences >
|
To suppress this prompt, select \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol {Version Control} > \uicontrol ClearCase, and then select the
|
\uicontrol {Version Control} > \uicontrol ClearCase, and then select the
|
||||||
\uicontrol {Do not prompt for comment during checkout or check-in} check
|
\uicontrol {Do not prompt for comment during checkout or check-in} check
|
||||||
@@ -89,4 +88,8 @@
|
|||||||
> \uicontrol {Version Control} > \uicontrol ClearCase, and then select the
|
> \uicontrol {Version Control} > \uicontrol ClearCase, and then select the
|
||||||
\uicontrol {Disable indexer} check box. To only have some VOBs indexed,
|
\uicontrol {Disable indexer} check box. To only have some VOBs indexed,
|
||||||
specify them in the \uicontrol {Index only VOBs} field.
|
specify them in the \uicontrol {Index only VOBs} field.
|
||||||
|
|
||||||
|
Specify the number of event records to show in \uicontrol {History count}.
|
||||||
|
|
||||||
|
Set a timeout for version control operations in \uicontrol Timeout.
|
||||||
*/
|
*/
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2019 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -29,18 +29,20 @@
|
|||||||
To unedit files in the local directory, as well as recursively in all
|
To unedit files in the local directory, as well as recursively in all
|
||||||
subdirectories, select \uicontrol {Unedit Repository}.
|
subdirectories, select \uicontrol {Unedit Repository}.
|
||||||
|
|
||||||
To specify the CVS root directory, select \uicontrol Edit >
|
\section1 CVS Preferences
|
||||||
\uicontrol Preferences > \uicontrol {Version Control} > \uicontrol CVS, and then
|
|
||||||
specify the path to the directory in the \uicontrol {CVS root} field.
|
|
||||||
|
|
||||||
You can specify settings for viewing diff output in the
|
To set CVS preferences, select \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol {Diff options} field.
|
\uicontrol {Version Control} > \uicontrol CVS:
|
||||||
|
|
||||||
By default, you are prompted to confirm that you want to submit changes.
|
\image qtcreator-preferences-vcs-cvs.webp {CVS preferences}
|
||||||
To suppress the prompt, deselect the \uicontrol {Prompt on submit} check
|
|
||||||
box.
|
|
||||||
|
|
||||||
By default, all files that belong to the commit are annotated. To disable
|
\list
|
||||||
this feature, deselect the \uicontrol {Describe all files matching commit
|
\li \uicontrol {CVS Command} specifies the path to the command line
|
||||||
id} check box.
|
client executable.
|
||||||
|
\li \uicontrol {CVS root} specifies the CVS root.
|
||||||
|
\li \uicontrol Timeout sets a timeout for version control operations.
|
||||||
|
\li \uicontrol {Diff options} sets preferences for viewing diff output.
|
||||||
|
\li \uicontrol {Describe all files matching commit id} annotates all
|
||||||
|
files that belong to the commit.
|
||||||
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
@@ -29,6 +29,9 @@
|
|||||||
\li Select \uicontrol Edit > \uicontrol Preferences >
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol {Version Control} > \uicontrol Fossil, and set the
|
\uicontrol {Version Control} > \uicontrol Fossil, and set the
|
||||||
designated directory in the \uicontrol {Default path} field.
|
designated directory in the \uicontrol {Default path} field.
|
||||||
|
|
||||||
|
\image qtcreator-preferences-vcs-fossil.webp {Fossil preferences}
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
To create a local Fossil repository, select \uicontrol Tools >
|
To create a local Fossil repository, select \uicontrol Tools >
|
||||||
@@ -62,4 +65,28 @@
|
|||||||
\li \uicontrol Settings
|
\li \uicontrol Settings
|
||||||
\li Configure the settings of the local repository.
|
\li Configure the settings of the local repository.
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
|
\section1 Fossil Preferences
|
||||||
|
|
||||||
|
To set Fossil preferences, select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol {Version Control} > \uicontrol Fossil:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \uicontrol Command specifies the path to the command line client
|
||||||
|
executable.
|
||||||
|
\li \uicontrol {Default path} sets the path to the directory to store
|
||||||
|
local repositories by default.
|
||||||
|
\li \uicontrol {Default user} specifies an existing user who becomes the
|
||||||
|
author of changes made to the repository.
|
||||||
|
\li \uicontrol {SSL/TLS identity} sets the SSL/TLS client identity key
|
||||||
|
to use for authentication if the server requests it.
|
||||||
|
\li \uicontrol {Log count} sets the maximum number of lines the log can
|
||||||
|
have.
|
||||||
|
\li \uicontrol {Log width} sets the width of log entry lines to 20 or
|
||||||
|
above. The value 0 shows a single line per entry.
|
||||||
|
\li \uicontrol {Timeout} sets a timeout for version control operations.
|
||||||
|
\li \uicontrol {Disable auto sync} disables automatic pull before
|
||||||
|
a commit or update and automatic push after a commit or tag or branch
|
||||||
|
creation.
|
||||||
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
@@ -42,4 +42,23 @@
|
|||||||
\li \uicontrol{Push}
|
\li \uicontrol{Push}
|
||||||
\li Push changes to the remote repository.
|
\li Push changes to the remote repository.
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
|
\section1 Mercurial Preferences
|
||||||
|
|
||||||
|
To set preferences for Mercurial, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol {Version Control} > \uicontrol Mercurial:
|
||||||
|
|
||||||
|
\image qtcreator-preferences-vcs-mercurial.webp {Mercurial preferences}
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \uicontrol Command specifies the path to the command line client
|
||||||
|
executable.
|
||||||
|
\li \uicontrol {Default username} and \uicontrol {Default email}
|
||||||
|
specify the username and email address to use by default when
|
||||||
|
committing changes.
|
||||||
|
\li \uicontrol {Log count} sets the maximum number of lines the log can
|
||||||
|
have.
|
||||||
|
\li \uicontrol Timeout sets a timeout for version control operations.
|
||||||
|
\endlist
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2018 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -8,21 +8,14 @@
|
|||||||
\section1 Setting Up Version Control Systems
|
\section1 Setting Up Version Control Systems
|
||||||
|
|
||||||
\QC uses the version control system's command line clients to access your
|
\QC uses the version control system's command line clients to access your
|
||||||
repositories. To allow access, make sure that the command line clients can
|
repositories. Make sure that the command line clients are in the \c{PATH}
|
||||||
be located using the \c{PATH} environment variable. Alternatively, specify
|
environment variable, or specify the path to the command line client
|
||||||
the path to the command line client executable in the \uicontrol Command
|
executable in the version control system specific tab in \uicontrol Edit >
|
||||||
field in the version control system specific tab in \uicontrol Edit >
|
|
||||||
\uicontrol Preferences > \uicontrol {Version Control}.
|
\uicontrol Preferences > \uicontrol {Version Control}.
|
||||||
|
|
||||||
If authentication is required to access the repository, enter the user
|
\image qtcreator-preferences-vcs-bazaar.webp {Bazaar preferences}
|
||||||
credentials in the \uicontrol Username and \uicontrol Password fields.
|
|
||||||
|
|
||||||
Enter a timeout for version control operations in the \uicontrol Timeout
|
|
||||||
field.
|
|
||||||
|
|
||||||
For some version control systems, you can specify the maximum number of
|
|
||||||
lines the log can have in the \uicontrol {Log count} field.
|
|
||||||
|
|
||||||
|
The other configuration options depend on the version control system.
|
||||||
After you set up the version control system, use the command line to check
|
After you set up the version control system, use the command line to check
|
||||||
that everything works (for example, use the status command). If no issues
|
that everything works (for example, use the status command). If no issues
|
||||||
arise, you should be ready to use the system also from \QC.
|
arise, you should be ready to use the system also from \QC.
|
||||||
@@ -35,12 +28,14 @@
|
|||||||
Select \uicontrol Edit > \uicontrol Preferences > \uicontrol {Version Control}
|
Select \uicontrol Edit > \uicontrol Preferences > \uicontrol {Version Control}
|
||||||
> \uicontrol General to specify settings for submit messages:
|
> \uicontrol General to specify settings for submit messages:
|
||||||
|
|
||||||
|
\image qtcreator-preferences-vcs-general.webp {General tab in Version Control preferences}
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \uicontrol{Wrap submit messages at} limits the line length of a
|
\li \uicontrol{Wrap submit messages at} limits the line length of a
|
||||||
submit message to the specified number of characters.
|
submit message to the specified number of characters.
|
||||||
\li \uicontrol{Submit message check script} is a script or program that
|
\li \uicontrol{Submit message check script} is a script or program that
|
||||||
can be used to perform checks on the submit message before
|
performs checks on the submit message before
|
||||||
submitting. The submit message is passed in as the script's first
|
submitting. The submit message is the script's first
|
||||||
parameter. If there is an error, the script should output a
|
parameter. If there is an error, the script should output a
|
||||||
message on standard error and return a non-zero exit code.
|
message on standard error and return a non-zero exit code.
|
||||||
\li \uicontrol{User/alias configuration file} is a text file that lists
|
\li \uicontrol{User/alias configuration file} is a text file that lists
|
||||||
@@ -73,7 +68,7 @@
|
|||||||
For example, \c ssh-askpass or \c x11-ssh-askpass, depending on the
|
For example, \c ssh-askpass or \c x11-ssh-askpass, depending on the
|
||||||
ssh-askpass implementation that you use.
|
ssh-askpass implementation that you use.
|
||||||
\li \uicontrol {Reset VCS Cache} resets the version control system
|
\li \uicontrol {Reset VCS Cache} resets the version control system
|
||||||
configuration to a state known to \QC after it has been changed
|
configuration to a state known to \QC after you change it
|
||||||
from the command line, for example.
|
from the command line, for example.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2020 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -29,9 +29,18 @@
|
|||||||
|
|
||||||
\section1 Configuring Perforce
|
\section1 Configuring Perforce
|
||||||
|
|
||||||
In the Perforce preferences, you can specify workspace details:
|
To set Perforce preferences, select \uicontrol Edit > \uicontrol Preferences
|
||||||
\uicontrol {P4 user}, \uicontrol {P4 client}, and \uicontrol {P4 port}. To
|
> \uicontrol {Version Control} > \uicontrol Perforce:
|
||||||
specify the details individually for several projects, use configuration
|
|
||||||
|
\image qtcreator-preferences-vcs-perforce.webp {Perforce preferences}
|
||||||
|
|
||||||
|
In \uicontrol {P4 command}, set the path to the command line client
|
||||||
|
executable.
|
||||||
|
|
||||||
|
Set workspace details in \uicontrol {P4 user}, \uicontrol {P4 client}, and
|
||||||
|
\uicontrol {P4 port}.
|
||||||
|
|
||||||
|
To specify the details individually for several projects, use configuration
|
||||||
files instead. Create a \c {p4config.txt} configuration file for each
|
files instead. Create a \c {p4config.txt} configuration file for each
|
||||||
project in the top level project directory, and run
|
project in the top level project directory, and run
|
||||||
\c{p4 set P4CONFIG=p4config.txt} once. You must deselect the
|
\c{p4 set P4CONFIG=p4config.txt} once. You must deselect the
|
||||||
@@ -56,9 +65,4 @@
|
|||||||
|
|
||||||
To view information about change lists and the files in them, select
|
To view information about change lists and the files in them, select
|
||||||
\uicontrol Tools > \uicontrol Perforce > \uicontrol Describe.
|
\uicontrol Tools > \uicontrol Perforce > \uicontrol Describe.
|
||||||
|
|
||||||
By default, you must confirm that you want to submit changes. To suppress
|
|
||||||
the confirmation prompt, select \uicontrol Edit > \uicontrol Preferences >
|
|
||||||
\uicontrol {Version Control} > \uicontrol Perforce, and then deselect the
|
|
||||||
\uicontrol {Prompt on submit} check box.
|
|
||||||
*/
|
*/
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2019 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -21,14 +21,27 @@
|
|||||||
\uicontrol Subversion > \uicontrol Describe to display commit log messages
|
\uicontrol Subversion > \uicontrol Describe to display commit log messages
|
||||||
for a revision.
|
for a revision.
|
||||||
|
|
||||||
By default, you must confirm that you want to submit changes. To suppress the
|
|
||||||
confirmation prompt, select \uicontrol Edit > \uicontrol Preferences >
|
|
||||||
\uicontrol {Version Control} > \uicontrol Subversion, and then deselect the
|
|
||||||
\uicontrol {Prompt on submit} check box.
|
|
||||||
|
|
||||||
To show whitespace changes in annotation views, deselect the
|
|
||||||
\uicontrol {Ignore whitespace changes in annotation} check box.
|
|
||||||
|
|
||||||
You can use Git as a client for a Subversion server. For more information,
|
You can use Git as a client for a Subversion server. For more information,
|
||||||
see \l{Using Git with Subversion}.
|
see \l{Using Git with Subversion}.
|
||||||
|
|
||||||
|
\section1 Subversion Preferences
|
||||||
|
|
||||||
|
To set Subversion preferences, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol {Version Control} >
|
||||||
|
\uicontrol Subversion:
|
||||||
|
|
||||||
|
\image qtcreator-preferences-vcs-subversion.webp {Subversion preferences}
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \uicontrol {Subversion command} specifies the path to the command
|
||||||
|
line client executable.
|
||||||
|
\li \uicontrol {Username} and \uicontrol {Password} specify the user
|
||||||
|
credentials to access the repository if the server requires
|
||||||
|
\uicontrol Authentication.
|
||||||
|
\li \uicontrol {Log count} sets the maximum number of lines the log can
|
||||||
|
have.
|
||||||
|
\li \uicontrol Timeout sets a timeout for version control operations.
|
||||||
|
\li \uicontrol {Ignore whitespace changes in annotation} hides whitespace
|
||||||
|
changes in annotation views.
|
||||||
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2022 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -46,6 +46,8 @@
|
|||||||
set to \c %HOMEDRIVE%%HOMEPATH% when the Git executable is run and
|
set to \c %HOMEDRIVE%%HOMEPATH% when the Git executable is run and
|
||||||
authorization works as it would with \c {git bash}.
|
authorization works as it would with \c {git bash}.
|
||||||
|
|
||||||
|
\image qtcreator-preferences-vcs-git.webp {Git preferences}
|
||||||
|
|
||||||
\section1 Working with the Current File
|
\section1 Working with the Current File
|
||||||
|
|
||||||
To work with the current file, select the commands in \uicontrol Tools >
|
To work with the current file, select the commands in \uicontrol Tools >
|
||||||
@@ -73,9 +75,15 @@
|
|||||||
|
|
||||||
To display the versioning history of a file, select \uicontrol{Log of}.
|
To display the versioning history of a file, select \uicontrol{Log of}.
|
||||||
The log output has the date, the commit message, and a commit
|
The log output has the date, the commit message, and a commit
|
||||||
identifier. Click on the commit identifier to view commit details.
|
identifier.
|
||||||
|
|
||||||
\image qtcreator-git-log.png "Commit details in Git log"
|
You can set the maximum number of log entries to show in \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol {Version Control} > \uicontrol Git >
|
||||||
|
\uicontrol {Log count}.
|
||||||
|
|
||||||
|
Click on the commit identifier to view commit details.
|
||||||
|
|
||||||
|
\image qtcreator-git-log.png {Commit details in Git log}
|
||||||
|
|
||||||
Right-clicking on a commit identifier brings up a context menu that lets
|
Right-clicking on a commit identifier brings up a context menu that lets
|
||||||
you apply actions on the commit, such as view annotations or cherry-pick
|
you apply actions on the commit, such as view annotations or cherry-pick
|
||||||
@@ -109,7 +117,7 @@
|
|||||||
\uicontrol {Git Show} view, select \uicontrol {Describe Change} in the
|
\uicontrol {Git Show} view, select \uicontrol {Describe Change} in the
|
||||||
context menu.
|
context menu.
|
||||||
|
|
||||||
\image qtcreator-vcs-show.png "Commit description in Git show"
|
\image qtcreator-vcs-show.png {Commit description in Git show}
|
||||||
|
|
||||||
\section2 Viewing Annotations
|
\section2 Viewing Annotations
|
||||||
|
|
||||||
@@ -117,7 +125,14 @@
|
|||||||
view displays the lines of the file prepended by the commit identifier they
|
view displays the lines of the file prepended by the commit identifier they
|
||||||
originate from.
|
originate from.
|
||||||
|
|
||||||
\image qtcreator-git-blame.webp "Git Blame view"
|
\image qtcreator-git-blame.webp {Git Blame view}
|
||||||
|
|
||||||
|
By default, each line is annotated in the editor when you scroll through
|
||||||
|
the file. To disable this feature, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol {Version Control} > \uicontrol Git, and
|
||||||
|
deselect \uicontrol {Add instant blame annotations to editor}. To view
|
||||||
|
annotations for the current line, select \uicontrol Tools > \uicontrol Git >
|
||||||
|
\uicontrol {Current File} > \uicontrol {Instant Blame}.
|
||||||
|
|
||||||
Click the commit identifier to show a detailed description of the change.
|
Click the commit identifier to show a detailed description of the change.
|
||||||
|
|
||||||
@@ -197,7 +212,7 @@
|
|||||||
commit page containing a text editor where you can enter your commit
|
commit page containing a text editor where you can enter your commit
|
||||||
message and a checkable list of modified files to include.
|
message and a checkable list of modified files to include.
|
||||||
|
|
||||||
\image qtcreator-vcs-commit.png "Committing changes with Git"
|
\image qtcreator-vcs-commit.png {Committing changes with Git}
|
||||||
|
|
||||||
\uicontrol {General Information} displays the names of the
|
\uicontrol {General Information} displays the names of the
|
||||||
repository and branch for the commit.
|
repository and branch for the commit.
|
||||||
@@ -234,7 +249,7 @@
|
|||||||
\uicontrol Git > \uicontrol {Local Repository} >
|
\uicontrol Git > \uicontrol {Local Repository} >
|
||||||
\uicontrol {Amend Last Commit}.
|
\uicontrol {Amend Last Commit}.
|
||||||
|
|
||||||
\image qtcreator-git-amend.png "Amending a Git commit"
|
\image qtcreator-git-amend.png {Amending a Git commit}
|
||||||
|
|
||||||
To view the commit in its current form, before amending, select
|
To view the commit in its current form, before amending, select
|
||||||
\uicontrol {Show HEAD}.
|
\uicontrol {Show HEAD}.
|
||||||
@@ -279,7 +294,7 @@
|
|||||||
\uicontrol {Git Branches} sidebar view shows the checked out
|
\uicontrol {Git Branches} sidebar view shows the checked out
|
||||||
branch in bold and underlined in the list of branches.
|
branch in bold and underlined in the list of branches.
|
||||||
|
|
||||||
\image qtcreator-vcs-gitbranch.png "Git Branches sidebar view"
|
\image qtcreator-vcs-gitbranch.png {Git Branches sidebar view}
|
||||||
|
|
||||||
Old entries and tags are filtered out of the list of branches
|
Old entries and tags are filtered out of the list of branches
|
||||||
by default. To include them, select \inlineimage icons/filtericon.png
|
by default. To include them, select \inlineimage icons/filtericon.png
|
||||||
@@ -424,7 +439,7 @@
|
|||||||
commits, select \uicontrol Tools > \uicontrol Git >
|
commits, select \uicontrol Tools > \uicontrol Git >
|
||||||
\uicontrol {Actions on Commits}.
|
\uicontrol {Actions on Commits}.
|
||||||
|
|
||||||
\image creator-git-commit-actions.png "Select a Git Commit dialog"
|
\image creator-git-commit-actions.png {Select a Git Commit dialog}
|
||||||
|
|
||||||
You can apply the following actions on commits:
|
You can apply the following actions on commits:
|
||||||
|
|
||||||
@@ -565,7 +580,7 @@
|
|||||||
Select the \uicontrol HTTPS check box to prepend \c https to the Gerrit URL
|
Select the \uicontrol HTTPS check box to prepend \c https to the Gerrit URL
|
||||||
if Gerrit does not add it.
|
if Gerrit does not add it.
|
||||||
|
|
||||||
\image qtcreator-gerrit-options.png "Gerrit preferences"
|
\image qtcreator-preferences-vcs-gerrit.webp {Gerrit preferences}
|
||||||
|
|
||||||
\section1 Working with Git Tools
|
\section1 Working with Git Tools
|
||||||
|
|
||||||
|
@@ -326,7 +326,7 @@ void doSemanticHighlighting(
|
|||||||
styles.mainStyle = C_PARAMETER;
|
styles.mainStyle = C_PARAMETER;
|
||||||
} else if (token.type == "macro") {
|
} else if (token.type == "macro") {
|
||||||
styles.mainStyle = C_MACRO;
|
styles.mainStyle = C_MACRO;
|
||||||
} else if (token.type == "type") {
|
} else if (token.type == "type" || token.type == "concept") {
|
||||||
styles.mainStyle = C_TYPE;
|
styles.mainStyle = C_TYPE;
|
||||||
} else if (token.type == "modifier") {
|
} else if (token.type == "modifier") {
|
||||||
styles.mainStyle = C_KEYWORD;
|
styles.mainStyle = C_KEYWORD;
|
||||||
|
@@ -1300,6 +1300,9 @@ void ClangdTestHighlighting::test_data()
|
|||||||
<< QList<int>{C_FIELD} << 0;
|
<< QList<int>{C_FIELD} << 0;
|
||||||
QTest::newRow("fake operator method call") << 1050 << 8 << 1050 << 22
|
QTest::newRow("fake operator method call") << 1050 << 8 << 1050 << 22
|
||||||
<< QList<int>{C_FUNCTION} << 0;
|
<< QList<int>{C_FUNCTION} << 0;
|
||||||
|
QTest::newRow("concept definition") << 1053 << 30 << 1053 << 42
|
||||||
|
<< QList<int>{C_TYPE, C_DECLARATION} << 0;
|
||||||
|
QTest::newRow("concept use") << 1054 << 29 << 1054 << 41 << QList<int>{C_TYPE} << 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClangdTestHighlighting::test()
|
void ClangdTestHighlighting::test()
|
||||||
|
@@ -1049,3 +1049,6 @@ void useStrangeStruct(StructWithMisleadingMemberNames *s) {
|
|||||||
s->operatormember = 5;
|
s->operatormember = 5;
|
||||||
s->operatorMethod();
|
s->operatorMethod();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T> concept NoConstraint = true;
|
||||||
|
static void constrainedFunc(NoConstraint auto t) {}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
CONFIG -= qt
|
CONFIG -= qt
|
||||||
|
CONFIG += c++2a
|
||||||
SOURCES = highlighting.cpp
|
SOURCES = highlighting.cpp
|
||||||
QMAKE_CXXFLAGS += -broken
|
QMAKE_CXXFLAGS += -broken
|
||||||
|
@@ -165,24 +165,23 @@ void ClangToolRunWorker::start()
|
|||||||
.arg(toolName, projectFile.toUserOutput(), m_diagnosticConfig.displayName()),
|
.arg(toolName, projectFile.toUserOutput(), m_diagnosticConfig.displayName()),
|
||||||
Utils::NormalMessageFormat);
|
Utils::NormalMessageFormat);
|
||||||
|
|
||||||
// Collect files
|
const ClangToolType tool = m_tool == ClangTidyTool::instance() ? ClangToolType::Tidy
|
||||||
const auto [includeDir, clangVersion]
|
: ClangToolType::Clazy;
|
||||||
= getClangIncludeDirAndVersion(runControl()->commandLine().executable());
|
const FilePath executable = toolExecutable(tool);
|
||||||
|
const auto [includeDir, clangVersion] = getClangIncludeDirAndVersion(executable);
|
||||||
|
|
||||||
|
// Collect files
|
||||||
AnalyzeUnits unitsToProcess;
|
AnalyzeUnits unitsToProcess;
|
||||||
for (const FileInfo &fileInfo : m_fileInfos)
|
for (const FileInfo &fileInfo : m_fileInfos)
|
||||||
unitsToProcess.append({fileInfo, includeDir, clangVersion});
|
unitsToProcess.append({fileInfo, includeDir, clangVersion});
|
||||||
|
|
||||||
qCDebug(LOG) << Q_FUNC_INFO << runControl()->commandLine().executable()
|
qCDebug(LOG) << Q_FUNC_INFO << executable << includeDir << clangVersion;
|
||||||
<< includeDir << clangVersion;
|
|
||||||
qCDebug(LOG) << "Files to process:" << unitsToProcess;
|
qCDebug(LOG) << "Files to process:" << unitsToProcess;
|
||||||
qCDebug(LOG) << "Environment:" << m_environment;
|
qCDebug(LOG) << "Environment:" << m_environment;
|
||||||
|
|
||||||
m_filesAnalyzed.clear();
|
m_filesAnalyzed.clear();
|
||||||
m_filesNotAnalyzed.clear();
|
m_filesNotAnalyzed.clear();
|
||||||
|
|
||||||
const ClangToolType tool = m_tool == ClangTidyTool::instance() ? ClangToolType::Tidy
|
|
||||||
: ClangToolType::Clazy;
|
|
||||||
using namespace Tasking;
|
using namespace Tasking;
|
||||||
QList<TaskItem> tasks{ParallelLimit(qMax(1, m_runSettings.parallelJobs()))};
|
QList<TaskItem> tasks{ParallelLimit(qMax(1, m_runSettings.parallelJobs()))};
|
||||||
for (const AnalyzeUnit &unit : std::as_const(unitsToProcess)) {
|
for (const AnalyzeUnit &unit : std::as_const(unitsToProcess)) {
|
||||||
|
@@ -225,6 +225,7 @@ static QPair<FilePath, QString> clangIncludeDirAndVersion(const FilePath &clangT
|
|||||||
|
|
||||||
QPair<FilePath, QString> getClangIncludeDirAndVersion(const FilePath &clangToolPath)
|
QPair<FilePath, QString> getClangIncludeDirAndVersion(const FilePath &clangToolPath)
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(!clangToolPath.isEmpty());
|
||||||
static QMap<FilePath, QPair<FilePath, QString>> cache;
|
static QMap<FilePath, QPair<FilePath, QString>> cache;
|
||||||
auto it = cache.find(clangToolPath);
|
auto it = cache.find(clangToolPath);
|
||||||
if (it == cache.end())
|
if (it == cache.end())
|
||||||
|
@@ -665,12 +665,15 @@ void CMakeBuildSettingsWidget::kitCMakeConfiguration()
|
|||||||
|
|
||||||
auto layout = new QGridLayout(dialog);
|
auto layout = new QGridLayout(dialog);
|
||||||
|
|
||||||
kitAspect.createConfigWidget(m_buildSystem->kit())
|
KitAspectWidget *widget = kitAspect.createConfigWidget(m_buildSystem->kit());
|
||||||
->addToLayoutWithLabel(layout->parentWidget());
|
widget->setParent(dialog);
|
||||||
generatorAspect.createConfigWidget(m_buildSystem->kit())
|
widget->addToLayoutWithLabel(layout->parentWidget());
|
||||||
->addToLayoutWithLabel(layout->parentWidget());
|
widget = generatorAspect.createConfigWidget(m_buildSystem->kit());
|
||||||
configurationKitAspect.createConfigWidget(m_buildSystem->kit())
|
widget->setParent(dialog);
|
||||||
->addToLayoutWithLabel(layout->parentWidget());
|
widget->addToLayoutWithLabel(layout->parentWidget());
|
||||||
|
widget = configurationKitAspect.createConfigWidget(m_buildSystem->kit());
|
||||||
|
widget->setParent(dialog);
|
||||||
|
widget->addToLayoutWithLabel(layout->parentWidget());
|
||||||
|
|
||||||
layout->setColumnStretch(1, 1);
|
layout->setColumnStretch(1, 1);
|
||||||
|
|
||||||
@@ -1175,6 +1178,12 @@ static void addCMakeConfigurePresetToInitialArguments(QStringList &initialArgume
|
|||||||
initialArguments.removeIf(
|
initialArguments.removeIf(
|
||||||
[presetArgument](const QString &item) { return item == presetArgument; });
|
[presetArgument](const QString &item) { return item == presetArgument; });
|
||||||
|
|
||||||
|
// Remove the -DQTC_KIT_DEFAULT_CONFIG_HASH argument
|
||||||
|
const QString presetHashArgument
|
||||||
|
= CMakeConfigurationKitAspect::kitDefaultConfigHashItem(k).toArgument();
|
||||||
|
initialArguments.removeIf(
|
||||||
|
[presetHashArgument](const QString &item) { return item == presetHashArgument; });
|
||||||
|
|
||||||
PresetsDetails::ConfigurePreset configurePreset
|
PresetsDetails::ConfigurePreset configurePreset
|
||||||
= Utils::findOrDefault(project->presetsData().configurePresets,
|
= Utils::findOrDefault(project->presetsData().configurePresets,
|
||||||
[presetName](const PresetsDetails::ConfigurePreset &preset) {
|
[presetName](const PresetsDetails::ConfigurePreset &preset) {
|
||||||
|
@@ -209,12 +209,51 @@ void CMakeProject::readPresets()
|
|||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::function<void(Internal::PresetsData & presetData, Utils::FilePaths & inclueStack)>
|
||||||
|
resolveIncludes = [&](Internal::PresetsData &presetData, Utils::FilePaths &includeStack) {
|
||||||
|
if (presetData.include) {
|
||||||
|
for (const QString &path : presetData.include.value()) {
|
||||||
|
Utils::FilePath includePath = Utils::FilePath::fromUserInput(path);
|
||||||
|
if (!includePath.isAbsolutePath())
|
||||||
|
includePath = presetData.fileDir.resolvePath(path);
|
||||||
|
|
||||||
|
Internal::PresetsData includeData = parsePreset(includePath);
|
||||||
|
if (includeData.include) {
|
||||||
|
if (includeStack.contains(includePath)) {
|
||||||
|
TaskHub::addTask(BuildSystemTask(
|
||||||
|
Task::TaskType::Warning,
|
||||||
|
Tr::tr("Attempt to include %1 which was already parsed.")
|
||||||
|
.arg(includePath.path()),
|
||||||
|
Utils::FilePath(),
|
||||||
|
-1));
|
||||||
|
TaskHub::requestPopup();
|
||||||
|
} else {
|
||||||
|
resolveIncludes(includeData, includeStack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
presetData.configurePresets = includeData.configurePresets
|
||||||
|
+ presetData.configurePresets;
|
||||||
|
presetData.buildPresets = includeData.buildPresets + presetData.buildPresets;
|
||||||
|
|
||||||
|
includeStack << includePath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const Utils::FilePath cmakePresetsJson = projectDirectory().pathAppended("CMakePresets.json");
|
const Utils::FilePath cmakePresetsJson = projectDirectory().pathAppended("CMakePresets.json");
|
||||||
const Utils::FilePath cmakeUserPresetsJson = projectDirectory().pathAppended("CMakeUserPresets.json");
|
const Utils::FilePath cmakeUserPresetsJson = projectDirectory().pathAppended("CMakeUserPresets.json");
|
||||||
|
|
||||||
Internal::PresetsData cmakePresetsData = parsePreset(cmakePresetsJson);
|
Internal::PresetsData cmakePresetsData = parsePreset(cmakePresetsJson);
|
||||||
Internal::PresetsData cmakeUserPresetsData = parsePreset(cmakeUserPresetsJson);
|
Internal::PresetsData cmakeUserPresetsData = parsePreset(cmakeUserPresetsJson);
|
||||||
|
|
||||||
|
// resolve the include
|
||||||
|
Utils::FilePaths includeStack = {cmakePresetsJson};
|
||||||
|
resolveIncludes(cmakePresetsData, includeStack);
|
||||||
|
|
||||||
|
includeStack = {cmakeUserPresetsJson};
|
||||||
|
resolveIncludes(cmakeUserPresetsData, includeStack);
|
||||||
|
|
||||||
m_presetsData = combinePresets(cmakePresetsData, cmakeUserPresetsData);
|
m_presetsData = combinePresets(cmakePresetsData, cmakeUserPresetsData);
|
||||||
setupBuildPresets(m_presetsData);
|
setupBuildPresets(m_presetsData);
|
||||||
}
|
}
|
||||||
|
@@ -710,7 +710,10 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
|||||||
data->cmakePresetDefaultConfigHash
|
data->cmakePresetDefaultConfigHash
|
||||||
= CMakeConfigurationKitAspect::computeDefaultConfigHash(config, data->cmakeBinary);
|
= CMakeConfigurationKitAspect::computeDefaultConfigHash(config, data->cmakeBinary);
|
||||||
|
|
||||||
QByteArrayList buildConfigurationTypes = {cache.valueOf("CMAKE_BUILD_TYPE")};
|
QString cmakeBuildType = QString::fromUtf8(cache.valueOf("CMAKE_BUILD_TYPE"));
|
||||||
|
CMakePresets::Macros::expand(configurePreset, env, projectDirectory(), cmakeBuildType);
|
||||||
|
|
||||||
|
QByteArrayList buildConfigurationTypes = {cmakeBuildType.toUtf8()};
|
||||||
if (buildConfigurationTypes.front().isEmpty()) {
|
if (buildConfigurationTypes.front().isEmpty()) {
|
||||||
buildConfigurationTypes.clear();
|
buildConfigurationTypes.clear();
|
||||||
QByteArray buildConfigurationTypesString = cache.valueOf("CMAKE_CONFIGURATION_TYPES");
|
QByteArray buildConfigurationTypesString = cache.valueOf("CMAKE_CONFIGURATION_TYPES");
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
#include <utils/environment.h>
|
#include <utils/environment.h>
|
||||||
#include <utils/filepath.h>
|
#include <utils/filepath.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
|
#include <utils/osspecificaspects.h>
|
||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
|
|
||||||
@@ -40,10 +41,13 @@ static void expandAllButEnv(const PresetsDetails::ConfigurePreset &preset,
|
|||||||
value.replace("${sourceDirName}", sourceDirectory.fileName());
|
value.replace("${sourceDirName}", sourceDirectory.fileName());
|
||||||
|
|
||||||
value.replace("${presetName}", preset.name);
|
value.replace("${presetName}", preset.name);
|
||||||
|
value.replace("${fileDir}", preset.fileDir.path());
|
||||||
if (preset.generator)
|
if (preset.generator)
|
||||||
value.replace("${generator}", preset.generator.value());
|
value.replace("${generator}", preset.generator.value());
|
||||||
|
|
||||||
value.replace("${hostSystemName}", getHostSystemName(sourceDirectory.osType()));
|
value.replace("${hostSystemName}", getHostSystemName(sourceDirectory.osType()));
|
||||||
|
value.replace("${pathListSep}",
|
||||||
|
Utils::OsSpecificAspects::pathListSeparator(sourceDirectory.osType()));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void expandAllButEnv(const PresetsDetails::BuildPreset &preset,
|
static void expandAllButEnv(const PresetsDetails::BuildPreset &preset,
|
||||||
@@ -53,10 +57,13 @@ static void expandAllButEnv(const PresetsDetails::BuildPreset &preset,
|
|||||||
value.replace("${dollar}", "$");
|
value.replace("${dollar}", "$");
|
||||||
|
|
||||||
value.replace("${sourceDir}", sourceDirectory.toString());
|
value.replace("${sourceDir}", sourceDirectory.toString());
|
||||||
|
value.replace("${fileDir}", preset.fileDir.path());
|
||||||
value.replace("${sourceParentDir}", sourceDirectory.parentDir().toString());
|
value.replace("${sourceParentDir}", sourceDirectory.parentDir().toString());
|
||||||
value.replace("${sourceDirName}", sourceDirectory.fileName());
|
value.replace("${sourceDirName}", sourceDirectory.fileName());
|
||||||
|
|
||||||
value.replace("${presetName}", preset.name);
|
value.replace("${presetName}", preset.name);
|
||||||
|
value.replace("${pathListSep}",
|
||||||
|
Utils::OsSpecificAspects::pathListSeparator(sourceDirectory.osType()));
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString expandMacroEnv(const QString ¯oPrefix,
|
static QString expandMacroEnv(const QString ¯oPrefix,
|
||||||
|
@@ -36,6 +36,22 @@ bool parseCMakeMinimumRequired(const QJsonValue &jsonValue, QVersionNumber &vers
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<QStringList> parseInclude(const QJsonValue &jsonValue)
|
||||||
|
{
|
||||||
|
std::optional<QStringList> includes;
|
||||||
|
|
||||||
|
if (!jsonValue.isUndefined()) {
|
||||||
|
if (jsonValue.isArray()) {
|
||||||
|
includes = QStringList();
|
||||||
|
const QJsonArray includeArray = jsonValue.toArray();
|
||||||
|
for (const QJsonValue &includeValue : includeArray)
|
||||||
|
includes.value() << includeValue.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return includes;
|
||||||
|
}
|
||||||
|
|
||||||
std::optional<PresetsDetails::Condition> parseCondition(const QJsonValue &jsonValue)
|
std::optional<PresetsDetails::Condition> parseCondition(const QJsonValue &jsonValue)
|
||||||
{
|
{
|
||||||
std::optional<PresetsDetails::Condition> condition;
|
std::optional<PresetsDetails::Condition> condition;
|
||||||
@@ -133,7 +149,8 @@ std::optional<PresetsDetails::Condition> parseCondition(const QJsonValue &jsonVa
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool parseConfigurePresets(const QJsonValue &jsonValue,
|
bool parseConfigurePresets(const QJsonValue &jsonValue,
|
||||||
QList<PresetsDetails::ConfigurePreset> &configurePresets)
|
QList<PresetsDetails::ConfigurePreset> &configurePresets,
|
||||||
|
const Utils::FilePath &fileDir)
|
||||||
{
|
{
|
||||||
// The whole section is optional
|
// The whole section is optional
|
||||||
if (jsonValue.isUndefined())
|
if (jsonValue.isUndefined())
|
||||||
@@ -151,6 +168,7 @@ bool parseConfigurePresets(const QJsonValue &jsonValue,
|
|||||||
PresetsDetails::ConfigurePreset preset;
|
PresetsDetails::ConfigurePreset preset;
|
||||||
|
|
||||||
preset.name = object.value("name").toString();
|
preset.name = object.value("name").toString();
|
||||||
|
preset.fileDir = fileDir;
|
||||||
preset.hidden = object.value("hidden").toBool();
|
preset.hidden = object.value("hidden").toBool();
|
||||||
|
|
||||||
QJsonValue inherits = object.value("inherits");
|
QJsonValue inherits = object.value("inherits");
|
||||||
@@ -291,7 +309,8 @@ bool parseConfigurePresets(const QJsonValue &jsonValue,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool parseBuildPresets(const QJsonValue &jsonValue,
|
bool parseBuildPresets(const QJsonValue &jsonValue,
|
||||||
QList<PresetsDetails::BuildPreset> &buildPresets)
|
QList<PresetsDetails::BuildPreset> &buildPresets,
|
||||||
|
const Utils::FilePath &fileDir)
|
||||||
{
|
{
|
||||||
// The whole section is optional
|
// The whole section is optional
|
||||||
if (jsonValue.isUndefined())
|
if (jsonValue.isUndefined())
|
||||||
@@ -309,6 +328,7 @@ bool parseBuildPresets(const QJsonValue &jsonValue,
|
|||||||
PresetsDetails::BuildPreset preset;
|
PresetsDetails::BuildPreset preset;
|
||||||
|
|
||||||
preset.name = object.value("name").toString();
|
preset.name = object.value("name").toString();
|
||||||
|
preset.fileDir = fileDir;
|
||||||
preset.hidden = object.value("hidden").toBool();
|
preset.hidden = object.value("hidden").toBool();
|
||||||
|
|
||||||
QJsonValue inherits = object.value("inherits");
|
QJsonValue inherits = object.value("inherits");
|
||||||
@@ -416,6 +436,8 @@ bool PresetsParser::parse(const Utils::FilePath &jsonFile, QString &errorMessage
|
|||||||
|
|
||||||
QJsonObject root = jsonDoc.object();
|
QJsonObject root = jsonDoc.object();
|
||||||
|
|
||||||
|
m_presetsData.fileDir = jsonFile.parentDir();
|
||||||
|
|
||||||
if (!parseVersion(root.value("version"), m_presetsData.version)) {
|
if (!parseVersion(root.value("version"), m_presetsData.version)) {
|
||||||
errorMessage = Tr::tr("Invalid \"version\" in file \"%1\".").arg(jsonFile.fileName());
|
errorMessage = Tr::tr("Invalid \"version\" in file \"%1\".").arg(jsonFile.fileName());
|
||||||
return false;
|
return false;
|
||||||
@@ -426,14 +448,21 @@ bool PresetsParser::parse(const Utils::FilePath &jsonFile, QString &errorMessage
|
|||||||
m_presetsData.cmakeMinimimRequired);
|
m_presetsData.cmakeMinimimRequired);
|
||||||
|
|
||||||
// optional
|
// optional
|
||||||
if (!parseConfigurePresets(root.value("configurePresets"), m_presetsData.configurePresets)) {
|
m_presetsData.include = parseInclude(root.value("include"));
|
||||||
|
|
||||||
|
// optional
|
||||||
|
if (!parseConfigurePresets(root.value("configurePresets"),
|
||||||
|
m_presetsData.configurePresets,
|
||||||
|
jsonFile.parentDir())) {
|
||||||
errorMessage
|
errorMessage
|
||||||
= Tr::tr("Invalid \"configurePresets\" section in %1 file").arg(jsonFile.fileName());
|
= Tr::tr("Invalid \"configurePresets\" section in %1 file").arg(jsonFile.fileName());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// optional
|
// optional
|
||||||
if (!parseBuildPresets(root.value("buildPresets"), m_presetsData.buildPresets)) {
|
if (!parseBuildPresets(root.value("buildPresets"),
|
||||||
|
m_presetsData.buildPresets,
|
||||||
|
jsonFile.parentDir())) {
|
||||||
errorMessage
|
errorMessage
|
||||||
= Tr::tr("Invalid \"buildPresets\" section in %1 file").arg(jsonFile.fileName());
|
= Tr::tr("Invalid \"buildPresets\" section in %1 file").arg(jsonFile.fileName());
|
||||||
return false;
|
return false;
|
||||||
|
@@ -90,6 +90,7 @@ public:
|
|||||||
void inheritFrom(const ConfigurePreset &other);
|
void inheritFrom(const ConfigurePreset &other);
|
||||||
|
|
||||||
QString name;
|
QString name;
|
||||||
|
Utils::FilePath fileDir;
|
||||||
std::optional<bool> hidden = false;
|
std::optional<bool> hidden = false;
|
||||||
std::optional<QStringList> inherits;
|
std::optional<QStringList> inherits;
|
||||||
std::optional<Condition> condition;
|
std::optional<Condition> condition;
|
||||||
@@ -115,6 +116,7 @@ public:
|
|||||||
void inheritFrom(const BuildPreset &other);
|
void inheritFrom(const BuildPreset &other);
|
||||||
|
|
||||||
QString name;
|
QString name;
|
||||||
|
Utils::FilePath fileDir;
|
||||||
std::optional<bool> hidden = false;
|
std::optional<bool> hidden = false;
|
||||||
std::optional<QStringList> inherits;
|
std::optional<QStringList> inherits;
|
||||||
std::optional<Condition> condition;
|
std::optional<Condition> condition;
|
||||||
@@ -140,6 +142,8 @@ public:
|
|||||||
int version = 0;
|
int version = 0;
|
||||||
QVersionNumber cmakeMinimimRequired;
|
QVersionNumber cmakeMinimimRequired;
|
||||||
QHash<QString, QString> vendor;
|
QHash<QString, QString> vendor;
|
||||||
|
std::optional<QStringList> include;
|
||||||
|
Utils::FilePath fileDir;
|
||||||
QList<PresetsDetails::ConfigurePreset> configurePresets;
|
QList<PresetsDetails::ConfigurePreset> configurePresets;
|
||||||
QList<PresetsDetails::BuildPreset> buildPresets;
|
QList<PresetsDetails::BuildPreset> buildPresets;
|
||||||
};
|
};
|
||||||
|
@@ -3941,10 +3941,10 @@ void GdbEngine::handleGdbStarted()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!rp.sysRoot.isEmpty()) {
|
if (!rp.sysRoot.isEmpty()) {
|
||||||
runCommand({"set sysroot " + rp.sysRoot.toString()});
|
runCommand({"set sysroot " + rp.sysRoot.path()});
|
||||||
// sysroot is not enough to correctly locate the sources, so explicitly
|
// sysroot is not enough to correctly locate the sources, so explicitly
|
||||||
// relocate the most likely place for the debug source
|
// relocate the most likely place for the debug source
|
||||||
runCommand({"set substitute-path /usr/src " + rp.sysRoot.toString() + "/usr/src"});
|
runCommand({"set substitute-path /usr/src " + rp.sysRoot.path() + "/usr/src"});
|
||||||
}
|
}
|
||||||
|
|
||||||
//QByteArray ba = QFileInfo(sp.dumperLibrary).path().toLocal8Bit();
|
//QByteArray ba = QFileInfo(sp.dumperLibrary).path().toLocal8Bit();
|
||||||
@@ -4139,7 +4139,7 @@ void GdbEngine::handleDebugInfoLocation(const DebuggerResponse &response)
|
|||||||
const FilePath debugInfoLocation = runParameters().debugInfoLocation;
|
const FilePath debugInfoLocation = runParameters().debugInfoLocation;
|
||||||
if (!debugInfoLocation.isEmpty() && debugInfoLocation.exists()) {
|
if (!debugInfoLocation.isEmpty() && debugInfoLocation.exists()) {
|
||||||
const QString curDebugInfoLocations = response.consoleStreamOutput.split('"').value(1);
|
const QString curDebugInfoLocations = response.consoleStreamOutput.split('"').value(1);
|
||||||
QString cmd = "set debug-file-directory " + debugInfoLocation.toString();
|
QString cmd = "set debug-file-directory " + debugInfoLocation.path();
|
||||||
if (!curDebugInfoLocations.isEmpty())
|
if (!curDebugInfoLocations.isEmpty())
|
||||||
cmd += HostOsInfo::pathListSeparator() + curDebugInfoLocations;
|
cmd += HostOsInfo::pathListSeparator() + curDebugInfoLocations;
|
||||||
runCommand({cmd});
|
runCommand({cmd});
|
||||||
@@ -4799,7 +4799,7 @@ void GdbEngine::handleTargetExtendedRemote(const DebuggerResponse &response)
|
|||||||
runCommand({"attach " + QString::number(runParameters().attachPID.pid()),
|
runCommand({"attach " + QString::number(runParameters().attachPID.pid()),
|
||||||
CB(handleTargetExtendedAttach)});
|
CB(handleTargetExtendedAttach)});
|
||||||
} else if (!runParameters().inferior.command.isEmpty()) {
|
} else if (!runParameters().inferior.command.isEmpty()) {
|
||||||
runCommand({"-gdb-set remote exec-file " + runParameters().inferior.command.executable().toString(),
|
runCommand({"-gdb-set remote exec-file " + runParameters().inferior.command.executable().path(),
|
||||||
CB(handleTargetExtendedAttach)});
|
CB(handleTargetExtendedAttach)});
|
||||||
} else {
|
} else {
|
||||||
const QString title = Tr::tr("No Remote Executable or Process ID Specified");
|
const QString title = Tr::tr("No Remote Executable or Process ID Specified");
|
||||||
|
@@ -53,9 +53,9 @@ McuPackage::McuPackage(const SettingsHandler::Ptr &settingsHandler,
|
|||||||
, m_addToSystemPath(addToSystemPath)
|
, m_addToSystemPath(addToSystemPath)
|
||||||
, m_valueType(valueType)
|
, m_valueType(valueType)
|
||||||
{
|
{
|
||||||
m_path = FilePath::fromUserInput(qtcEnvironmentVariable(m_environmentVariableName));
|
m_path = this->settingsHandler->getPath(settingsKey, QSettings::UserScope, m_defaultPath);
|
||||||
if (!m_path.exists()) {
|
if (m_path.isEmpty()) {
|
||||||
m_path = this->settingsHandler->getPath(settingsKey, QSettings::UserScope, m_defaultPath);
|
m_path = FilePath::fromUserInput(qtcEnvironmentVariable(m_environmentVariableName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,92 +1,14 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 4,
|
||||||
"cmakeMinimumRequired": {
|
"cmakeMinimumRequired": {
|
||||||
"major": 3,
|
"major": 3,
|
||||||
"minor": 21,
|
"minor": 23,
|
||||||
"patch": 0
|
"patch": 0
|
||||||
},
|
},
|
||||||
|
"include": [
|
||||||
|
"mingw.json", "msvc.json"
|
||||||
|
],
|
||||||
"configurePresets": [
|
"configurePresets": [
|
||||||
{
|
|
||||||
"name": "mingw",
|
|
||||||
"displayName": "MinGW 11.2.0",
|
|
||||||
"generator": "Ninja",
|
|
||||||
"installDir": "../inst-${presetName}",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_PREFIX_PATH": "$env{SYSTEMDRIVE}/Qt/6.4.2/mingw_64"
|
|
||||||
},
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Windows"
|
|
||||||
},
|
|
||||||
"environment": {
|
|
||||||
"PATH": "$env{SYSTEMDRIVE}/Qt/Tools/mingw1120_64/bin;$penv{PATH}"
|
|
||||||
},
|
|
||||||
"debug" : {
|
|
||||||
"find" : true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mingw-make",
|
|
||||||
"binaryDir": "${sourceDir}/build-${presetName}-release",
|
|
||||||
"displayName": "MinGW 11.2.0 Makefiles",
|
|
||||||
"generator": "MinGW Makefiles",
|
|
||||||
"inherits" : "mingw",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_BUILD_TYPE": "Release",
|
|
||||||
"CMAKE_PREFIX_PATH": "$env{SystemDrive}/Qt/6.4.2/mingw_64"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "visualc",
|
|
||||||
"displayName": "Visual C++ 2019 x64",
|
|
||||||
"generator": "Visual Studio 16 2019",
|
|
||||||
"binaryDir": "${sourceDir}/build-${presetName}",
|
|
||||||
"architecture" : {
|
|
||||||
"value": "x64"
|
|
||||||
},
|
|
||||||
"toolchainFile" : "../cmakepresets/msvc-toolchain.cmake",
|
|
||||||
"condition" : {
|
|
||||||
"type": "not",
|
|
||||||
"condition": {
|
|
||||||
"type": "notEquals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "$env{HOST_SYSTEM_NAME}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"environment" : {
|
|
||||||
"HOST_SYSTEM_NAME": "Windows",
|
|
||||||
"QT_VERSION": "6.4.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "visualc-ninja",
|
|
||||||
"displayName": "Visual C++ 2019 x64 Ninja",
|
|
||||||
"generator": "Ninja",
|
|
||||||
"binaryDir": "${sourceDir}/build-${presetName}",
|
|
||||||
"toolchainFile" : "c:/Qt/6.4.2/msvc2019_64/lib/cmake/Qt6/qt.toolchain.cmake",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_BUILD_TYPE": "Release"
|
|
||||||
},
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Windows"
|
|
||||||
},
|
|
||||||
"environment" : {
|
|
||||||
"VCToolsVersion": "14.29.30133",
|
|
||||||
"WindowsSDKVersion" : "10.0.22000.0",
|
|
||||||
"VCArch": "x64",
|
|
||||||
"VCToolsInstallDir": "$env{ProgramFiles(x86)}/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/$env{VCToolsVersion}",
|
|
||||||
"WindowsSdkDir" : "$env{ProgramFiles(x86)}/Windows Kits/10",
|
|
||||||
"WindowsSdkIncVerDir": "$env{WindowsSdkDir}/Include/$env{WindowsSDKVersion}",
|
|
||||||
"WindowsSdkLibVerDir": "$env{WindowsSdkDir}/Lib/$env{WindowsSDKVersion}",
|
|
||||||
|
|
||||||
"INCLUDE": "$env{VCToolsInstallDir}/ATLMFC/include;$env{VCToolsInstallDir}/include;$env{WindowsSdkIncVerDir}/ucrt;$env{WindowsSdkIncVerDir}/shared;$env{WindowsSdkIncVerDir}/um;$env{WindowsSdkIncVerDir}/winrt;$env{WindowsSdkIncVerDir}/cppwinrt",
|
|
||||||
"LIB": "$env{VCToolsInstallDir}/ATLMFC/lib/$env{VCArch};$env{VCToolsInstallDir}/lib/$env{VCArch};$env{WindowsSdkLibVerDir}/ucrt/$env{VCArch};$env{WindowsSdkLibVerDir}/um/$env{VCArch}",
|
|
||||||
"PATH": "$env{VCToolsInstallDir}/bin/HostX64/$env{VCArch};$env{WindowsSdkDir}/bin/$env{WindowsSDKVersion}/$env{VCArch};$penv{PATH}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "linux-gcc",
|
"name": "linux-gcc",
|
||||||
"displayName": "Linux GCC",
|
"displayName": "Linux GCC",
|
||||||
@@ -99,39 +21,5 @@
|
|||||||
"rhs": "Linux"
|
"rhs": "Linux"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"buildPresets": [
|
|
||||||
{
|
|
||||||
"name": "mingw",
|
|
||||||
"displayName": "MinGW default",
|
|
||||||
"configurePreset": "mingw",
|
|
||||||
"targets": "${sourceDirName}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mingw-verbose",
|
|
||||||
"inherits": "mingw",
|
|
||||||
"displayName": "MinGW verbose",
|
|
||||||
"verbose": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mingw-make",
|
|
||||||
"displayName": "MinGW make 4 CPUs",
|
|
||||||
"configurePreset": "mingw-make",
|
|
||||||
"jobs": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "visualc-debug",
|
|
||||||
"configurePreset": "visualc",
|
|
||||||
"configuration": "Debug"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "visualc-relwithdebinfo",
|
|
||||||
"inherits": "visualc-debug",
|
|
||||||
"configuration": "RelWithDebInfo"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "visualc-ninja",
|
|
||||||
"configurePreset": "visualc-ninja"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
61
tests/manual/cmakepresets/mingw.json
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"cmakeMinimumRequired": {
|
||||||
|
"major": 3,
|
||||||
|
"minor": 23,
|
||||||
|
"patch": 0
|
||||||
|
},
|
||||||
|
"configurePresets": [
|
||||||
|
{
|
||||||
|
"name": "mingw",
|
||||||
|
"displayName": "MinGW 11.2.0",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"installDir": "../inst-${presetName}",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_PREFIX_PATH": "$env{SYSTEMDRIVE}/Qt/6.4.2/mingw_64"
|
||||||
|
},
|
||||||
|
"condition": {
|
||||||
|
"type": "equals",
|
||||||
|
"lhs": "${hostSystemName}",
|
||||||
|
"rhs": "Windows"
|
||||||
|
},
|
||||||
|
"environment": {
|
||||||
|
"PATH": "$env{SYSTEMDRIVE}/Qt/Tools/mingw1120_64/bin;$penv{PATH}"
|
||||||
|
},
|
||||||
|
"debug" : {
|
||||||
|
"find" : true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mingw-make",
|
||||||
|
"binaryDir": "${sourceDir}/build-${presetName}-release",
|
||||||
|
"displayName": "MinGW 11.2.0 Makefiles",
|
||||||
|
"generator": "MinGW Makefiles",
|
||||||
|
"inherits" : "mingw",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Release",
|
||||||
|
"CMAKE_PREFIX_PATH": "$env{SystemDrive}/Qt/6.4.2/mingw_64"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buildPresets": [
|
||||||
|
{
|
||||||
|
"name": "mingw",
|
||||||
|
"displayName": "MinGW default",
|
||||||
|
"configurePreset": "mingw",
|
||||||
|
"targets": "${sourceDirName}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mingw-verbose",
|
||||||
|
"inherits": "mingw",
|
||||||
|
"displayName": "MinGW verbose",
|
||||||
|
"verbose": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mingw-make",
|
||||||
|
"displayName": "MinGW make 4 CPUs",
|
||||||
|
"configurePreset": "mingw-make",
|
||||||
|
"jobs": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
76
tests/manual/cmakepresets/msvc.json
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"cmakeMinimumRequired": {
|
||||||
|
"major": 3,
|
||||||
|
"minor": 23,
|
||||||
|
"patch": 0
|
||||||
|
},
|
||||||
|
"configurePresets": [
|
||||||
|
{
|
||||||
|
"name": "visualc",
|
||||||
|
"displayName": "Visual C++ 2019 x64",
|
||||||
|
"generator": "Visual Studio 16 2019",
|
||||||
|
"binaryDir": "${sourceDir}/build-${presetName}",
|
||||||
|
"architecture" : {
|
||||||
|
"value": "x64"
|
||||||
|
},
|
||||||
|
"toolchainFile" : "../cmakepresets/msvc-toolchain.cmake",
|
||||||
|
"condition" : {
|
||||||
|
"type": "not",
|
||||||
|
"condition": {
|
||||||
|
"type": "notEquals",
|
||||||
|
"lhs": "${hostSystemName}",
|
||||||
|
"rhs": "$env{HOST_SYSTEM_NAME}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"environment" : {
|
||||||
|
"HOST_SYSTEM_NAME": "Windows",
|
||||||
|
"QT_VERSION": "6.4.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "visualc-ninja",
|
||||||
|
"displayName": "Visual C++ 2019 x64 Ninja",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"binaryDir": "${sourceDir}/build-${presetName}",
|
||||||
|
"toolchainFile" : "c:/Qt/6.4.2/msvc2019_64/lib/cmake/Qt6/qt.toolchain.cmake",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Release"
|
||||||
|
},
|
||||||
|
"condition": {
|
||||||
|
"type": "equals",
|
||||||
|
"lhs": "${hostSystemName}",
|
||||||
|
"rhs": "Windows"
|
||||||
|
},
|
||||||
|
"environment" : {
|
||||||
|
"VCToolsVersion": "14.29.30133",
|
||||||
|
"WindowsSDKVersion" : "10.0.22000.0",
|
||||||
|
"VCArch": "x64",
|
||||||
|
"VCToolsInstallDir": "$env{ProgramFiles(x86)}/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/$env{VCToolsVersion}",
|
||||||
|
"WindowsSdkDir" : "$env{ProgramFiles(x86)}/Windows Kits/10",
|
||||||
|
"WindowsSdkIncVerDir": "$env{WindowsSdkDir}/Include/$env{WindowsSDKVersion}",
|
||||||
|
"WindowsSdkLibVerDir": "$env{WindowsSdkDir}/Lib/$env{WindowsSDKVersion}",
|
||||||
|
|
||||||
|
"INCLUDE": "$env{VCToolsInstallDir}/ATLMFC/include;$env{VCToolsInstallDir}/include;$env{WindowsSdkIncVerDir}/ucrt;$env{WindowsSdkIncVerDir}/shared;$env{WindowsSdkIncVerDir}/um;$env{WindowsSdkIncVerDir}/winrt;$env{WindowsSdkIncVerDir}/cppwinrt",
|
||||||
|
"LIB": "$env{VCToolsInstallDir}/ATLMFC/lib/$env{VCArch};$env{VCToolsInstallDir}/lib/$env{VCArch};$env{WindowsSdkLibVerDir}/ucrt/$env{VCArch};$env{WindowsSdkLibVerDir}/um/$env{VCArch}",
|
||||||
|
"PATH": "$env{VCToolsInstallDir}/bin/HostX64/$env{VCArch};$env{WindowsSdkDir}/bin/$env{WindowsSDKVersion}/$env{VCArch};$penv{PATH}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buildPresets": [
|
||||||
|
{
|
||||||
|
"name": "visualc-debug",
|
||||||
|
"configurePreset": "visualc",
|
||||||
|
"configuration": "Debug"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "visualc-relwithdebinfo",
|
||||||
|
"inherits": "visualc-debug",
|
||||||
|
"configuration": "RelWithDebInfo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "visualc-ninja",
|
||||||
|
"configurePreset": "visualc-ninja"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -2172,7 +2172,7 @@ namespace plugin {
|
|||||||
|
|
||||||
void testPlugin()
|
void testPlugin()
|
||||||
{
|
{
|
||||||
QString dir = QDir::currentPath();
|
QString dir = QApplication::applicationDirPath();
|
||||||
#ifdef Q_OS_LINUX
|
#ifdef Q_OS_LINUX
|
||||||
QLibrary lib(dir + "/libsimple_test_plugin.so");
|
QLibrary lib(dir + "/libsimple_test_plugin.so");
|
||||||
#endif
|
#endif
|
||||||
|