import os
import numpy
import sysconfig

from Cython.Build import cythonize
from Cython.Distutils import build_ext
from distutils.core import Extension, setup  # pylint: disable=import-error,no-name-in-module

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)


setup(
  name='Cython transformations wrapper',
  cmdclass={'build_ext': BuildExtWithoutPlatformSuffix},
  ext_modules=cythonize(
  Extension(
    "transformations",
    sources=["transformations.pyx"],
    language="c++",
    extra_compile_args=["-std=c++14"],
    include_dirs=[numpy.get_include()],
  )
))