User Tools

Site Tools


vmime

This is an old revision of the document!


Compiling VMime

Introduction

VMime is the library we intend to use in Mail2Voice Next. It supports emails protocols such as IMAP and SMTP. Visit http://vmime.org for more informations.

Compiling

GNU/Linux (Ubuntu)

Prerequisites

Packages needed:

  • git
  • cmake
  • build-essential
  • pkg-config
  • libgsasl7
  • libgsasl7-dev
  • libgnutls-dev
  • libssl-dev
  • sendmail
  • doxygen

One can install all the stuff needed with the following command:

sudo apt-get install -y git cmake build-essential pkg-config libgsasl7 libgsasl7-dev libgnutls-dev libssl-dev sendmail doxygen

Building

git clone https://github.com/kisli/vmime.git
mkdir vmime/build
cd vmime/build
cmake -DVMIME_BUILD_SAMPLES=OFF -DVMIME_SHARED_PTR_USE_BOOST=OFF -DVMIME_SHARED_PTR_USE_CXX=ON -DVMIME_SENDMAIL_PATH=/run/sendmail -DCMAKE_BUILD_TYPE=RELEASE ..
make
sudo make install

Windows (MSYS + MinGW64)

Prerequisites

  1. Download and install MinGW64 from sourceforge (https://sourceforge.net/projects/mingw-w64/).
    1. Use the following settings:
      1. Version: latest (6.2.0 on 2016-09-21)
      2. Architecture: x86_64
      3. Threads: win32
      4. Exception: seh
      5. Build revision: 1
    2. And install it on “C:\” (it will create a mingw64 directory)
    1. Extract the msys folder to “C:\”
    2. Run C:\msys\msys.bat, it will open a unix-like terminal
    3. From this terminal, run: sh /postinstall/pi.sh
    4. Answer “y” for the two first questions.
    5. Enter the path to your mingw64 installation (C:/mingw64) in our case. Make sure to use “/” instead of “\”.
    6. It should “Normalizing your MSYS environment”.
  2. Download and install CMake (https://cmake.org/download/)
    1. When installing, choose to add CMake to the “path” environment variable.

Preparing dependencies

Compiling GSASL
  1. Download GSASL from ftp://ftp.gnu.org/gnu/gsasl/ (latest version is 1.8.0 on 2016-09-21) and extract files.
  2. Open C:\msys\msys.bat
  3. Then type the following commands :
  $ cd /path/to/your/libgsasl_src_dir/ (i.e. /c/Users/MrNobody/dev/libgsasl-1.8.0/)
  $ mkdir build
  $ cd build
  $ ../configure --prefix=/path/to/your/libgsasl_src_dir/dist
  $ make
  $ make install
Get other dependencies

Fortunately, the Winbuilds project offers some precompiled dependencies we need. You can download the following packages from http://win-builds.org/doku.php/1.5.0_packages:

  • gnutls
  • pkg-config
  • win-iconv
Compiling VMime

Finally, you can compile VMime using the following commands:

  $ git clone https://github.com/kisli/vmime.git
  $ mkdir vmime/build
  $ cd vmime/build
  $ export DEPS=/path/to/dependencies/parent/dir
  $ cmake .. -G "MinGW Makefiles" -DCMAKE_CXX_COMPILER=/C/mingw64/bin/g++.exe -DCMAKE_C_COMPILER=/C/mingw64/bin/gcc.exe \
  -DCMAKE_MAKE_PROGRAM=/C/mingw64/bin/mingw32-make.exe -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/C/Users/MrNobody/dev/vmime-master/install \
  -DGNUTLS_INCLUDE_DIR=$DEPS/gnutls-3.2.21/include -DGNUTLS_LIBRARY=$DEPS/gnutls-3.2.21/lib64/libgnutls.dll.a \
  -DGSASL_INCLUDE_DIR=$DEPS/libgsasl-1.8.0/include -DGSASL_LIBRARIES=$DEPS/libgsasl-1.8.0/lib/libgsasl.dll.a \
  -DICONV_INCLUDE_DIR=$DEPS/win-iconv-0.0.6/include -DICONV_LIBRARIES=$DEPS/win-iconv-0.0.6/lib64/libiconv.dll.a \
  -DPKG_CONFIG_EXECUTABLE=$DEPS/pkg-config/bin/pkg-config.exe -DVMIME_CHARSETCONV_LIB=iconv \
  -DVMIME_BUILD_DOCUMENTATION=OFF -DVMIME_BUILD_SAMPLES=OFF -DVMIME_BUILD_TESTS=OFF \
  -DVMIME_HAVE_MLANG_H=OFF -DVMIME_HAVE_MLANG_LIB=OFF -DVMIME_HAVE_MESSAGING_PROTO_SENDMAIL=OFF \
  -DVMIME_SHARED_PTR_USE_BOOST=OFF -DVMIME_SHARED_PTR_USE_CXX=ON
  $ mingw32-make.exe
  $ mingw32-make.exe install

Note 1: you may encounter some errors while generating the Makefile mentioning that libglib2 is missing but you can ignore it.

Note 2: if the install step fails at the end, just copy the missing libvmime.dll file from the build/build/bin directory into the install/bin directory.

vmime.1474538997.txt.gz · Last modified: 2023/04/25 16:52 (external edit)