You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
import os
|
|
import subprocess
|
|
import sysconfig
|
|
from distutils.core import Extension, setup # pylint: disable=import-error,no-name-in-module
|
|
|
|
from Cython.Build import cythonize
|
|
from Cython.Distutils import build_ext
|
|
|
|
BASEDIR = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../"))
|
|
|
|
|
|
def get_ext_filename_without_platform_suffix(filename):
|
|
name, ext = os.path.splitext(filename)
|
|
ext_suffix = sysconfig.get_config_var('EXT_SUFFIX')
|
|
|
|
if ext_suffix == ext:
|
|
return filename
|
|
|
|
ext_suffix = ext_suffix.replace(ext, '')
|
|
idx = name.find(ext_suffix)
|
|
|
|
if idx == -1:
|
|
return filename
|
|
else:
|
|
return name[:idx] + ext
|
|
|
|
|
|
class BuildExtWithoutPlatformSuffix(build_ext):
|
|
def get_ext_filename(self, ext_name):
|
|
filename = super().get_ext_filename(ext_name)
|
|
return get_ext_filename_without_platform_suffix(filename)
|
|
|
|
|
|
sourcefiles = ['parser_pyx.pyx']
|
|
extra_compile_args = ["-std=c++11"]
|
|
ARCH = subprocess.check_output(["uname", "-m"], encoding='utf8').rstrip() # pylint: disable=unexpected-keyword-arg
|
|
|
|
if ARCH == "aarch64":
|
|
extra_compile_args += ["-Wno-deprecated-register"]
|
|
|
|
setup(name='CAN parser',
|
|
cmdclass={'build_ext': BuildExtWithoutPlatformSuffix},
|
|
ext_modules=cythonize(
|
|
Extension(
|
|
"parser_pyx",
|
|
language="c++",
|
|
sources=sourcefiles,
|
|
extra_compile_args=extra_compile_args,
|
|
include_dirs=[
|
|
BASEDIR,
|
|
os.path.join(BASEDIR, 'phonelibs', 'capnp-cpp/include'),
|
|
],
|
|
extra_link_args=[
|
|
os.path.join(BASEDIR, 'opendbc', 'can', 'libdbc.so'),
|
|
],
|
|
)
|
|
),
|
|
nthreads=4,
|
|
)
|
|
|