From e3d66733712e161d9287ea3f0116e5b57477b0d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Sun, 8 Jul 2018 12:19:16 +0200 Subject: python: Import improved python bindings. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit imports the python bindings from: https://github.com/poljar/python-olm The bindings are imported at commit c44b145818520d69eaaa350fb95afcb846125e0f Minor modifications were made while importing: - Removed travis config - Removed Arch Linux PKGBUILD - Removed the html docs, they can be rebuild by running make html in the docs folder - Slightly modified the README The new bindings feature some improvements over the old ones: - Python 2 and 3 support - Automatic memory management - Automatic memory clearing before it is freed - Type signatures via the python typing module - Full test coverage - Properties are utilized where it makes sense (e.g. account.id) Signed-off-by: Damir Jelić --- python/olm_build.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 python/olm_build.py (limited to 'python/olm_build.py') diff --git a/python/olm_build.py b/python/olm_build.py new file mode 100644 index 0000000..5ffefc2 --- /dev/null +++ b/python/olm_build.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +# libolm python bindings +# Copyright © 2018 Damir Jelić +# +# Permission to use, copy, modify, and/or distribute this software for +# any purpose with or without fee is hereby granted, provided that the +# above copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +from __future__ import unicode_literals + +import os + +from cffi import FFI + +ffibuilder = FFI() +PATH = os.path.dirname(__file__) + + +ffibuilder.set_source( + "_libolm", + r""" + #include + #include + #include + """, libraries=["olm"]) + +with open(os.path.join(PATH, "include/olm/olm.h")) as f: + ffibuilder.cdef(f.read(), override=True) + +if __name__ == "__main__": + ffibuilder.compile(verbose=True) -- cgit v1.2.3 From ac071d9c0d69e4330a06f171e3bddc713ecd97d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Sun, 8 Jul 2018 12:19:17 +0200 Subject: python: Enable build with the local build of the Olm C library. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch adds the ability to build the bindings without having a globally installed Olm C library. Provided that the C library is already built, the tests can be run now with make test. Signed-off-by: Damir Jelić --- python/olm_build.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'python/olm_build.py') diff --git a/python/olm_build.py b/python/olm_build.py index 5ffefc2..281a571 100644 --- a/python/olm_build.py +++ b/python/olm_build.py @@ -24,6 +24,15 @@ from cffi import FFI ffibuilder = FFI() PATH = os.path.dirname(__file__) +DEVELOP = os.environ.get("DEVELOP") + +compile_args = [] +link_args = [] + +if DEVELOP and DEVELOP.lower() in ["yes", "true", "1"]: + compile_args = ["-I../include"] + link_args = ['-Wl,-L=../build,-rpath=../build'] + ffibuilder.set_source( "_libolm", @@ -31,7 +40,10 @@ ffibuilder.set_source( #include #include #include - """, libraries=["olm"]) + """, + libraries=["olm"], + extra_compile_args=compile_args, + extra_link_args=link_args) with open(os.path.join(PATH, "include/olm/olm.h")) as f: ffibuilder.cdef(f.read(), override=True) -- cgit v1.2.3 From 04bbd728baecdb320e2a7e3a938de0a9f17423cc Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Fri, 12 Oct 2018 18:55:05 -0400 Subject: always use files from ../include and ../build --- python/olm_build.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'python/olm_build.py') diff --git a/python/olm_build.py b/python/olm_build.py index 281a571..ee836d8 100644 --- a/python/olm_build.py +++ b/python/olm_build.py @@ -26,12 +26,11 @@ PATH = os.path.dirname(__file__) DEVELOP = os.environ.get("DEVELOP") -compile_args = [] -link_args = [] +compile_args = ["-I../include"] +link_args = ["-L../build"] if DEVELOP and DEVELOP.lower() in ["yes", "true", "1"]: - compile_args = ["-I../include"] - link_args = ['-Wl,-L=../build,-rpath=../build'] + link_args.append('-Wl,-rpath=../build') ffibuilder.set_source( -- cgit v1.2.3