1
0
Fork 0
mirror of https://github.com/deltachat/deltachat-core.git synced 2025-10-05 19:42:04 +02:00
No description
Find a file
2018-09-24 20:35:13 +02:00
.github Update ISSUE_TEMPLATE.md 2018-08-28 10:36:23 +02:00
cmdline make testing program work again 2018-09-21 00:50:45 +02:00
docs integrate doxygen's deltachat.h docs into sphinx output 2018-09-16 23:25:57 +02:00
libs remove requirement for bzip2 closes #301 2018-09-24 12:28:50 +02:00
python refine test setup wrt to helper methods, also xfail a test on travis 2018-09-24 20:35:13 +02:00
src avoid passing hex-literal-defines to the sqlite3-parser 2018-09-24 20:10:14 +02:00
.gitattributes Force Unix-lineends. 2016-07-13 15:42:54 +02:00
.gitignore Ignore libs/{packagecache,zlib-1.2.11} 2018-09-17 15:50:18 +02:00
.travis.yml integrate doxygen's deltachat.h docs into sphinx output 2018-09-16 23:25:57 +02:00
deltachat-core.cbp unify argument order for file-functions 2018-09-02 22:06:43 +02:00
LICENSE Upgrade to GPL v3. 2016-10-01 09:55:41 +02:00
meson.build Tweak buildscripts a little 2018-09-18 23:33:34 +02:00
meson_options.txt Tweak buildscripts a little 2018-09-18 23:33:34 +02:00
README.md Merge branch 'master' into shorter_readme 2018-09-24 12:53:48 +02:00

Delta Chat Core Library

Build Status

The Delta Chat Core Library is written in cross-platform C, documented at https://deltachat.github.io/api/.

Building the C-library

Delta Chat Core is built as a C-library using the meson build system. It depends on a number of external libraries, most of which are detected using pkg-config. Usually this just works automatically, provided the depending libraries are installed correctly. You may need to install "development" packages of these dependencies:

On Linux (e.g. Debian Stretch) you can install all these using:

sudo apt install libetpan-dev libssl-dev libsqlite3-dev libsasl2-dev libbz2-dev zlib1g-dev meson ninja-build.

Once all dependencies are installed, creating a build is as follows, starting from the project's root directory:

mkdir builddir
cd builddir
meson
# Optionally configure some other parameters
# run `meson configure` to see the options, e.g.
#    meson configure --default-library=static
ninja
sudo ninja install
sudo ldconfig

The install keeps a log of which files were installed. Uninstalling is thus also supported:

sudo ninja uninstall

Note that the above assumes /usr/local/lib is configured somewhere in /etc/ld.so.conf or /etc/ld.so.conf.d/*, which is fairly standard. It is possible your system uses /usr/local/lib/x86_64-linux-gnu which should be auto-detected and just work as well.

Building without system-level dependencies

By default stripped-down versions of the dependencies are bundled with Delta Chat Core and these will be used when a dependency is missing. You can choose to always use the bundled version of the dependencies by invoking meson with the --wrap-mode=forcefallback option. Likewise you can forbid using the bundled dependencies using --wrap-mode=nofallback.

There also is an experimental feature where you can build a version of the shared libdeltachat.so library with no further external dependencies. This can be done by passing the -Dmonolith=true option to meson. Note that this implies --wrap-mode=forcefallback since this will always use all the bundled dependencies.

Language bindings and frontend Projects

Language bindings are available for:

  • Node.js
  • Python
  • Java and Swift (contained in the Android/iOS repos)

The following "frontend" project make use of the C-library or its language bindings:

Testing program

After a successful build there is also a little testing program in builddir/cmdline. You start the program with ./delta <database-file> (if the database file does not exist, it is created). The program then shows a prompt and typing help gives some help about the available commands.

New tests are currently developed using Python, see https://github.com/deltachat/deltachat-core/tree/master/python/tests

License

Licensed under the GPLv3, see LICENSE file for details.

Copyright © 2017, 2018 Björn Petersen and Delta Chat contributors.