|
|
|
|
|
from setuptools import setup, Extension
|
|
from setuptools.command.build_ext import build_ext
|
|
import sys
|
|
import setuptools
|
|
|
|
__version__ = '0.0.1'
|
|
|
|
class get_pybind_include(object):
|
|
"""Helper class to determine the pybind11 include path"""
|
|
|
|
def __init__(self, user=False):
|
|
self.user = user
|
|
|
|
def __str__(self):
|
|
import pybind11
|
|
return pybind11.get_include(self.user)
|
|
|
|
ext_modules = [
|
|
Extension(
|
|
'midigpt',
|
|
['src/lib.cpp','src/common/data_structures/train_config.cpp','src/dataset_creation/compression/lz4.c',
|
|
'src/dataset_creation/dataset_manipulation/bytes_to_file.cpp'],
|
|
include_dirs=[
|
|
get_pybind_include(),
|
|
get_pybind_include(user=True)
|
|
],
|
|
language='c++'
|
|
),
|
|
]
|
|
|
|
class BuildExt(build_ext):
|
|
"""A custom build extension for adding compiler-specific options."""
|
|
c_opts = {
|
|
'msvc': ['/EHsc'],
|
|
'unix': [],
|
|
}
|
|
|
|
if sys.platform == 'darwin':
|
|
c_opts['unix'] += ['-stdlib=libc++', '-mmacosx-version-min=10.7']
|
|
|
|
def build_extensions(self):
|
|
ct = self.compiler.compiler_type
|
|
opts = self.c_opts.get(ct, [])
|
|
if ct == 'unix':
|
|
opts.append('-DVERSION_INFO="%s"' % self.distribution.get_version())
|
|
opts.append('-std=c++20')
|
|
elif ct == 'msvc':
|
|
opts.append('/DVERSION_INFO=\\"%s\\"' % self.distribution.get_version())
|
|
for ext in self.extensions:
|
|
ext.extra_compile_args = opts
|
|
build_ext.build_extensions(self)
|
|
|
|
setup(
|
|
name='midigpt',
|
|
version=__version__,
|
|
author='Jeff Ens, Rafael Arias',
|
|
author_email='[email protected]',
|
|
url='',
|
|
description='A Python wrapper for midigpt project',
|
|
long_description='',
|
|
ext_modules=ext_modules,
|
|
install_requires=['pybind11>=2.5.0'],
|
|
cmdclass={'build_ext': BuildExt},
|
|
zip_safe=False,
|
|
)
|
|
|