Skip to content
Snippets Groups Projects
setup.py 2.84 KiB
#!/usr/bin/env python

from os.path import dirname, join, realpath
from setuptools import setup, find_packages, Extension

from Cython.Build import cythonize
from karabo.packaging.versioning import device_scm_version


ROOT_FOLDER = dirname(realpath(__file__))
scm_version = device_scm_version(
    ROOT_FOLDER,
    join(ROOT_FOLDER, 'src', 'calng', '_version.py')
)


setup(name='calng',
      use_scm_version=scm_version,
      author='CAL team',
      author_email='da-support@xfel.eu',
      description='',
      long_description='',
      url='',
      package_dir={'': 'src'},
      packages=find_packages('src'),
      entry_points={
          'karabo.bound_device': [
              'AgipdCorrection = calng.corrections.AgipdCorrection:AgipdCorrection',
              'DsscCorrection = calng.corrections.DsscCorrection:DsscCorrection',
              'Epix100Correction = calng.corrections.Epix100Correction:Epix100Correction',
              'Gotthard2Correction = calng.corrections.Gotthard2Correction:Gotthard2Correction',
              'JungfrauCorrection = calng.corrections.JungfrauCorrection:JungfrauCorrection',
              'LpdCorrection = calng.corrections.LpdCorrection:LpdCorrection',
              'ShmemToZMQ = calng.ShmemToZMQ:ShmemToZMQ',
              'ShmemTrainMatcher = calng.ShmemTrainMatcher:ShmemTrainMatcher',
              'DetectorAssembler = calng.DetectorAssembler:DetectorAssembler',
          ],

          'karabo.middlelayer_device': [
              'CalibrationManager = calng.CalibrationManager:CalibrationManager',
              'AgipdCondition = calng.conditions:AgipdCondition.AgipdCondition',
              'JungfrauCondition = calng.conditions.JungfrauCondition:JungfrauCondition',
              'Agipd1MGeometry = calng.geometries.Agipd1MGeometry:Agipd1MGeometry',
              'Dssc1MGeometry = calng.geometries:Dssc1MGeometry.Dssc1MGeometry',
              'Epix100Geometry = calng.geometries:Epix100Geometry.Epix100Geometry',
              'Lpd1MGeometry = calng.geometries:Lpd1MGeometry.Lpd1MGeometry',
              'JungfrauGeometry = calng.geometries:JungfrauGeometry.JungfrauGeometry',
              'RoiTool = calng.RoiTool:RoiTool',
          ],
      },
      package_data={'': ['kernels/*']},
      requires=[],
      ext_modules=cythonize(
          [
              Extension(
                  'calng.kernels.gotthard2_cython',
                  ['src/calng/kernels/gotthard2_cpu.pyx'],
                  extra_compile_args=['-O3', '-march=native'],
              ),
              Extension(
                  'calng.kernels.jungfrau_cython',
                  ['src/calng/kernels/jungfrau_cpu.pyx'],
                  extra_compile_args=['-O3', '-march=native', '-fopenmp'],
                  extra_link_args=['-fopenmp'],
              ),
          ],
          compiler_directives={
              'language_level': 3
          },
      ),
)