Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
setup.py: made OS-detection more consistent.
Use just platform.system().
  • Loading branch information
julian-smith-artifex-com committed Dec 12, 2022
commit 7ef172daf9c22615a1fe38e3808b9f75e91910ce
40 changes: 19 additions & 21 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,14 +518,23 @@ def get_mupdf():
extra_link_args = []
extra_compile_args = []

log( f'platform.system()={platform.system()!r}')
log( f'sys.platform={sys.platform!r}')

linux = platform.system() == 'Linux'
openbsd = platform.system() == 'OpenBSD'
freebsd = platform.system() == 'FreeBSD'
darwin = platform.system() == 'Darwin'
windows = platform.system() == 'Windows' or platform.system().startswith('CYGWIN')

if 'sdist' in sys.argv:
# Create local mupdf.tgz, for inclusion in sdist.
get_mupdf_tgz()


if ('-h' not in sys.argv and '--help' not in sys.argv
and (
'bdist_wheel' in sys.argv
and (0
or 'bdist_wheel' in sys.argv
or 'build' in sys.argv
or 'bdist' in sys.argv
or 'install' in sys.argv
Expand Down Expand Up @@ -560,7 +569,7 @@ def get_mupdf():
log( f'Building mupdf.')
shutil.copy2( 'fitz/_config.h', f'{mupdf_local}include/mupdf/fitz/config.h')

if platform.system() == 'Windows' or platform.system().startswith('CYGWIN'):
if windows:
# Windows build.
devenv = os.environ.get('PYMUPDF_SETUP_DEVENV')
if not devenv:
Expand All @@ -587,9 +596,9 @@ def get_mupdf():
flags += ' verbose=yes'
env = ''
make = 'make'
if os.uname()[0] == 'Linux':
if linux:
env += ' CFLAGS="-fPIC"'
if os.uname()[0] in ('OpenBSD', 'FreeBSD'):
if openbsd or freebsd:
make = 'gmake'
env += ' CFLAGS="-fPIC" CXX=clang++'

Expand Down Expand Up @@ -646,13 +655,6 @@ def get_mupdf():
if unix_build_dir:
library_dirs.append( unix_build_dir)

log( f'sys.platform={sys.platform!r}')

linux = sys.platform.startswith( 'linux') or 'gnu' in sys.platform
openbsd = sys.platform.startswith( 'openbsd')
freebsd = sys.platform.startswith( 'freebsd')
darwin = sys.platform.startswith( 'darwin')

if mupdf_local and (linux or openbsd or freebsd):
# setuptools' link command always seems to put '-L
# /usr/local/lib' before any <library_dirs> that we specify,
Expand Down Expand Up @@ -703,13 +705,13 @@ def get_mupdf():

library_dirs.append("/opt/homebrew/lib")

if sys.platform.startswith( 'freebsd'):
if freebsd:
libraries += [
'freetype',
'harfbuzz',
]

else:
elif windows:
# Windows.
assert mupdf_local
if word_size() == 32:
Expand All @@ -725,6 +727,9 @@ def get_mupdf():
]
extra_link_args = ["/NODEFAULTLIB:MSVCRT"]

else:
assert 0, 'Unrecognised OS'

if linux or openbsd or freebsd or darwin:
extra_compile_args.append( '-Wno-incompatible-pointer-types')
extra_compile_args.append( '-Wno-pointer-sign')
Expand All @@ -742,13 +747,6 @@ def get_mupdf():
include_dirs += local_dirs.get("include_dirs", [])
library_dirs += local_dirs.get("library_dirs", [])

if 1:
# Diagnostics.
log( f'library_dirs={library_dirs}')
log( f'libraries={libraries}')
log( f'include_dirs={include_dirs}')
log( f'extra_link_args={extra_link_args}')

log( f'include_dirs={include_dirs}')
log( f'library_dirs={library_dirs}')
log( f'libraries={libraries}')
Expand Down