diff options
author | Damir Jelić <poljar@termina.org.uk> | 2018-07-08 12:19:17 +0200 |
---|---|---|
committer | Hubert Chathi <hubert@uhoreg.ca> | 2018-07-18 17:44:32 -0400 |
commit | ac071d9c0d69e4330a06f171e3bddc713ecd97d6 (patch) | |
tree | facb7f834e43d2a346f07e3405da2c304ff66cc0 | |
parent | e3d66733712e161d9287ea3f0116e5b57477b0d8 (diff) |
python: Enable build with the local build of the Olm C library.
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ć <poljar@termina.org.uk>
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | python/Makefile | 8 | ||||
-rw-r--r-- | python/olm_build.py | 14 |
3 files changed, 19 insertions, 4 deletions
@@ -125,6 +125,7 @@ $(RELEASE_TARGET): $(RELEASE_OBJECTS) -Wl,--version-script,version_script.ver \ $(OUTPUT_OPTION) $(RELEASE_OBJECTS) ln -sf libolm.so.$(VERSION) $(BUILD_DIR)/libolm.so.$(MAJOR) + ln -sf libolm.so.$(VERSION) $(BUILD_DIR)/libolm.so debug: $(DEBUG_TARGET) .PHONY: debug diff --git a/python/Makefile b/python/Makefile index 998d307..2ab839c 100644 --- a/python/Makefile +++ b/python/Makefile @@ -3,7 +3,7 @@ PYTHON ?= python all: olm olm: - $(PYTHON) setup.py build + DEVELOP=$(DEVELOP) $(PYTHON) setup.py build install: olm $(PYTHON) setup.py install --skip-build -O1 --root=$(DESTDIR) @@ -24,12 +24,14 @@ clean: develop: _libolm.o py2develop: _libolm.so +_libolm.so: DEVELOP ?= 1 _libolm.so: include/olm/olm.h olm_build.py - python2 olm_build.py + DEVELOP=$(DEVELOP) python2 olm_build.py -rm _libolm.c +_libolm.o: DEVELOP ?= 1 _libolm.o: include/olm/olm.h olm_build.py - python3 olm_build.py + DEVELOP=$(DEVELOP) python3 olm_build.py -rm _libolm.c .PHONY: all olm install clean test develop 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 <olm/olm.h> #include <olm/inbound_group_session.h> #include <olm/outbound_group_session.h> - """, 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) |