Skip to content

Commit

Permalink
setup.py: Fallback to use the system hiredis library.
Browse files Browse the repository at this point in the history
Fixes #158 fully, including using a system-prodived hiredis.

When the hiredis git submodule hasn't been initialized, print a
message about it, and attempt to link against the a system-provided
hiredis library instead.

* setup.py (is_hiredis_bundled): New procedure.
(get_hiredis_bundled_sources): Likewise.  Print a message when
bundled_hiredis_sources is empty.
(get_sources): Adjust to use the above procedure.
(get_linker_args): Add -lhiredis when the bundled hiredis is not used.
  • Loading branch information
Apteryks committed Mar 19, 2023
1 parent 8adb1b3 commit 7b3c8a3
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import importlib
import glob
import io
import os
import sys


Expand All @@ -17,16 +18,39 @@ def version():
return module.__version__


def is_hiredis_bundled():
hiredis_submodule = 'vendor/hiredis'
if (os.path.exists(hiredis_submodule)
and not os.path.isfile(hiredis_submodule)):
return not os.listdir()
return False


def get_hiredis_bundled_sources():
hiredis_sources = ("alloc", "async", "hiredis", "net", "read",
"sds", "sockcompat")
if is_hiredis_bundled():
return ["vendor/hiredis/%s.c" % src for src in hiredis_sources]
return []


if not is_hiredis_bundled():
print('the bundled hiredis sources were not found;'
' system hiredis will be used\n'
'to use the bundled hiredis sources instead,'
' run "git submodule update --init"')


def get_sources():
hiredis_sources = ("alloc", "async", "hiredis", "net", "read", "sds", "sockcompat")
return sorted(glob.glob("src/*.c") + ["vendor/hiredis/%s.c" % src for src in hiredis_sources])
return sorted(glob.glob("src/*.c") + get_hiredis_bundled_sources())


def get_linker_args():
if 'win32' in sys.platform or 'darwin' in sys.platform:
return []
else:
return ["-Wl,-Bsymbolic", ]
return ["-Wl,-Bsymbolic", ] + \
['-lhiredis'] if not is_hiredis_bundled() else []


def get_compiler_args():
Expand Down

0 comments on commit 7b3c8a3

Please sign in to comment.