-
Notifications
You must be signed in to change notification settings - Fork 1
/
setup.py
32 lines (29 loc) · 1.35 KB
/
setup.py
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
from setuptools import Extension, setup
import warnings
# BUILD THE BITMAP DECOMPRESSOR.
# For development work, looks like you would use this to compile the
# C-based image decompressor:
# python3 setup.py build_ext --inplace
bitmap_decompression = Extension(
name = 'MediaStationBitmapRle',
sources = ['src/MediaStation/Assets/BitmapRle.c'],
# TODO: Create a separate build type for ASan?
# If you want to use Address Sanitizer (ASan), you can enable these temporarily.
# extra_compile_args = ['-fsanitize=address', '-O1', '-fno-omit-frame-pointer', '-g'],
# extra_link_args=['-fsanitize=address']
)
ima_adpcm_decompression = Extension(name = 'MediaStationImaAdpcm', sources = ['src/MediaStation/Assets/ImaAdpcm.c'])
try:
# TRY TO COMPILE THE C-BASED IMAGE DECOMPRESSOR.
setup(
name = 'MediaStation',
ext_modules = [bitmap_decompression, ima_adpcm_decompression])
except:
# RELY ON THE PYTHON FALLBACK.
warnings.warn('The C decompression binaries are not available on this installation. Sounds and bitmaps might not export.')
setup(name = 'MediaStation')
# BUILD THE IMA ADPCM DECOMPRESSOR.
# ima_adpcm_decompression = Extension()
# There is currently not a pure Python implementation, so there
# is no try-catch block here. Maybe we can add a try-catch and
# just say that ADPCM decompression is not available.