summaryrefslogtreecommitdiff
path: root/doc/qtcreator
diff options
context:
space:
mode:
Diffstat (limited to 'doc/qtcreator')
-rw-r--r--doc/qtcreator/images/qtcreator-build-settings-cmake-configure.webpbin0 -> 5270 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-build-settings-cmake-current.webpbin0 -> 16632 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-build-settings-cmake-initial.webpbin0 -> 12268 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-clang-tidy-view.webpbin0 -> 3538 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-cmake-build-settings-initial.pngbin24618 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-cmake-build-settings.pngbin21459 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-files-to-analyze.pngbin5402 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-files-to-analyze.webpbin0 -> 4454 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-pprunsettings.pngbin13198 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-cmake-formatter.webpbin0 -> 4310 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-cmake-general.pngbin4094 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-cmake-general.webpbin0 -> 3968 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-cmake-tools.pngbin17395 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-cmake-tools.webpbin0 -> 8720 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-settings-run-desktop.webpbin0 -> 10152 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-settings-run.pngbin24017 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-settings-run.webpbin0 -> 19066 bytes
-rw-r--r--doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc61
-rw-r--r--doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc168
-rw-r--r--doc/qtcreator/src/cmake/creator-projects-cmake.qdoc44
-rw-r--r--doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc39
-rw-r--r--doc/qtcreator/src/linux-mobile/b2qtdev.qdoc52
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc5
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-glossary.qdoc3
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc4
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc4
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc27
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc4
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc11
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc6
-rw-r--r--doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc3
31 files changed, 286 insertions, 145 deletions
diff --git a/doc/qtcreator/images/qtcreator-build-settings-cmake-configure.webp b/doc/qtcreator/images/qtcreator-build-settings-cmake-configure.webp
new file mode 100644
index 0000000000..4b38b162f4
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-build-settings-cmake-configure.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-build-settings-cmake-current.webp b/doc/qtcreator/images/qtcreator-build-settings-cmake-current.webp
new file mode 100644
index 0000000000..24278f8dcc
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-build-settings-cmake-current.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-build-settings-cmake-initial.webp b/doc/qtcreator/images/qtcreator-build-settings-cmake-initial.webp
new file mode 100644
index 0000000000..cee22f09f6
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-build-settings-cmake-initial.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-clang-tidy-view.webp b/doc/qtcreator/images/qtcreator-clang-tidy-view.webp
new file mode 100644
index 0000000000..1a914a683a
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-clang-tidy-view.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-cmake-build-settings-initial.png b/doc/qtcreator/images/qtcreator-cmake-build-settings-initial.png
deleted file mode 100644
index 3392c8ee67..0000000000
--- a/doc/qtcreator/images/qtcreator-cmake-build-settings-initial.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-cmake-build-settings.png b/doc/qtcreator/images/qtcreator-cmake-build-settings.png
deleted file mode 100644
index 9c88b064d6..0000000000
--- a/doc/qtcreator/images/qtcreator-cmake-build-settings.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-files-to-analyze.png b/doc/qtcreator/images/qtcreator-files-to-analyze.png
deleted file mode 100644
index add972f337..0000000000
--- a/doc/qtcreator/images/qtcreator-files-to-analyze.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-files-to-analyze.webp b/doc/qtcreator/images/qtcreator-files-to-analyze.webp
new file mode 100644
index 0000000000..c219e48ec8
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-files-to-analyze.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-pprunsettings.png b/doc/qtcreator/images/qtcreator-pprunsettings.png
deleted file mode 100644
index dab1d9e1cf..0000000000
--- a/doc/qtcreator/images/qtcreator-pprunsettings.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-cmake-formatter.webp b/doc/qtcreator/images/qtcreator-preferences-cmake-formatter.webp
new file mode 100644
index 0000000000..a61b2d7270
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-preferences-cmake-formatter.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-cmake-general.png b/doc/qtcreator/images/qtcreator-preferences-cmake-general.png
deleted file mode 100644
index fc096178c7..0000000000
--- a/doc/qtcreator/images/qtcreator-preferences-cmake-general.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-cmake-general.webp b/doc/qtcreator/images/qtcreator-preferences-cmake-general.webp
new file mode 100644
index 0000000000..2eef4e57ee
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-preferences-cmake-general.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-cmake-tools.png b/doc/qtcreator/images/qtcreator-preferences-cmake-tools.png
deleted file mode 100644
index c7abce1977..0000000000
--- a/doc/qtcreator/images/qtcreator-preferences-cmake-tools.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-cmake-tools.webp b/doc/qtcreator/images/qtcreator-preferences-cmake-tools.webp
new file mode 100644
index 0000000000..2e5e7d4ef9
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-preferences-cmake-tools.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-settings-run-desktop.webp b/doc/qtcreator/images/qtcreator-settings-run-desktop.webp
new file mode 100644
index 0000000000..989eaee8a7
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-settings-run-desktop.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-settings-run.png b/doc/qtcreator/images/qtcreator-settings-run.png
deleted file mode 100644
index 3df81e9daf..0000000000
--- a/doc/qtcreator/images/qtcreator-settings-run.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-settings-run.webp b/doc/qtcreator/images/qtcreator-settings-run.webp
new file mode 100644
index 0000000000..b998f92bdb
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-settings-run.webp
Binary files differ
diff --git a/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc b/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
index 5723591dc9..06f5e6275b 100644
--- a/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
+++ b/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
@@ -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
// **********************************************************************
@@ -31,73 +31,74 @@
\endlist
\note The Clang static analyzer checks are a part of Clang-Tidy. To use
- the checks you must create a custom configuration for the Clang tools and
+ the checks, you must create a custom configuration for the Clang tools and
enable them for Clang-Tidy.
- Clang tools are delivered and installed with \QC, and therefore you do not
- need to set them up separately.
+ \QC comes with the Clang tools, so you do not need to set them up separately.
In addition to running the tools to collect diagnostics, you can select
\inlineimage icons/open.png
to load diagnostics from \l{https://yaml.org/}{YAML} files that you exported
using the \c {-export fixes} option.
- \section1 Running Clang Tools
+ \section1 Running Clang-Tidy and Clazy
- To run the Clang tools to analyze the currently open file:
+ To run Clang-Tidy or Clazy to analyze the currently open file:
\list
\li Select the \inlineimage icons/debugger_singleinstructionmode.png
- (\uicontrol {Analyze File}) button on the editor toolbar.
+ (\uicontrol {Analyze File}) button on the editor toolbar, and then
+ select the tool: \uicontrol {Clang-Tidy} or \uicontrol {Clazy}.
\li Select \uicontrol Tools > \uicontrol {C++} >
- \uicontrol {Analyze Current File}.
+ \uicontrol {Analyze Current File with Clang-Tidy} or
+ \uicontrol {Analyze Current File with Clazy}.
\endlist
- To run the Clang tools to analyze an open project:
+ To run Clang-Tidy or Clazy to analyze an open project:
\list 1
- \li Select \uicontrol Analyze > \uicontrol {Clang-Tidy and Clazy}.
-
- \image qtcreator-files-to-analyze.png "Files to Analyze dialog"
+ \li Select \uicontrol Analyze > \uicontrol {Clang-Tidy} or
+ \uicontrol {Clazy}.
\li Select the files to apply the checks to.
+ \image qtcreator-files-to-analyze.webp {Files to Analyze dialog}
+
\li Select \uicontrol Analyze to start the checks.
\endlist
- The found issues are displayed in the \uicontrol {Clang-Tidy and Clazy}
- view:
+ The \uicontrol {Clang-Tidy} or \uicontrol {Clazy} view shows the issues:
- \image qtcreator-clang-tools.png "Clang-Tidy and Clazy view"
+ \image qtcreator-clang-tidy-view.webp {Clang-Tidy view}
\note If you select \uicontrol Debug in the mode selector to open the
- \uicontrol Debug mode and then select \uicontrol {Clang-Tidy and Clazy},
- you must select the \inlineimage icons/qtcreator-analyze-start-button.png
- (\uicontrol Start) button to open the \uicontrol {Files to Analyze}
- dialog.
+ \uicontrol Debug mode and then select \uicontrol {Clang-Tidy} or
+ \uicontrol {Clazy}, you must select the
+ \inlineimage icons/qtcreator-analyze-start-button.png
+ (\uicontrol Start) button to open the \uicontrol {Files to Analyze} dialog.
Double-click an issue to move to the location where the issue appears in
the code editor.
If a fixit exists for an issue, you can select the check box next to the
issue to schedule it for fixing. Select the \uicontrol {Select Fixits}
- check box to select all fixits. You can see the status of an issue by
- hovering the mouse pointer over the icon next to the check box.
+ check box to select all fixits. To see the status of an issue, hover the
+ mouse pointer over the icon next to the check box.
To see more information about an issue that is marked with the
\inlineimage icons/refactormarker.png
icon, hover the mouse pointer over the line.
- You can disable particular type of checks either globally or for a
- particular project by selecting \uicontrol {Disable This Check} or
+ To disable checks of a particular type either globally or for a
+ particular project, select \uicontrol {Disable This Check} or
\uicontrol {Disable These Checks} in the context menu.
Select the \inlineimage icons/settings.png
button to customize Clang diagnostics for the current project.
- \image qtcreator-clang-tools-options-customized.png "Clang Tools customized settings"
+ \image qtcreator-clang-tools-options-customized.png {Clang Tools customized settings}
To restore the global settings, select \uicontrol {Restore Global Settings}.
To view and modify the global settings, select the link in
@@ -113,14 +114,14 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Analyzer >
\uicontrol {Clang Tools}.
- \image qtcreator-clang-tools-options.png "Clang Tools preferences"
+ \image qtcreator-clang-tools-options.png {Clang Tools preferences}
\li In the \uicontrol Clang-Tidy and \uicontrol Clazy-Standalone fields,
set the paths to the executables to use.
\li To build the project before running the Clang tools, select the
\uicontrol {Build the project before analysis} check box. The Clang
- tools do not require the project to be built before analysis, but
+ tools do not require that you build the project before analysis, but
they might display misleading warnings about files missing that are
generated during the build. For big projects, not building the
project might save some time.
@@ -137,11 +138,11 @@
\uicontrol {Diagnostic Configurations} dialog, where you can
select and edit the checks to perform.
- \image qtcreator-clang-tools-diagnostics-configuration.png "Diagnostics Configuration dialog"
+ \image qtcreator-clang-tools-diagnostics-configuration.png {Diagnostics Configuration dialog}
\li Select \uicontrol Copy to copy the selected diagnostics for editing.
- \image qtcreator-clang-copy-diagnostic-configuration.png "Copy Diagnostic Configuration dialog"
+ \image qtcreator-clang-copy-diagnostic-configuration.png {Copy Diagnostic Configuration dialog}
\li In the \uicontrol {Diagnostic configuration name} field, give the
configuration a name, and then select \uicontrol OK.
@@ -157,7 +158,7 @@
To filter the checks, enter a string in the
\uicontrol {Filter by name} field.
- \image qtcreator-clang-tidy.png "Clang-Tidy Checks tab"
+ \image qtcreator-clang-tidy.png {Clang-Tidy Checks tab}
For more information about the available checkers, see
\l{https://clang-analyzer.llvm.org/available_checks.html}
@@ -169,7 +170,7 @@
\li In the \uicontrol {Clazy Checks} tab, select the level of Clazy
checks to perform.
- \image qtcreator-clazy.png "Clazy Checks tab"
+ \image qtcreator-clazy.png {Clazy Checks tab}
\li In the \uicontrol Filters field, select topics to view
only checks related to those areas in the \uicontrol Checks field.
diff --git a/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc b/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc
index 1359eceda1..dac77727a8 100644
--- a/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc
+++ b/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc
@@ -16,42 +16,47 @@
the \l{Specifying Build Settings}{Build Settings} of the project.
Alternatively, you can use CMake presets to configure CMake.
- The \uicontrol Configuration field displays the effective CMake call that
- is constructed by using the values of the \uicontrol {Build directory} and
+ The \uicontrol Configure field displays the effective CMake call that
+ \QC constructs using the values of the \uicontrol {Build directory} and
\uicontrol {Build type} fields.
- \image qtcreator-cmake-build-settings-initial.png "CMake build settings"
-
- \uicontrol {Initial Configuration} lists the variables that are used to
- configure the CMake project for the first time. The default values that
- are inherited from the kit's CMake configuration are displayed in italic.
- The initial configuration list of variables is saved in the project's source
- directory as the \e CMakeLists.txt.user file.
-
- \uicontrol {Current Configuration} lists the CMake variables in the
- \c cmake-file-api JSON export in the \c {.cmake/api/v1/reply} directory.
- The variables that are inherited from the initial configuration are
- displayed in italic. Mismatched values are displayed in red.
-
- You can view and edit the actual values of the variables that are passed
- to CMake. Variable names are listed in the \uicontrol Key column and their
- current values in the \uicontrol Value column. For more information about
- the available variables, select \uicontrol Help in the context menu or see
- \l{CMake: cmake-variables(7)}. For more information about Qt-specific
- variables, see \l{CMake Variable Reference}.
+ \image qtcreator-build-settings-cmake-configure.webp {CMake configure command}
You can specify additional CMake options, such as \c {--find-debug},
\c {--trace-expand}, or \c {--warn-uninitialized}, in
\uicontrol {Additional CMake options}. For more information about
- the available options, click the link in the field name or see
- \l{CMake: cmake(1)}.
-
- After successfully running CMake, you can view and modify the current
- configuration in \uicontrol {Current Configuration}.
+ the options, click the link in the field name or see \l{CMake: cmake(1)}.
Select \uicontrol {Kit Configuration} to edit the CMake settings for the
build and run kit selected for the project.
+ \section1 Initial Configuration
+
+ \image qtcreator-build-settings-cmake-initial.webp {Initial CMake configuration}
+
+ \uicontrol {Initial Configuration} lists the variables that \QC uses to
+ configure the CMake project for the first time. It shows the default values
+ that come from the kit's CMake configuration in italics. \QC saves the
+ initial configuration list of variables in the project's source
+ directory as the \e CMakeLists.txt.user file.
+
+ \section1 Current Configuration
+
+ \image qtcreator-build-settings-cmake-current.webp {Current CMake configuration}
+
+ \uicontrol {Current Configuration} lists the CMake variables in the
+ \c cmake-file-api JSON export in the \c {.cmake/api/v1/reply} directory.
+ It shows the variables that come from the initial configuration in italics
+ and mismatched values in red.
+
+ After selecting the \uicontrol {Run CMake} button, you can view and
+ change the actual values of the variables that \QC passes to CMake.
+ The \uicontrol Key column lists variable names, and the \uicontrol Value
+ column lists their current values. For more information about the variables,
+ select \uicontrol Help in the context menu or see
+ \l{CMake: cmake-variables(7)}. For more information about Qt-specific
+ variables, see \l{CMake Variable Reference}.
+
\section1 CMake Presets
You can use CMake presets files to specify common configure, build, and test
@@ -63,21 +68,21 @@
\l{https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html}
{cmake-presets(7)} and store them in project's root directory.
- \QC supports presets up to version 3 (introduced in CMake 3.21), but version
- checking is not enforced. All the fields from version 3 are read and used if
- present. Test presets are not supported.
+ \QC supports presets up to version 3 (introduced in CMake 3.21), but does not
+ enforce version checking. It reads and uses all the fields from version 3 if
+ present. It does not support test presets.
You can import the presets the first time you \l {Opening Projects}
{open a project}, when no \c CMakeLists.txt.user file exists or you have
disabled all kits in the project. To update changes to the
\c CMakePresets.json file, delete the \c CMakeLists.txt.user file.
- \image qtcreator-cmake-presets-configure.webp "Opening a project that has Cmake presets"
+ \image qtcreator-cmake-presets-configure.webp {Opening a project that has CMake presets}
You can view the presets in the \uicontrol {Initial Configuration} field and
in the environment configuration field below it.
- \image qtcreator-cmake-presets-environment.webp "CMake environment configuration"
+ \image qtcreator-cmake-presets-environment.webp {CMake environment configuration}
\section2 Configure Presets
@@ -189,6 +194,47 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol CMake >
\uicontrol Tools.
+ \section2 MSVC Example
+
+ When using MSVC compilers with NMAKE Makefiles, Ninja, or Ninja
+ Multi-Config generators, you can use the \c external strategy for
+ the \c architecture and \c toolset fields. This lets \QC set up
+ the Visual C++ environment before invoking CMake.
+
+ For example:
+
+ \badcode
+ "generator": "Ninja Multi-Config",
+ "toolset": {
+ "value": "v142,host=x64",
+ "strategy": "external"
+ },
+ "architecture": {
+ "value": "x64",
+ "strategy": "external"
+ },
+ \endcode
+
+ If you use MSVC compilers with non-VS generators and have several compilers
+ in the \c PATH, you might also have to specify the compiler to use in
+ \c cacheVariables or \c environmentVariables:
+
+ \badcode
+ "generator": "Ninja Multi-Config",
+ "toolset": {
+ "value": "v142,host=x64",
+ "strategy": "external"
+ },
+ "architecture": {
+ "value": "x64",
+ "strategy": "external"
+ },
+ "cacheVariables": {
+ "CMAKE_C_COMPILER": "cl.exe",
+ "CMAKE_CXX_COMPILER": "cl.exe"
+ }
+ \endcode
+
\section2 Using Conditions
The following configure presets are used if they match \c condition. That is,
@@ -251,9 +297,19 @@
are passed to CMake in \uicontrol {Initial Configuration} or
\uicontrol {Current Configuration}.
- \image qtcreator-cmake-build-settings.png "CMake variables"
+ \image qtcreator-build-settings-cmake-current.webp {Current CMake configuration}
- To view all variables, select the \uicontrol Advanced check box.
+ You can select several variables and apply an action to them. To clear
+ the selection, click anywhere in the view.
+
+ To change the environment variable values for the CMake build environment,
+ select \uicontrol {Batch Edit}. For more information, see \l{Batch Editing}.
+
+ To build using the current configuration, select \uicontrol {Run CMake}.
+ While building, the button text changes to \uicontrol {Stop CMake}. Select
+ the button to cancel the current build.
+
+ \section2 Adding Variables
To add variables, select \uicontrol Add, and then select the type of
the variable that you are adding: \uicontrol Boolean, \uicontrol String,
@@ -268,36 +324,40 @@
To copy the name or value of the selected variable to the clipboard,
select \uicontrol Copy in the context menu.
- To modify the value of a variable, double-click it, or select it,
+ \section2 Changing Variable Values
+
+ To change the value of a variable, double-click it, or select it,
and then select \uicontrol Edit. If the initial, current, and kit
configuration get out of sync, select \uicontrol {Apply Kit Value} or
\uicontrol {Apply Initial Configuration Value} in the context menu in
\uicontrol {Initial Configuration} or \uicontrol {Current Configuration}.
- You can apply actions to multiple variables at a time. To clear
- the selection, select \uicontrol {Clear Selection}.
-
- To remove the selected variables, select \uicontrol Unset. To undo
- the removal, select \uicontrol Set.
-
To reset all the changes that you made, select \uicontrol Reset.
- To modify the environment variable values for the CMake build environment,
- select \uicontrol {Batch Edit}. For more information, see \l{Batch Editing}.
-
- To build using the current configuration, select \uicontrol {Run CMake}.
- While building, the button text changes to \uicontrol {Stop CMake}. Select
- the button to cancel the current build.
-
The variable values that you change are passed via \c -D<option>=<value>
to CMake, which stores the options in the CMakeCache.txt file. This means
that if you remove the build directory, all the custom variables that are
not part of the initial CMake configuration are also removed.
- To reconfigure a project using the modified variable values,
+ To reconfigure a project using the changed variable values,
select \uicontrol Build > \uicontrol {Clear CMake Configuration}, which
removes the CMakeCache.txt file. This enables you to do a full rebuild.
+ \section2 Removing Variables
+
+ To remove the selected variables, select \uicontrol Unset. To undo
+ the removal, select \uicontrol Set.
+
+ \section2 Viewing Advanced Variables
+
+ To view all variables, select the \uicontrol Advanced check box.
+
+ To view all variables by default, select \uicontrol Edit >
+ \uicontrol Preferences > \uicontrol CMake > \uicontrol General >
+ \uicontrol {Show advanced options by default}.
+
+ \image qtcreator-preferences-cmake-general.webp "General tab in CMake Preferences"
+
\section1 Re-configuring with Initial Variables
To reset CMake variables to the initial ones, select
@@ -311,21 +371,19 @@
\uicontrol Preferences > \uicontrol CMake > \uicontrol General >
\uicontrol {Ask before re-configuring with initial parameters}.
- \image qtcreator-preferences-cmake-general.png "General tab in CMake Preferences"
-
\section1 Viewing CMake Output
Output from CMake is displayed next to the \uicontrol {Build Settings} and
\uicontrol {Run Settings} panes in the \uicontrol Projects mode.
- \image qtcreator-build-cmake-output.png "CMake output in Projects mode"
+ \image qtcreator-build-cmake-output.png {CMake output in Projects mode}
To clear the search results, select the \inlineimage icons/clean_pane_small.png
(\uicontrol Clear) button.
You can enter a string in the \uicontrol Filter field to filter output.
To specify filtering options, select the
- \inlineimage icons/magnifier.png "Filtering options menu"
+ \inlineimage icons/magnifier.png {Filtering options menu}
button. You can filter output by using regular expressions or
case-sensitivity. Select \uicontrol {Show Non-matching Lines} to
hide the lines that match the filter.
@@ -350,7 +408,7 @@
You can add arguments to pass to CMake and the generator and targets for
the build command in \uicontrol {Build Steps}.
- \image qtcreator-cmake-build-steps.png "CMake build steps"
+ \image qtcreator-cmake-build-steps.png {CMake build steps}
\note While the other CMake generators are installed together with Qt,
you usually need to install Ninja yourself.
@@ -366,10 +424,10 @@
variable.
\li In \uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build
> \uicontrol {Build Settings}, select \uicontrol {Kit Configuration}.
- \image qtcreator-cmake-kit-configuration.png "Kit CMake Configuration dialog"
+ \image qtcreator-cmake-kit-configuration.png {Kit CMake Configuration dialog}
\li Select \uicontrol Change next to the \uicontrol {CMake generator}
field to open the \uicontrol {CMake Generator} dialog.
- \image qtcreator-cmake-generator.png "CMake Generator dialog"
+ \image qtcreator-cmake-generator.png {CMake Generator dialog}
\li In \uicontrol Generator, select \uicontrol Ninja.
\li Select \uicontrol OK to save your changes and close the dialog.
\li Select \uicontrol Close to close the
diff --git a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc
index 34e98d8d30..a646b5ff53 100644
--- a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc
+++ b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc
@@ -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
// **********************************************************************
@@ -34,9 +34,12 @@
\QC automatically runs CMake to refresh project information when you edit
a \c CMakeLists.txt configuration file in a project. Project information is
- also automatically refreshed when you build the project.
+ also automatically refreshed when you build the project. To disable this
+ behavior, select \uicontrol Edit > \uicontrol Preferences > \uicontrol CMake
+ > \uicontrol General, and then deselect the \uicontrol {Autorun CMake}
+ check box.
- \image qtcreator-projects-view-edit.png "CMake project in Projects view"
+ \image qtcreator-projects-view-edit.png {CMake project in Projects view}
If \QC cannot load the CMake project, the \l Projects view shows a
\uicontrol {<File System>} project node to avoid scanning the file
@@ -85,7 +88,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol CMake >
\uicontrol Tools.
- \image qtcreator-preferences-cmake-tools.png "Tools tab in CMake Preferences"
+ \image qtcreator-preferences-cmake-tools.webp {Tools tab in CMake Preferences}
\li The \uicontrol Name field displays a name for the CMake
installation.
@@ -96,10 +99,6 @@
\li The \uicontrol {Help file} field displays the path to the
CMake help file (.qch) that comes with CMake.
- \li Deselect the \uicontrol {Autorun CMake} check box if you do not want
- to automatically run CMake every time when you save changes to
- \c {CMakeLists.txt} files.
-
\li Select \uicontrol Apply to save your changes.
\endlist
@@ -120,7 +119,7 @@
The kit also specifies the CMake generator that is used for producing
project files for \QC and the initial configuration parameters:
- \image qtcreator-kits-cmake.png
+ \image qtcreator-kits-cmake.png {Kits preferences}
For more information, see \l {Adding Kits}.
@@ -155,6 +154,33 @@
Warnings and errors are displayed in \l {Issues}.
+ \section1 Formatting CMake Files
+
+ You can use the \c {cmake-format} tool to format any text in CMake files that
+ you do not guard with a pair of fences. You must install the tool and tell
+ \QC where you installed it. For more information about the tool and how to
+ install it, see \l{https://cmake-format.readthedocs.io/en/latest/index.html}
+ {cmake language tools}.
+
+ To automatically format CMake files upon file save:
+
+ \list 1
+ \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol CMake >
+ \uicontrol Formatter.
+ \image qtcreator-preferences-cmake-formatter.webp {Formatter tab in CMake Preferences}
+ \li In \uicontrol {CMakeFormat command}, enter the path to
+ \c {cmake-format.exe}.
+ \li Select \uicontrol {Enable auto format on file save} to automatically
+ format CMake files when you save them.
+ \li In \uicontrol {Restrict to MIME types}, add the \l{Adding MIME Types}
+ {MIME types} of the files to format, separated by semicolons. The
+ default value, \c {text/x-cmake} formats CMake files. If the field is
+ empty, all files are formatted.
+ \li Select the \uicontrol {Restrict to files contained in the current
+ project} check box to only format CMake files that belong to the
+ current project.
+ \endlist
+
\section1 Adding External Libraries to CMake Projects
Through external libraries, \QC can support code completion and syntax
diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
index d775a87d58..17d03346c3 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
@@ -734,8 +734,9 @@
\title Examining Data
- Use the \l {Debug Mode Views}{Debug mode views} to examine the data in more
- detail.
+ Use the \l{Local Variables and Function Parameters}{Locals} and
+ \l{Evaluating Expressions}{Expressions} views to examine the data
+ in more detail.
You can use the following keyboard shortcuts:
@@ -767,6 +768,40 @@
\section1 Stepping Into Code
+ Use the following buttons to step through the code:
+
+ \table
+ \header
+ \li Button
+ \li Function
+ \li Description
+ \row
+ \li \inlineimage icons/qtcreator-debug-button-stop.png
+ \li \uicontrol {Stop Debugger}
+ \li Stops the debugger.
+ \row
+ \li \inlineimage icons/debugger_stepover_small.png
+ \li \uicontrol {Step Over}
+ \li Steps over the next line inside the function being debugged. It
+ executes the call and moves to the next line to be executed in
+ the function.
+ \row
+ \li \inlineimage icons/debugger_stepinto_small.png
+ \li \uicontrol {Step Into}
+ \li Steps into the line that it is currently on. For a function call,
+ goes into the function and is ready to continue.
+ \row
+ \li \inlineimage icons/debugger_stepout_small.png
+ \li \uicontrol {Step Out}
+ \li Finishes executing the function and exits to the function that
+ it was called from.
+ \row
+ \li \inlineimage icons/qtcreator-debugging-continue.png
+ \li \uicontrol {Continue}
+ \li Resumes application execution at the address where it last
+ stopped.
+ \endtable
+
When using GDB as the debugging backend, you can compress several steps
into one step for less noisy debugging. For more information, see
\l{Specifying GDB Settings}.
diff --git a/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc b/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc
index 11167b35fe..dd3a884f8e 100644
--- a/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc
+++ b/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc
@@ -1,4 +1,4 @@
-// Copyright (C) 2021 The Qt Company Ltd.
+// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
@@ -18,7 +18,7 @@
To be able to run and debug applications on Boot2Qt devices,
you must add devices and select them in the \QC
- \l{glossary-buildandrun-kit}{kit}.
+ \l{Adding Kits}{kit}.
\section1 Enabling the Boot2Qt Plugin
@@ -33,21 +33,27 @@
\section1 Adding Boot2Qt Devices
- You use a wizard to create the connections. You can use either a
- network connection or a USB connection. If \QC does not automatically
- detect a device you connected with USB, you can use a wizard to
- create a network connection to the device.
+ If \QC does not automatically detect a device you connected with USB, you can
+ use a wizard to create either a network connection or a USB connection to
+ it.
- \note On Ubuntu Linux, the development user account must have access to
- plugged in devices. To allow the development user access to the device
- via USB, create a new \c udev rule, as described in
+ \note On Ubuntu Linux, the development user account must have access to the
+ plugged-in devices. To grant them access to the device via USB, create a new
+ \c udev rule, as described in
\l{https://doc.qt.io/Boot2Qt/b2qt-requirements-x11.html#setting-up-usb-access-to-embedded-devices}
{Boot2Qt: Setting Up USB Access to Embedded Devices}.
You can edit the settings later in \uicontrol Edit > \uicontrol Preferences >
\uicontrol Devices > \uicontrol Devices.
- \image qtcreator-boot2qt-device-configurations.png "Devices dialog"
+ \image qtcreator-boot2qt-device-configurations.png {Devices dialog}
+
+ To reboot the selected device, select \uicontrol {Reboot Device}.
+
+ To restore the default application to the device, select
+ \uicontrol {Restore Default App}.
+
+ \section2 Protecting Connections
You can protect the connections between \QC and a device by using an
\l{https://www.openssh.com/}{OpenSSH} connection. OpenSSH is a
@@ -57,17 +63,19 @@
\QC. For more information, see \l {Configuring SSH Connections}.
You need either a password or an SSH public and private key pair for
- authentication. If you do not have an SSH key, you can use the ssh-keygen
+ authentication. If you do not have an SSH key, you can use the \c ssh-keygen
tool to create it in \QC. For more information, see \l {Generating SSH Keys}.
- \note \QC does not store passwords. If you use password authentication,
- you may need to enter the password on every connection to the device,
- or, if caching is enabled, at every \QC restart.
-
- To reboot the selected device, select \uicontrol {Reboot Device}.
+ \QC does not store passwords. If you use password authentication, you may
+ need to enter the password upon every connection to the device, or if
+ caching is enabled, at every \QC restart. If you frequently run into the
+ timeout, consider using key-based authentication. On \macos and Linux, you
+ can also select \uicontrol Preferences > \uicontrol Devices > \uicontrol SSH
+ and increase the time (in minutes) to use the same SSH connection in the
+ \uicontrol {Connection sharing timeout} field. Windows does not support
+ shared connections.
- To restore the default application to the device, select
- \uicontrol {Restore Default App}.
+ \image qtcreator-ssh-options.png {SSH preferences}
\section1 Flashing Boot2Qt Devices
@@ -75,7 +83,7 @@
\uicontrol Tools > \uicontrol {Flash Boot to Qt Device} and follow the
instructions of the wizard.
- \image qtcreator-boot2qt-flashing-wizard.png "Boot2Qt Flashing Wizard"
+ \image qtcreator-boot2qt-flashing-wizard.png {Boot2Qt Flashing Wizard}
\section1 Configuring Connections
@@ -83,8 +91,8 @@
specify build and run settings for the device:
\list 1
- \li Make sure that your device can be reached via an IP address or
- connect it with a USB connection.
+ \li Check that you can reach the IP address of the device, or use USB to
+ connect it.
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits >
\uicontrol {Qt Versions} > \uicontrol Add to add the Qt version
for Boot2Qt.
@@ -100,7 +108,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences >
\uicontrol Devices > \uicontrol Devices > \uicontrol Add >
\uicontrol Boot2Qt.
- \image qtcreator-devices-boot2qt.png "Boot2Qt Network Device Setup wizard"
+ \image qtcreator-devices-boot2qt.png {Boot2Qt Network Device Setup wizard}
\li In the \uicontrol {Device name} field, enter a name for
the connection.
\li In the \uicontrol {Device address} field, enter the host
diff --git a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc
index 218442555c..a7ae08afba 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc
@@ -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
// **********************************************************************
@@ -14,6 +14,9 @@
\title Getting Started
+ To learn the basics of \QC, take the \e {Getting Started with Qt Creator}
+ course in \l{https://www.qt.io/courses/}{Qt Learning}.
+
\table
\row
\li \inlineimage front-gs.png
diff --git a/doc/qtcreator/src/overview/creator-only/creator-glossary.qdoc b/doc/qtcreator/src/overview/creator-only/creator-glossary.qdoc
index 7a20f1fa87..c6cc117b1b 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-glossary.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-glossary.qdoc
@@ -31,7 +31,8 @@
additional debug symbols that you need for debugging the
application but that you can leave out from the release version.
Generally, you use the debug configuration for testing and the
- release configuration for creating the final installation file.
+ release configuration for creating the final installation
+ binary package.
\row
\li Build step
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc
index d67f493dd1..acf362877d 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc
@@ -99,11 +99,11 @@
\QC automatically runs CMake when you make changes to \c {CMakeLists.txt}
files. To disable this feature, select \uicontrol Edit >
- \uicontrol Preferences > \uicontrol CMake > \uicontrol Tools. Select the
+ \uicontrol Preferences > \uicontrol CMake > \uicontrol General. Select the
CMake executable to edit, and then deselect the \uicontrol {Autorun CMake}
check box.
- \image qtcreator-preferences-cmake-tools.png "Tools tab in CMake Preferences"
+ \image qtcreator-preferences-cmake-tools.webp "Tools tab in CMake Preferences"
For more information, see \l {Setting Up CMake}.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
index c076889921..141e6eab2a 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
@@ -118,10 +118,6 @@
you to generate a Python file from the .ui file, to import
it directly into your application.
\row
- \li Window UI - Dynamic load
- \li Creates a Qt for Python application that has an empty
- window with a widget-based UI.
- \row
\li Qt Quick Application - Empty
\li Creates a Python project that has an empty Qt Quick
Application.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc
index 45b08dcb4f..71b13ce437 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc
@@ -8,7 +8,7 @@
\title Qbs Build Configuration
- \image qtcreator-build-settings-qbs.png "Qbs build settings"
+ \image qtcreator-build-settings-qbs.png {Qbs build settings}
Qbs builds projects in the directory specified in the
\uicontrol {Build Directory} field.
@@ -33,15 +33,22 @@
\section1 Qbs Build Steps
- \image creator-qbs-build-app.png "Qbs build steps"
+ \image creator-qbs-build-app.png {Qbs build steps}
To specify build steps for Qbs:
\list 1
- \li In the \uicontrol {Build variant} field, select \uicontrol Debug to
- include debug symbols in the build for debugging the application and
- \uicontrol Release to create the final installation file.
+ \li In the \uicontrol {Build variant} field, select:
+ \list
+ \li \uicontrol Debug to include debug symbols in the build for
+ debugging the application.
+ \li \uicontrol Profile for an optimized release build that is
+ delivered with separate debug information. It is best suited
+ for analyzing applications.
+ \li \uicontrol Release to create the final installation binary
+ package.
+ \endlist
\li In the \uicontrol ABIs field, select the ABIs for
the \l{Connecting Android Devices}{Android} device
@@ -56,18 +63,18 @@
\l{http://doc.qt.io/qbs/language-introduction.html}
{Modules} in the Qbs Manual.
- \li In the \uicontrol Flags field:
+ \li In the \uicontrol Flags field, select:
\list
- \li Select \uicontrol {Keep going} to continue building when
+ \li \uicontrol {Keep going} to continue building when
errors occur, if possible.
- \li Select \uicontrol {Show command lines} to print actual
+ \li \uicontrol {Show command lines} to print actual
command lines to \l{Compile Output} instead of
high-level descriptions.
- \li Select \uicontrol {Force probes} to force re-execution of
+ \li \uicontrol {Force probes} to force re-execution of
the configure scripts of
\l{https://doc.qt.io/qbs/qbsprobes-qmlmodule.html}{Probes}.
@@ -108,7 +115,7 @@
When building with Qbs, you can specify flags in \uicontrol {Clean Steps}:
- \image creator-qbs-build-clean.png "Qbs clean steps"
+ \image creator-qbs-build-clean.png {Qbs clean steps}
\list
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc
index 1ab5ef2fab..53f14c0c34 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc
@@ -20,11 +20,11 @@
debug symbols that you need for debugging the application but that you
can leave out from the release version. Generally, you use the debug
configuration for testing and the release configuration for creating
- the final installation file.
+ the final installation binary package.
If you selected CMake as the build system for the project, you can
use a \e {minimum size release} build configuration to create the
- final installation file. It is a release build that makes the size
+ final installation binary package. It is a release build that makes the size
of the binary package as small as possible, even if this makes the
application slower.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc
index f39a31fb0a..27fe9ade25 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc
@@ -10,6 +10,15 @@
and the working directory to use. The working directory defaults to
the directory of the build result.
+ Select \uicontrol {Add Deploy Step} > \uicontrol {CMake Install} to add the
+ \l{https://cmake.org/cmake/help/latest/manual/cmake.1.html#install-a-project}
+ {install} option. It runs installation without using the generated build
+ system or the native build tool. \QC automatically adds the value of the
+ \uicontrol {Working directory} field as the installation directory in the
+ \c {--install} signature.
+
+ \image qtcreator-settings-run-desktop.webp {Run Settings}
+
For console applications, check the \uicontrol{Run in terminal} check box.
To specify the terminal to use on Linux and \macos, select \uicontrol Edit
> \uicontrol Preferences > \uicontrol Environment > \uicontrol System.
@@ -18,8 +27,6 @@
\uicontrol {Run Environment} section. For more information, see
\l {Selecting the Run Environment}.
- \image qtcreator-pprunsettings.png
-
When building an application, \QC creates a list of directories where the
linker will look for libraries that the application links to. By
default, the linked libraries are made visible to the executable that
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc
index 581dcd73e9..6f489f4b30 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc
@@ -21,7 +21,7 @@
To view and modify them, select \uicontrol Projects >
\uicontrol {Build & Run} > \uicontrol Run.
- \image qtcreator-settings-run.png "Run Settings"
+ \image qtcreator-settings-run.webp {Run Settings}
To prevent \QC from automatically creating run configurations, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Build & Run},
@@ -104,7 +104,7 @@
You can edit existing environment variables or add, reset and unset new
variables.
- \image qtcreator-run-environment.png "Run Environment section"
+ \image qtcreator-run-environment.png {Run Environment section}
When running on the desktop, the \uicontrol {Build Environment} is used by
default, but you can also use the \uicontrol {System Environment} without the
@@ -130,7 +130,7 @@
Specify the executable to run, command line arguments, working directory,
and environment variables to use.
- \image qmldesigner-run-custom-exe.png "Run settings for custom executables"
+ \image qmldesigner-run-custom-exe.png {Run settings for custom executables}
\include qtquick/creator-projects-settings-run-qtquick.qdocinc run settings qt quick ui
\include python/creator-python-run.qdocinc run settings python
diff --git a/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc b/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc
index b89ff1442b..158aac049c 100644
--- a/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc
+++ b/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc
@@ -76,8 +76,7 @@
If you only install Qt Creator and Qt, remember to also select the
Qt Quick Timeline module for installation. If your Qt is older than
5.14, you must build the Qt Quick Timeline module and install it to
- your Qt to be able to build your project. For more information, see
- \l{Adding Qt Quick Timeline Module to Qt Installations}.
+ your Qt to be able to build your project.
\section1 Converting into qmake Projects