1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\previouspage creator-project-other.html
\page creator-project-cmake.html
\nextpage creator-project-qbs.html
\title Setting Up CMake
CMake automates the configuration of build systems. It controls the software
compilation process by using simple
configuration files, called \c {CMakeLists.txt} files. CMake generates
native build configurations and workspaces that you can use in the compiler
environment of your choice.
You can use CMake from \QC to build applications for the desktop and
Android devices. You can also build single files to test your changes.
\QC automatically detects the CMake executable specified in the \c PATH.
You can add paths to other CMake executables and use them in different
build and run \l{glossary-buildandrun-kit}{kits}.
CMake documentation is installed in Qt help file format (.qch) when you
install CMake. It is automatically registered by \QC, and you can view it
in the Help mode.
\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.
\section1 Adding CMake Tools
\QC requires CMake's \l{https://cmake.org/cmake/help/latest/manual/cmake-file-api.7.html}
{file-based API}. Please make sure to use CMake version 3.14, or later.
To view and specify settings for CMake:
\list 1
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Kits >
\uicontrol CMake.
\image qtcreator-cmakeexecutable.png
\li The \uicontrol Name field displays a name for the CMake
installation.
\li The \uicontrol Path field displays the path to the CMake
executable.
\li The \uicontrol {Help file} field displays the path to the
CMake help file (.qch) provided by and installed 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 the \uicontrol {Auto-create build directories} check box to
initially configure the project in a temporary directory. When you
build the project \QC starts from scratch and configures the
project again using the build directory.
\li Select \uicontrol Apply to save your changes.
\endlist
To add a path to a CMake executable that \QC does not detect automatically,
and to specify settings for it, select \uicontrol Add. To make changes to
automatically detected installations, select \uicontrol Clone.
\QC uses the \e {default CMake} if it does not have enough information
to choose the CMake to use. To set the selected CMake executable as the
default, select \uicontrol {Make Default}.
To remove the selected CMake executable from the list, select
\uicontrol Remove.
Select the \uicontrol Kits tab to add the CMake tool to a build and run kit.
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
For more information, see \l {Adding Kits}.
\section1 Editing CMake Configuration Files
To open a CMakeLists.txt file for editing, right-click it in the
\uicontrol Projects view and select \uicontrol {Open With} >
\uicontrol {CMake Editor}.
You can also use the \c cmo filter in the \l {Searching with the Locator}
{locator} to open the CMakeLists.txt file for the current run configuration
in the editor. This is the same build target as when you select
\uicontrol Build > \uicontrol {Build for Run Configuration}.
The following features are supported:
\list
\li Pressing \key F2 when the cursor is on a filename to open the file
\li Keyword completion
\li Code completion
\li Path completion
\li Auto-indentation
\li Matching parentheses and quotes
\endlist
\section1 Adding External Libraries to CMake Projects
Through external libraries, \QC can support code completion and syntax
highlighting as if they were part of the current project or the Qt library.
\QC detects the external libraries using the \c {find_package()}
macro. Some libraries come with the CMake installation. You can find those
in the \c {Modules} directory of your CMake installation.
For more information, see
\l{https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html}
{cmake-packages(7)}.
Syntax completion and highlighting work once your project successfully
builds and links against the external library.
\section1 Related Topics
\list
\li \l {Opening Projects}
\li \l {Specifying Build Settings}
\li \l {Specifying Run Settings}
\li \l {Deploying CMake Projects to Generic Remote Linux Devices}
\endlist
*/
|