[sdk/kdesrc-build/docbook_historied_per_file] doc: Add preliminary CMake support to kdesvn-build, and update the sample file to suit.
Michael Pyne
null at kde.org
Fri May 10 10:14:25 BST 2024
Git commit cba7a7bb22e17ed6ba44302617e10e33167d28c3 by Michael Pyne.
Committed on 28/03/2006 at 07:19.
Pushed by ashark into branch 'docbook_historied_per_file'.
Add preliminary CMake support to kdesvn-build, and update the sample file to suit.
This adds two new options: use-cmake (but this one will go away once CMake is the only
option for KDE 4), and cmake-options (but I think I will find a way to make it so you never
need to use this).
Also added is a new command line option, --run (which runs the given command using the
internal kdesvn-build environment).
The documentation has also been updated.
The check to see whether unsermake needs to be downloaded is also very slightly improved.
Finally, kdesvn-build does not set KDEDIR, it sets KDEDIRS. Score one for removing deprecated
interfaces...
I think I've caught most of the places where the fact that we're using CMake is an issue
(i.e. do-not-compile, inst-apps, trying to make apidox, cmake-options adding to
global options like configure-flags does, etc.) If I haven't, please e-mail me
or file a bug against kdesvn-build.
Seeing as how this is the first release with support for CMake, it should come as a surprise
that it may not work! So, please test now so I can make a real 1.1 release in the next week
or so.
svn path=/trunk/KDE/kdesdk/doc/scripts/kdesvn-build/; revision=523429
Original commit: 73a544c8
https://invent.kde.org/sdk/kdesrc-build/-/commit/73a544c8b79655959666850f2e1be0ecc71eae4d
M +14 -0 doc/cmdline/index.docbook
M +14 -2 doc/getting-started/before-building.docbook
M +7 -2 doc/index.docbook
A +5 -0 doc/kde-cmake/index.docbook
A +32 -0 doc/kde-cmake/kde-cmake-intro.docbook
M +60 -10 doc/kdesvn-buildrc/index.docbook
https://invent.kde.org/sdk/kdesrc-build/-/commit/cba7a7bb22e17ed6ba44302617e10e33167d28c3
diff --git a/doc/cmdline/index.docbook b/doc/cmdline/index.docbook
index 9efb0147..ba6aff10 100644
--- a/doc/cmdline/index.docbook
+++ b/doc/cmdline/index.docbook
@@ -192,6 +192,20 @@ value for this parameter is ~/.kdesvn-buildrc.
</para></listitem>
</varlistentry>
+<varlistentry id="cmdline-run">
+<term><option>--run</option></term>
+<listitem><para>
+This option interprets the next item on the command line as a program to run,
+and &kdesvn-build; will then finish reading the configuration file, update the
+environment as normal, and then execute the given program.</para>
+
+<para>This will not work to start a shell with the kdesvn-build environment in
+most cases however, since interactive shells typically reset at least part of
+the environment variables (such as <envar>PATH</envar> and
+<envar>KDEDIRS</envar>) in the startup sequence.
+</para></listitem>
+</varlistentry>
+
<varlistentry id="cmdline-prefix">
<term><option>--prefix=</path/to/kde></option></term>
<listitem><para>
diff --git a/doc/getting-started/before-building.docbook b/doc/getting-started/before-building.docbook
index ead4b59e..8e189be7 100644
--- a/doc/getting-started/before-building.docbook
+++ b/doc/getting-started/before-building.docbook
@@ -34,19 +34,31 @@ Requirements</ulink> page.
<para>Here is a list of some of the things you'll need:</para>
<itemizedlist>
-<listitem><para>Automake version 1.7, or higher.</para></listitem>
-<listitem><para>Autoconf version 2.57, or higher.</para></listitem>
+
+<listitem><para>Automake version 1.7, or higher. (KDE 3 only)</para></listitem>
+
+<listitem><para>Autoconf version 2.57, or higher. (KDE 3 only)</para></listitem>
+
+<listitem><para><ulink
+url="http://www.cmake.org/"><application>CMake</application></ulink> 2.4.0, or
+higher. Some version 2.3 snapshots may compile KDE 4 as well, please see the
+<ulink url="http://wiki.kde.org/tiki-index.php?page=KDECMakeIntro">CMake Introduction Wiki</ulink> page. (KDE 4
+only)</para></listitem>
+
<listitem><para>The &svn; client program, including support for Secure
HTTP (https). To ensure needed support, you can run
<userinput><command>svn <option>--version</option></command></userinput>.
If the ra_dav module says that it handles the https scheme then you should be
set to go.</para></listitem>
+
<listitem><para>The gcc compiler, with support for C++. Version 3.3 or 3.4 works
the best at this point.</para></listitem>
+
<listitem><para>Be sure to check the <ulink
url="http://www.kde.org/info/requirements/3.5.php">&kde; Compilation
Requirements</ulink> page to make sure that any other needed libraries are
included.</para></listitem>
+
</itemizedlist>
<para>One exception is the &Qt; library. &kdesvn-build; will normally install a
diff --git a/doc/index.docbook b/doc/index.docbook
index a1916dfc..55c30164 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -11,6 +11,7 @@
<!ENTITY homepage '<ulink url="http://kdesvn-build.kde.org/">&kdesvn-build; home page</ulink>'>
<!ENTITY unsermake '<ulink url="http://www.kde.me.uk/index.php&page=unsermake"><application>unsermake</application></ulink>'>
<!ENTITY BSD '<acronym>BSD</acronym>'>
+ <!ENTITY cmake '<link linkend="kde-cmake"><application>CMake</application></link>'>
<!-- These define shortcut entities for some of the configuration options.
Just add them as necessary.
@@ -70,6 +71,8 @@
<!ENTITY advanced-features SYSTEM "using-kdesvn-build/advanced-features.docbook">
<!ENTITY developer-features SYSTEM "using-kdesvn-build/developer-features.docbook">
<!ENTITY other-features SYSTEM "using-kdesvn-build/other-features.docbook">
+ <!ENTITY kde-cmake SYSTEM "kde-cmake/index.docbook">
+ <!ENTITY kde-cmake-intro SYSTEM "kde-cmake/kde-cmake-intro.docbook">
<!ENTITY credits-and-licenses SYSTEM "credits-and-licenses/index.docbook">
]>
@@ -106,8 +109,8 @@
<legalnotice>&FDLNotice;</legalnotice>
-<date>2006-01-04</date>
-<releaseinfo>1.0.0</releaseinfo>
+<date>2006-03-28</date>
+<releaseinfo>1.1</releaseinfo>
<abstract>
<para>&kdesvn-build; is a script which builds and installs &kde; directly from the sources found in the &kde; &svn; repository.</para>
@@ -135,6 +138,8 @@
&using-kdesvn-build;
+&kde-cmake;
+
&credits-and-licenses;
</book>
diff --git a/doc/kde-cmake/index.docbook b/doc/kde-cmake/index.docbook
new file mode 100644
index 00000000..31b60284
--- /dev/null
+++ b/doc/kde-cmake/index.docbook
@@ -0,0 +1,5 @@
+<chapter id="kde-cmake">
+<title>CMake, the KDE 4 build system.</title>
+
+&kde-cmake-intro;
+</chapter>
diff --git a/doc/kde-cmake/kde-cmake-intro.docbook b/doc/kde-cmake/kde-cmake-intro.docbook
new file mode 100644
index 00000000..6795eb58
--- /dev/null
+++ b/doc/kde-cmake/kde-cmake-intro.docbook
@@ -0,0 +1,32 @@
+<sect1 id="kde-cmake-intro">
+<title>Introduction to CMake</title>
+
+<para>In March 2006, the <ulink url="http://www.cmake.org/"><application>CMake</application></ulink> program
+beat out several competitors and was selected to be the build system for &kde; 4, replacing the
+autotools-based system that &kde; has used from the beginning.</para>
+
+<para>A introduction to CMake page is available on the <ulink
+url="http://wiki.kde.org/tiki-index.php?page=KDECMakeIntro">KDE Wiki</ulink>.
+Basically, instead of running make -f Makefile.cvs, then configure, then unsermake (or make),
+we simply run cmake and then make.
+</para>
+
+<para>&kdesvn-build; has initial support for CMake. A few features of &kdesvn-build;
+were really features of the underlying buildsystem, including <link linkend="conf-inst-apps">inst-apps</link>,
+<link linkend="conf-configure-flags">configure-flags</link>,
+and <link linkend="conf-do-not-compile">do-not-compile</link>. When equivalent
+features are available, they are provided. For instance, the equivalent to the
+configure-flags option is <link linkend="conf-cmake-options">cmake-options</link>.
+</para>
+
+<para>However, some options, like inst-apps or do-not-compile, have no direct
+equivalent, and are disabled. Should I find a way to implement them with CMake
+I will do so and re-enable the option. However, more or less everything works
+the same.</para>
+
+<para>Not all of KDE has been ported to use CMake at this point. For example,
+the <link linkend="conf-apidox">apidox</link> option is rather useless until the
+equivalent infrastructure is ready. I've tried to warn about such things but
+not all deficiencies may be caught by &kdesvn-build; for now.</para>
+
+</sect1>
diff --git a/doc/kdesvn-buildrc/index.docbook b/doc/kdesvn-buildrc/index.docbook
index cfd2a38a..496e1774 100644
--- a/doc/kdesvn-buildrc/index.docbook
+++ b/doc/kdesvn-buildrc/index.docbook
@@ -49,6 +49,7 @@ authors using the address you can find <link linkend="authors">above</link>.
<listitem><para><link linkend="conf-branch">branch</link>, to checkout from a branch instead of /trunk.</para></listitem>
<listitem><para><link linkend="conf-build-dir">build-dir</link>, to set the directory to build in.</para></listitem>
<listitem><para><link linkend="conf-checkout-only">checkout-only</link>, to checkout only parts of a module.</para></listitem>
+<listitem><para><link linkend="conf-cmake-options">cmake-options</link> to define what flags to configure a module with using cmake.</para></listitem>
<listitem><para><link linkend="conf-colorful-output">colorful-output</link> to add color to the script output.</para></listitem>
<listitem><para><link linkend="conf-configure-flags">configure-flags</link> to define what flags to configure a module with.</para></listitem>
<listitem><para><link linkend="conf-cxxflags">cxxflags</link> to define the <envar>CXXFLAGS</envar> variable.</para></listitem>
@@ -123,7 +124,7 @@ do any harm to enable it. The default is to enable the patches.</entry>
<row id="conf-binpath">
<entry>binpath</entry>
-<entry>Can't be overridden</entry>
+<entry>Overrides global</entry>
<entry><para>Set this option to set the environment variable PATH while building.
You can't override this setting in a module option. The default value is
<filename class="directory">/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin</filename>. This environment
@@ -190,14 +191,43 @@ a global option makes no sense.
</entry>
</row>
+<row id="conf-cmake-options">
+<entry>cmake-options</entry>
+<entry>Appends to global options (not applicable to qt-copy)</entry>
+<entry><para>Use this option to specify what flags to pass to &cmake; when creating
+the build system for the module. When this is used as a global option, it is
+applied to all modules that this script builds. When used as a module option,
+it is added to the end of the global options. This allows you to specify
+common CMake options in the global section.</para>
+
+<para>This option replaces <link linkend="conf-configure-flags">configure-flags</link>
+for all KDE 4 modules, since they use CMake to build.</para>
+
+<para>Since these options are passed directly to the CMake command line, they
+should be given as they would be typed into CMake. For example:</para>
+
+<screen> cmake-options -DRPATH_STYLE=default
+</screen>
+
+<para>Since this is a hassle, &kdesvn-build; takes pains to ensure that as long
+as the rest of the options are set correctly, you should be able to leave this
+option blank.</para></entry>
+</row>
+
<row id="conf-configure-flags">
<entry>configure-flags</entry>
-<entry>Appends to global option(except for qt-copy)</entry>
-<entry>Use this option to specify what flags to pass to ./configure when creating
+<entry>Appends to global options (except for qt-copy)</entry>
+<entry><para>Use this option to specify what flags to pass to ./configure when creating
the build system for the module. When this is used as a global-option, it is
applied to all modules that this script builds. qt-copy uses a much different
set of configure options than the rest of &kde;, so this option
-<emphasis>overrides</emphasis> the global settings when applied to qt-copy.</entry>
+<emphasis>overrides</emphasis> the global settings when applied to qt-copy.
+</para>
+
+<para>This option applies to qt-copy and all KDE 3 modules. KDE 4 modules use
+&cmake;, which is controlled using the <link linkend="conf-cmake-options">cmake-options</link>
+option.</para>
+</entry>
</row>
<row id="conf-colorful-output">
@@ -216,7 +246,8 @@ color codes to anything but a terminal (such as xterm, &konsole;, or the normal
<entry>Use this option to specify what flags to pass to <command>./configure</command> as the
<envar>CXXFLAGS</envar> when creating the build system for the module. This option is
specified here instead of with <link
-linkend="conf-configure-flags">configure-flags</link> because this option will also
+linkend="conf-configure-flags">configure-flags</link> or <link
+linkend="conf-cmake-options">cmake-options</link> because this option will also
set the environment variable <envar>CXXFLAGS</envar> during the build process.
</entry>
</row>
@@ -253,6 +284,9 @@ built. The directories should be space-separated.</para>
<para>Note that the sources to the programs will still be downloaded. You can use
the <link linkend="conf-checkout-only">checkout-only</link>
directive to choose directories that you want to check out.</para>
+
+<important><para>This option does not yet work with modules built using
+&cmake;</para></important>
</entry>
</row>
@@ -303,6 +337,9 @@ linkend="cmdline-refresh-build"><option>--refresh-build</option></link> or <link
linkend="cmdline-recreate-configure"><option>--recreate-configure</option></link> options.
</para>
+<important><para>This option does not yet work with modules built using
+the &cmake; build system.</para></important>
+
<para>Note that the sources to the programs will still be downloaded. You can use
the <link linkend="conf-checkout-only">checkout-only</link>
directive to choose directories that you want to check out.</para>
@@ -321,7 +358,7 @@ set this option to 0 in the &rcfile;. You can also use the
<row id="conf-kdedir">
<entry>kdedir</entry>
-<entry>Can't be overridden</entry>
+<entry>Overrides global</entry>
<entry>This option sets the directory that &kde; will be installed to after it is
built. It defaults to <filename class="directory">~/kde</filename>. If you change this to a directory
needing root access, you may want to read about the <link
@@ -353,7 +390,7 @@ French language, however.</para>
<row id="conf-libpath">
<entry>libpath</entry>
-<entry>Can't be overridden</entry>
+<entry>Overrides global</entry>
<entry>Set this option to set the environment variable LD_LIBRARY_PATH while
building. You can't override this setting in a module option. The default
value is blank, but the paths <filename class="directory">$KDEDIR/lib</filename> and
@@ -457,7 +494,7 @@ can't figure out what you mean using <link linkend="conf-branch">branch</link>.
<row id="conf-qtdir">
<entry>qtdir</entry>
-<entry>Can't be overridden</entry>
+<entry>Overrides global</entry>
<entry>Set this option to set the environment variable QTDIR while building.
You can't override this setting in a module option. If you don't specify
this option, it defaults to
@@ -506,7 +543,7 @@ globally).</para>
<row id="conf-source-dir">
<entry>source-dir</entry>
-<entry>Can't be overridden</entry>
+<entry>Overrides global</entry>
<entry>This option is used to set the directory on your computer to store the &kde;
&svn; sources at. If you don't specify this value, the default is
<filename class="directory">~/kdesvn</filename>. If
@@ -516,7 +553,7 @@ you do specify this value, use an absolute path name.
<row id="conf-svn-server">
<entry>svn-server</entry>
-<entry>Can't be overridden</entry>
+<entry>Overrides global</entry>
<entry>This option is used to set the server used to check out from &svn;.
The default is the anonymous &svn; repository, <emphasis>svn://anonsvn.kde.org/</emphasis></entry>
</row>
@@ -545,6 +582,19 @@ instead, which works from the release tarballs.</para>
</entry>
</row>
+<row id="conf-use-cmake">
+<entry>use-cmake</entry>
+<entry>Overrides global</entry>
+<entry>
+<para>This option allows you to force &kdesvn-build; to try (or not try) to use
+CMake with a given module. Normally &kdesvn-build; will always try to use CMake
+if it is present in the module, as this will be required to build KDE 4. This
+option is available to ease the transition from unsermake to CMake. This option
+will be removed once all KDE 4 modules require CMake.
+</para>
+</entry>
+</row>
+
<row id="conf-use-qt-builddir-hack">
<entry>use-qt-builddir-hack</entry>
<entry>Overrides global</entry>
More information about the kde-doc-english
mailing list