source: general/prog/cmake.xml@ 4454113

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 4454113 was 7029e5bc, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Update to cmake-3.25.0

  • Property mode set to 100644
File size: 9.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY cmake-download-http "https://cmake.org/files/v&cmake-major-version;/cmake-&cmake-version;.tar.gz">
8 <!ENTITY cmake-download-ftp " ">
9 <!ENTITY cmake-md5sum "a9d079eaf3f91ed9898834afb24e2b17">
10 <!ENTITY cmake-size "10 MB">
11 <!ENTITY cmake-buildsize "432 MB (add 1.1 GB for tests)">
12 <!ENTITY cmake-time "2.3 SBU (add 3.6 SBU for tests, both using parallelism=4)">
13]>
14
15<sect1 id="cmake" xreflabel="CMake-&cmake-version;">
16 <?dbhtml filename="cmake.html"?>
17
18 <sect1info>
19 <date>$Date$</date>
20 </sect1info>
21
22 <title>CMake-&cmake-version;</title>
23
24 <indexterm zone="cmake">
25 <primary sortas="a-CMake">CMake</primary>
26 </indexterm>
27
28 <sect2 role="package">
29 <title>Introduction to CMake</title>
30
31 <para>
32 The <application>CMake</application> package contains a modern
33 toolset used for generating Makefiles. It is a successor of the
34 auto-generated <command>configure</command> script and aims to
35 be platform- and compiler-independent. A significant user of
36 <application>CMake</application> is <application>KDE</application>
37 since version 4.
38 </para>
39
40 &lfs112_checked;
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&cmake-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&cmake-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &cmake-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &cmake-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &cmake-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &cmake-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76<!--
77 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
78 <itemizedlist spacing="compact">
79 <listitem>
80 <para>
81 Required patch:
82 <ulink url="&patch-root;/cmake-&cmake-version;-upstream_fix-1.patch"/>
83 </para>
84 </listitem>
85 </itemizedlist>
86-->
87
88 <bridgehead renderas="sect3">CMake Dependencies</bridgehead>
89
90 <bridgehead renderas="sect4">Recommended</bridgehead>
91 <para role="recommended">
92 <xref linkend="curl"/>,
93 <xref linkend="libarchive"/>,
94 <xref linkend="libuv"/>, and
95 <xref linkend="nghttp2"/>
96 </para>
97
98 <bridgehead renderas="sect4">Optional</bridgehead>
99 <para role="optional">
100 <xref linkend="gcc"/> (for gfortran),
101 <xref linkend="git"/> (for use during tests),
102 <xref linkend="mercurial"/> (for use during tests),
103 <xref linkend="qt5"/> (for the Qt-based GUI),
104 <xref linkend="subversion"/> (for testing),
105 <ulink url="http://rhash.sourceforge.net/">rhash</ulink>, and
106 <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink> (for building documents)
107 </para>
108
109 <para condition="html" role="usernotes">User Notes:
110 <ulink url="&blfs-wiki;/cmake"/>
111 </para>
112 </sect2>
113
114 <sect2 role="installation">
115 <title>Installation of CMake</title>
116
117 <!--
118 <para>
119 First, adapt the FindBoost module to use Boost-1.80.0:
120 </para>
121
122<screen><userinput remap="pre">patch -Np1 -i ../cmake-&cmake-version;-upstream_fix-1.patch</userinput></screen>
123-->
124
125 <para>
126 Install <application>CMake</application> by running the following
127 commands:
128 </para>
129
130<screen><userinput>sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake &amp;&amp;
131
132./bootstrap --prefix=/usr \
133 --system-libs \
134 --mandir=/share/man \
135 --no-system-jsoncpp \
136 --no-system-librhash \
137 --docdir=/share/doc/cmake-&cmake-version; &amp;&amp;
138make</userinput></screen>
139
140 <para>
141 To test the results, issue: <command>LC_ALL=en_US.UTF-8 bin/ctest
142 -j<replaceable>&lt;N&gt;</replaceable> -O
143 cmake-&cmake-version;-test.log</command>, where
144 <replaceable>&lt;N&gt;</replaceable> is an integer between 1 and the
145 number of system cores. Setting <envar>LC_ALL</envar> is needed to
146 prevent some test failures when some of the locale variables are
147 set to non English locales. Two tests, RunCMake.FindBoost and
148 BundleUtilities, are known to fail.
149 </para>
150
151 <para>
152 If you want to investigate a problem with a given "problem1-test",
153 use <command>bin/ctest -R "problem1-test"</command> and, to omit it, use
154 <command>bin/ctest -E "problem1-test"</command>. These options can be
155 used together:
156 <command>bin/ctest -R "problem1-test" -E "problem2-test"</command>.
157 Option <option>-N</option> can be used to display all
158 available tests, and you can run <command>bin/ctest</command> for a
159 sub-set of tests by using separated by spaces names or numbers as
160 options. Option <option>--help</option> can be used to show all options.
161 </para>
162
163 <para>
164 Now, as the <systemitem class="username">root</systemitem> user:
165 </para>
166
167<screen role="root"><userinput>make install</userinput></screen>
168
169 </sect2>
170
171 <sect2 role="commands">
172 <title>Command Explanations</title>
173
174 <para>
175 <command>sed ... Modules/GNUInstallDirs.cmake</command>:
176 This command disables applications using cmake from attempting to
177 install files in /usr/lib64/.
178 </para>
179
180 <para>
181 <parameter>--system-libs</parameter>: This switch forces the build system
182 to link against <application>Zlib</application>,
183 <application>Bzip2</application>, <application>cURL</application>,
184 <application>nghttp2</application>,
185 <application>Expat</application> and <application>libarchive</application>
186 installed on the system.
187 </para>
188
189 <para>
190 <parameter>--no-system-jsoncpp</parameter>: This switch removes the
191 <application>JSON-C++</application> library from the list of system
192 libraries. A bundled version of that library is used instead.
193 </para>
194
195 <para>
196 <parameter>--no-system-librhash</parameter>: This switch removes the
197 <application>librhash</application> library from the list of system
198 libraries used. A bundled version of that library is used instead.
199 </para>
200
201 <para>
202 <option>--no-system-{curl,libarchive,libuv,nghttp2}</option>: Use
203 the corresponding option in the list for the
204 <command>bootstrap</command> if one recommended dependency is not
205 installed. A bundled version of the dependency will be used instead.
206 </para>
207
208 <para>
209 <option>--qt-gui</option>: This switch enables building the
210 <application>Qt</application>-based GUI for
211 <application>CMake</application>.
212 </para>
213
214 <para>
215 <option>--parallel=</option>: This switch enables performing the
216 <application>CMake</application> bootstrap with multiple jobs
217 at one time.
218 </para>
219
220 </sect2>
221
222 <sect2 role="content">
223 <title>Contents</title>
224
225 <segmentedlist>
226 <segtitle>Installed Programs</segtitle>
227 <segtitle>Installed Libraries</segtitle>
228 <segtitle>Installed Directories</segtitle>
229
230 <seglistitem>
231 <seg>
232 ccmake, cmake, cmake-gui (optional), cpack, and ctest
233 </seg>
234 <seg>
235 None
236 </seg>
237 <seg>
238 /usr/share/cmake-&cmake-major-version; and
239 /usr/share/doc/cmake-&cmake-version;
240 </seg>
241 </seglistitem>
242 </segmentedlist>
243
244
245 <variablelist>
246 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
247 <?dbfo list-presentation="list"?>
248 <?dbhtml list-presentation="table"?>
249
250 <varlistentry id="ccmake">
251 <term><command>ccmake</command></term>
252 <listitem>
253 <para>
254 is a curses based interactive frontend to
255 <command>cmake</command>
256 </para>
257 <indexterm zone="cmake ccmake">
258 <primary sortas="b-ccmake">ccmake</primary>
259 </indexterm>
260 </listitem>
261 </varlistentry>
262
263 <varlistentry id="cmake-prog">
264 <term><command>cmake</command></term>
265 <listitem>
266 <para>
267 is the makefile generator
268 </para>
269 <indexterm zone="cmake cmake-prog">
270 <primary sortas="b-cmake">cmake</primary>
271 </indexterm>
272 </listitem>
273 </varlistentry>
274
275 <varlistentry id="cmake-gui">
276 <term><command>cmake-gui</command></term>
277 <listitem>
278 <para>
279 (optional) is the <application>Qt</application>-based frontend to
280 <command>cmake</command>
281 </para>
282 <indexterm zone="cmake cmake-gui">
283 <primary sortas="b-cmake-gui">cmake-gui</primary>
284 </indexterm>
285 </listitem>
286 </varlistentry>
287
288 <varlistentry id="cpack">
289 <term><command>cpack</command></term>
290 <listitem>
291 <para>
292 is the <application>CMake</application> packaging program
293 </para>
294 <indexterm zone="cmake cpack">
295 <primary sortas="b-cpack">cpack</primary>
296 </indexterm>
297 </listitem>
298 </varlistentry>
299
300 <varlistentry id="ctest">
301 <term><command>ctest</command></term>
302 <listitem>
303 <para>
304 is a testing utility for cmake-generated build trees
305 </para>
306 <indexterm zone="cmake ctest">
307 <primary sortas="b-ctest">ctest</primary>
308 </indexterm>
309 </listitem>
310 </varlistentry>
311
312 </variablelist>
313
314 </sect2>
315
316</sect1>
Note: See TracBrowser for help on using the repository browser.