source: general/prog/cmake.xml@ b327731

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 b327731 was 3f2db3a6, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Remove sect1info tags

They only contain a date tag that is nowhere used.

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