source: general/prog/cmake.xml@ 4de66bc7

12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since 4de66bc7 was 4de66bc7, checked in by Douglas R. Reno <renodr@…>, 6 months ago

Add some more dependencies on Qt6.

I've marked most of these as 'role=nodep' so that jhalfs doesn't pick up
multiples in cases where it's not needed.

Transmission, Libreoffice, CMake, Poppler, and Appstream now have Qt6
ports working well.

I have left Qca, gpgme, polkit-qt, and other KDE-related packages alone.
They do have support for Qt6, but we should not list them as they are
incompatible with the Qt5 versions and we could end up causing
unintentional breakage by doing this.

  • Property mode set to 100644
File size: 9.9 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 "df0e65607c9280a8df68b2c93eac4437">
10 <!ENTITY cmake-size "10.5 MB">
11 <!ENTITY cmake-buildsize "424 MB (add 1.2 GB for tests)">
12 <!ENTITY cmake-time "2.2 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
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 &lfs120_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 &qt5-deps; or <xref linkend="qt6" role="nodep"/> (for the Qt-based GUI),
101 <xref linkend="sphinx"/> (for building documents),
102 <xref linkend="subversion"/> (for testing),
103 <ulink url="https://github.com/google/cppdap/">cppdap</ulink>,
104 <ulink url="https://github.com/open-source-parsers/jsoncpp/">jsoncpp</ulink>, and
105 <ulink url="https://rhash.sourceforge.net/">rhash</ulink>
106 </para>
107
108 </sect2>
109
110 <sect2 role="installation">
111 <title>Installation of CMake</title>
112
113 <!--
114 <para>
115 First, adapt the FindBoost module to use Boost-1.80.0:
116 </para>
117
118<screen><userinput remap="pre">patch -Np1 -i ../cmake-&cmake-version;-upstream_fix-1.patch</userinput></screen>
119-->
120
121 <para>
122 Install <application>CMake</application> by running the following
123 commands:
124 </para>
125
126<screen><userinput>sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake &amp;&amp;
127
128./bootstrap --prefix=/usr \
129 --system-libs \
130 --mandir=/share/man \
131 --no-system-jsoncpp \
132 --no-system-cppdap \
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.
145 <!--
146 One test, RunCMake.FindBoost, is known to fail.
147 Now cmake-3.27.0. All tests pass.
148 -->
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> and
191 <parameter>--no-system-cppdap</parameter>: These switches remove 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>--no-system-{curl,libarchive,libuv,nghttp2}</option>: Use
204 the corresponding option in the list for the
205 <command>bootstrap</command> if one of the recommended dependencies is
206 not installed. A bundled version of the dependency will be used instead.
207 </para>
208
209 <para>
210 <option>--qt-gui</option>: This switch enables building the
211 <application>Qt</application>-based GUI for
212 <application>CMake</application>.
213 </para>
214
215 <para>
216 <option>--parallel=</option>: This switch enables performing the
217 <application>CMake</application> bootstrap with multiple jobs
218 at one time.
219 </para>
220
221 </sect2>
222
223 <sect2 role="content">
224 <title>Contents</title>
225
226 <segmentedlist>
227 <segtitle>Installed Programs</segtitle>
228 <segtitle>Installed Libraries</segtitle>
229 <segtitle>Installed Directories</segtitle>
230
231 <seglistitem>
232 <seg>
233 ccmake, cmake, cmake-gui (optional), cpack, and ctest
234 </seg>
235 <seg>
236 None
237 </seg>
238 <seg>
239 /usr/share/cmake-&cmake-major-version; and
240 /usr/share/doc/cmake-&cmake-version;
241 </seg>
242 </seglistitem>
243 </segmentedlist>
244
245
246 <variablelist>
247 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
248 <?dbfo list-presentation="list"?>
249 <?dbhtml list-presentation="table"?>
250
251 <varlistentry id="ccmake">
252 <term><command>ccmake</command></term>
253 <listitem>
254 <para>
255 is a curses based interactive frontend to
256 <command>cmake</command>
257 </para>
258 <indexterm zone="cmake ccmake">
259 <primary sortas="b-ccmake">ccmake</primary>
260 </indexterm>
261 </listitem>
262 </varlistentry>
263
264 <varlistentry id="cmake-prog">
265 <term><command>cmake</command></term>
266 <listitem>
267 <para>
268 is the makefile generator
269 </para>
270 <indexterm zone="cmake cmake-prog">
271 <primary sortas="b-cmake">cmake</primary>
272 </indexterm>
273 </listitem>
274 </varlistentry>
275
276 <varlistentry id="cmake-gui">
277 <term><command>cmake-gui</command></term>
278 <listitem>
279 <para>
280 (optional) is the <application>Qt</application>-based frontend to
281 <command>cmake</command>
282 </para>
283 <indexterm zone="cmake cmake-gui">
284 <primary sortas="b-cmake-gui">cmake-gui</primary>
285 </indexterm>
286 </listitem>
287 </varlistentry>
288
289 <varlistentry id="cpack">
290 <term><command>cpack</command></term>
291 <listitem>
292 <para>
293 is the <application>CMake</application> packaging program
294 </para>
295 <indexterm zone="cmake cpack">
296 <primary sortas="b-cpack">cpack</primary>
297 </indexterm>
298 </listitem>
299 </varlistentry>
300
301 <varlistentry id="ctest">
302 <term><command>ctest</command></term>
303 <listitem>
304 <para>
305 is a testing utility for cmake-generated build trees
306 </para>
307 <indexterm zone="cmake ctest">
308 <primary sortas="b-ctest">ctest</primary>
309 </indexterm>
310 </listitem>
311 </varlistentry>
312
313 </variablelist>
314
315 </sect2>
316
317</sect1>
Note: See TracBrowser for help on using the repository browser.