176 lines
5.1 KiB
Python
176 lines
5.1 KiB
Python
import os
|
|
from setuptools import setup
|
|
|
|
|
|
def extensions():
|
|
if 'PURE_PYTHON' in os.environ:
|
|
# We've been asked not to compile extensions.
|
|
return []
|
|
|
|
from setuptools import Extension
|
|
from Cython.Build import cythonize
|
|
|
|
return [
|
|
*cythonize(
|
|
[
|
|
Extension(
|
|
"bemani.protocol.binary",
|
|
[
|
|
"bemani/protocol/binary.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.protocol.lz77",
|
|
[
|
|
"bemani/protocol/lz77.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.protocol.lz77cpp",
|
|
[
|
|
"bemani/protocol/lz77cpp.cxx",
|
|
],
|
|
language="c++",
|
|
extra_compile_args=["-std=c++14"],
|
|
extra_link_args=["-std=c++14"],
|
|
),
|
|
Extension(
|
|
"bemani.protocol.node",
|
|
[
|
|
"bemani/protocol/node.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.protocol.protocol",
|
|
[
|
|
"bemani/protocol/protocol.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.protocol.stream",
|
|
[
|
|
"bemani/protocol/stream.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.protocol.xml",
|
|
[
|
|
"bemani/protocol/xml.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.format.afp.blend.blend",
|
|
[
|
|
"bemani/format/afp/blend/blend.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.format.afp.blend.blendcpp",
|
|
[
|
|
"bemani/format/afp/blend/blendcpp.pyx",
|
|
"bemani/format/afp/blend/blendcppimpl.cxx",
|
|
],
|
|
language="c++",
|
|
extra_compile_args=["-std=c++14"],
|
|
extra_link_args=["-std=c++14"],
|
|
),
|
|
Extension(
|
|
"bemani.format.afp.types.generic",
|
|
[
|
|
"bemani/format/afp/types/generic.py",
|
|
]
|
|
),
|
|
Extension(
|
|
"bemani.format.dxt",
|
|
[
|
|
"bemani/format/dxt.py",
|
|
]
|
|
),
|
|
],
|
|
language_level=3,
|
|
),
|
|
]
|
|
|
|
|
|
setup(
|
|
name='bemani',
|
|
version='1.0',
|
|
description='Code and utilities for talking to BEMANI games',
|
|
author='DragonMinded',
|
|
license='Public Domain',
|
|
packages=[
|
|
# Core packages
|
|
'bemani',
|
|
'bemani.common',
|
|
'bemani.data',
|
|
'bemani.data.api',
|
|
'bemani.data.mysql',
|
|
'bemani.protocol',
|
|
|
|
# Wrapper scripts, utilities and associated code.
|
|
'bemani.utils',
|
|
'bemani.sniff',
|
|
'bemani.format',
|
|
'bemani.format.afp',
|
|
'bemani.format.afp.blend',
|
|
'bemani.format.afp.types',
|
|
|
|
# Frontend packages
|
|
'bemani.frontend',
|
|
'bemani.frontend.account',
|
|
'bemani.frontend.admin',
|
|
'bemani.frontend.arcade',
|
|
'bemani.frontend.home',
|
|
'bemani.frontend.static',
|
|
'bemani.frontend.templates',
|
|
|
|
# Game frontends
|
|
'bemani.frontend.iidx',
|
|
'bemani.frontend.popn',
|
|
'bemani.frontend.jubeat',
|
|
'bemani.frontend.bishi',
|
|
'bemani.frontend.ddr',
|
|
'bemani.frontend.sdvx',
|
|
'bemani.frontend.reflec',
|
|
'bemani.frontend.museca',
|
|
|
|
# Backend packages
|
|
'bemani.backend',
|
|
'bemani.backend.core',
|
|
'bemani.backend.ess',
|
|
'bemani.backend.iidx',
|
|
'bemani.backend.jubeat',
|
|
'bemani.backend.popn',
|
|
'bemani.backend.bishi',
|
|
'bemani.backend.ddr',
|
|
'bemani.backend.sdvx',
|
|
'bemani.backend.reflec',
|
|
'bemani.backend.museca',
|
|
|
|
# API packages
|
|
'bemani.api',
|
|
'bemani.api.objects',
|
|
|
|
# Testing game client packages
|
|
'bemani.client',
|
|
'bemani.client.iidx',
|
|
'bemani.client.jubeat',
|
|
'bemani.client.popn',
|
|
'bemani.client.bishi',
|
|
'bemani.client.ddr',
|
|
'bemani.client.sdvx',
|
|
'bemani.client.reflec',
|
|
'bemani.client.museca',
|
|
],
|
|
install_requires=[
|
|
req for req in open('requirements.txt').read().split('\n') if len(req) > 0
|
|
],
|
|
# None of these are required for operating any of the utilities found in this repo.
|
|
# They are all present for speed. If you cannot compile arbitrary code or cython,
|
|
# remove the ext_modules line and run setuptools again. Everything should work, but
|
|
# it will run slower.
|
|
ext_modules=extensions(),
|
|
include_package_data=True,
|
|
zip_safe=False,
|
|
)
|