Mercurial > thymian
diff 3rdparty/vmime/doc/book/building.tex @ 0:a4671277546c tip
created the repository for the thymian project
| author | ferencd |
|---|---|
| date | Tue, 17 Aug 2021 11:19:54 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/vmime/doc/book/building.tex Tue Aug 17 11:19:54 2021 +0200 @@ -0,0 +1,158 @@ +\label{chapter_building} +\chapter{Building and Installing VMime} + +% ============================================================================ +\section{Introduction} + +If no pre-build packages of VMime is available for your system, or if for some +reason you want to compile it yourself from scratch, this section will guide +you through the process. + +% ============================================================================ +\section{What you need} + +To build VMime from the sources, you will need the following: + +\begin{itemize} +\item a working C++ compiler with good STL implementation and also a good +support for templates (for example, \href{http://gcc.gnu.org/}{GNU GCC}) ; +\item \href{http://www.cmake.org/}{CMake} build system ; +\item either \href{http://www.icu-project.org}{ICU library} or an usable +{\vcode iconv()} implementation (see +\href{http://www.gnu.org/software/libiconv/}{libiconv of GNU Project}) ; +\item the \href{http://www.gnu.org/software/gsasl/}{GNU SASL Library} if you +want SASL\footnote{Simple Authentication and Security Layer} support ; +\item either the \href{http://www.openssl.org}{OpenSSL library} or the +\href{http://www.gnu.org/software/gnutls/}{GNU TLS Library} if you +want SSL and TLS\footnote{Transport Layer Security} support ; +\item the \href{http://www.boost.org}{Boost C++ library} if you are not using +C++11 (or your compiler does not support it), for {\vcode shared\_ptr<>}. +\end{itemize} + +% ============================================================================ +\section{Obtaining source files} + +You can download a package containing the source files of the latest release +of the VMime library from the \href{http://www.vmime.org/}{VMime web site}. + +You can also obtain the current development version from the Git repository, +which is currently hosted at GitHub. It can be checked out through anonymous +access with the following instruction: + +\begin{verbatim} + git clone git://github.com/kisli/vmime +\end{verbatim} + +% ============================================================================ +\section{Compiling and installing} + +There are two possibilities for compiling VMime: using SCons building system, +or using CMake. + +SCons is only used for development purposes, and so it is recommended that you +use CMake to build the project as it is a more portable solution, and is +likely to work out-of-the-box on your computer. Thus, we will not describe +the process of compiling VMime using SCons here. + +CMake is an open source, cross-platform build system. It will generate all +build scripts required to compile VMime on your platform. + +First, from the directory where you extracted the tarball or checked out +the sources, run {\vcode cmake} with the {\vcode -G} argument corresponding +to your platform. For example, if you are on a Unix-compatible platform (like +GNU/Linux or MacOS), type: + +\begin{verbatim} + $ cmake -G "Unix Makefiles" +\end{verbatim} + +This will perform some tests on your system to check for libs installed +and some platform-specific includes. It will then create a Makefile in +the root directory of VMime. + +\vnote{Delete the {\vcode CMakeCache.txt} file if something changed on your +system, as CMake may cache some values to speed up things.} + +This will also create a file named {\vcode config.hpp} in the {\vcode vmime/} +directory, with the parameters detected for your platform. You should not +modify this file directly. Instead, you can run again {\vcode cmake} and +specify your own defines on the command line. + +For example, to force using OpenSSL library instead of GnuTLS for TLS +support, type: + +\begin{verbatim} + $ cmake -G "Unix Makefiles" -DVMIME_TLS_SUPPORT_LIB=openssl +\end{verbatim} + +If you want to enable or disable some features in VMime, you can obtain some +help by typing {\vcode cmake -L}. The defaults should be OK though. For a list +of build options, you can also refer to section \ref{build-options}, page +\pageref{build-options}. + +For more information about using CMake, go to +\href{http://www.cmake.org/}{the CMake web site}. + +Next, you can start the compilation process: + +\begin{verbatim} + $ make +\end{verbatim} + +Please wait a few minutes will the compilation runs (you should have some time +to have a coffee right now!). If you get errors during the compilation, be +sure your system meet the requirements given at the beginning of the chapter. +You can also try to get a newer version (from the Git repository, for example) +or to get some help on VMime user forums. + +If everything has been compiled successfully, you can install the library and +the development files on your system: + +\begin{verbatim} + # make install +\end{verbatim} + +\vnote{you must do that with superuser rights (root) if you chose to install +the library into the default location (ie: /usr/lib and /usr/include).} + +Now, you are done! You can jump to the next chapter to know how to use VMime +in your program... + +% ============================================================================ +\section{\label{build-options}Build options} + +Some options can be given to CMake to control the build: + +\begin{table}[!ht] +\noindent\begin{tabularx}{1.0\textwidth}{|l|X|} +\hline + {\bf Option name} & + {\bf Description} \\ +\hline +\hline +VMIME\_BUILD\_SHARED\_LIBRARY & +Set to ON to build a shared version (.so) of the library (default is ON). \\ +\hline +VMIME\_BUILD\_STATIC\_LIBRARY & +Set to ON to build a static version (.a) of the library (default is ON). \\ +\hline +VMIME\_BUILD\_TESTS & +Set to ON to build unit tests (default is OFF). \\ +\hline +VMIME\_TLS\_SUPPORT\_LIB & +Set to either "openssl" or "gnutls" to force using either OpenSSL or GNU TLS +for SSL/TLS support (default depends on which libraries are available on +your system). \\ +\hline +VMIME\_CHARSETCONV\_LIB & +Set to either "iconv", "icu" or "win" (Windows only) to force using iconv, ICU +or Windows built-in API for converting between charsets (default value depends +on which libraries are available on your system). \\ +\hline +CMAKE\_BUILD\_TYPE & +Set the build type: either "Release" or "Debug". In Debug build, optimizations +are disabled and debugging information are enabled. \\ +\hline +\end{tabularx} +\caption{CMake build options} +\end{table}
