1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# Link against shared blake3 library. Gentoo bug 943281.
# Set FORCE_SYSTEM_BLAKE3=1 to force use of installed system library.
diff --git a/c_impl/setup.py b/c_impl/setup.py
index 417385b..2a664f0 100644
--- a/c_impl/setup.py
+++ b/c_impl/setup.py
@@ -69,6 +69,9 @@ def is_aarch64():
def force_intrinsics():
return os.environ.get("FORCE_INTRINSICS") == "1"
+def force_system_blake3():
+ # force use of system library for blake3
+ return os.environ.get("FORCE_SYSTEM_BLAKE3") == "1"
def compile_x86_intrinsics():
object_files = []
@@ -203,9 +206,17 @@ def prepare_extension():
"vendor/blake3_dispatch.c",
"vendor/blake3_portable.c",
]
+ include_dirs=[
+ "vendor",
+ ],
+ extra_link_args = [ "-lblake3" ]
target = platform.machine()
extra_objects = []
- if is_macos():
+ if force_system_blake3():
+ print("using installed system library")
+ sources = sources[:1]
+ include_dirs = []
+ elif is_macos():
# On macOS we build a "universal" binary containing both x86 and ARM
# code.
extra_objects = compile_macos_universal_staticlib()
@@ -239,10 +250,9 @@ def prepare_extension():
return setuptools.Extension(
"blake3",
sources=sources,
- include_dirs=[
- "vendor",
- ],
+ include_dirs=include_dirs,
extra_objects=extra_objects,
+ extra_link_args=extra_link_args,
define_macros=[
("SETUP_PY_VERSION", escape_preprocessor_string(VERSION)),
("SETUP_PY_DESCRIPTION", escape_preprocessor_string(DESCRIPTION)),
|