source: general/prog/cmake.xml@ dca2b43e

11.2 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/soup3 xry111/xf86-video-removal
Last change on this file since dca2b43e was dca2b43e, checked in by Douglas R. Reno <renodr@…>, 20 months ago

Adapt CMake to use Boost-1.80.0 with FindBoost.
Tags

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