extra = [] import sys if sys.platform == 'linux2': extra += ['-v'] ext = Extension( name='p4p._p4p', sources=[ "src/p4p_top.cpp", "src/p4p_type.cpp", "src/p4p_value.cpp", "src/p4p_array.cpp", "src/p4p_server.cpp", "src/p4p_server_provider.cpp", "src/p4p_server_sharedpv.cpp", "src/p4p_client.cpp", ], include_dirs=get_numpy_include_dirs() + [epicscorelibs.path.include_path], define_macros=get_config_var('CPPFLAGS'), extra_compile_args=get_config_var('CXXFLAGS'), extra_link_args=get_config_var('LDFLAGS') + extra, dsos=[ 'epicscorelibs.lib.pvAccess', 'epicscorelibs.lib.pvData', 'epicscorelibs.lib.ca', 'epicscorelibs.lib.Com' ], libraries=get_config_var('LDADD'), ) setup( name='p4p', version='3.0.0', description="Python interface to PVAccess protocol client",
headers = proc_headers(headers) headers['epicscorelibs.dbd'] = [] \ + glob('modules/database/src/ioc/*/*.dbd') \ + glob('modules/database/src/std/*/*.dbd') \ + glob('modules/database/src/ioc/generated/*.dbd') \ + glob('modules/database/src/std/generated/*.dbd') \ + glob('modules/pvAccess/src/ioc/*.dbd') \ + [('qsrv.dbd', 'modules/pva2pva/pdbApp/qsrv-new.dbd')] # a dummy extension so that bdist_wheel will recognise this package # as containing binaries. ext = Extension( name='epicscorelibs._base', sources=['src/python/epicscorelibs/base.cpp'], define_macros=get_config_var('CPPFLAGS'), extra_compile_args=get_config_var('CXXFLAGS'), extra_link_args=get_config_var('LDFLAGS'), ) setup( name='epicscorelibs', version=package_version, description="The EPICS Core libraries for use by python modules", long_description= """The EPICS (Experimental Physics and Industrial Control System) core libraries for use by python modules. Either dynamically with ctypes or statically by compiled extension. """, url='https://github.com/mdavidsaver/epicscorelibs', author='Michael Davidsaver', author_email='*****@*****.**',
# Our internal interfaces with generated cython # are all c++, and MSVC doesn't allow extern "C" to # return c++ types. cppflags = get_config_var('CPPFLAGS') + [('__PYX_EXTERN_C','extern')] exts = cythonize([ Extension( name='p4p._p4p', sources = [ "src/p4p/_p4p.pyx", "src/pvxs_client.cpp", "src/pvxs_sharedpv.cpp", "src/pvxs_source.cpp", "src/pvxs_type.cpp", "src/pvxs_value.cpp", ], include_dirs = get_numpy_include_dirs()+[epicscorelibs.path.include_path, pvxslibs.path.include_path, 'src', 'src/p4p'], define_macros = cppflags + [('PY_ARRAY_UNIQUE_SYMBOL', 'PVXS_PyArray_API'), ('PVXS_ENABLE_EXPERT_API', None)], extra_compile_args = get_config_var('CXXFLAGS')+cxxflags, extra_link_args = get_config_var('LDFLAGS')+ldflags, dsos = ['pvxslibs.lib.pvxs', 'epicscorelibs.lib.Com' ], libraries = get_config_var('LDADD'), ), Extension( name='p4p._gw', sources=[ 'src/p4p/_gw.pyx', 'src/pvxs_gw.cpp', 'src/pvxs_odometer.cpp'
extra_compile_args = ['-DALL'], lang_compile_args = { 'c':['-DISC'], 'c++':['-DISCXX'], }, # demonstrate how to set an SONAME. # eg. on linux the result will be two files: # dsodemo/lib/libdemo.so # dsodemo/lib/libdemo.so.1.0 soversion='1.0', ) return [dso] ext = Extension('dsodemo.ext.dtest', ['src/extension.cpp'], dsos=['dsodemo.lib.demo'], ) setup( name='dsodemo', version="0.1", # setup/build time dependencies listed in pyproject.toml # cf. PEP 518 #setup_requires = ['setuptools_dso'], # also need at runtime for DSO filename lookup since demo uses ctypes install_requires = ['setuptools_dso'], packages=['dsodemo', 'dsodemo.ext', 'dsodemo.lib'], package_dir={'': 'src'}, ext_modules = [ext], # 'x_dsos' may be None, a list of DSO instances, # or a callable returning a list of DSOs.
sources.append(os.path.join(devIocStats_os, f)) else: sources.append(os.path.join(devIocStats_default, f)) # Extension with all our C code ext = Extension( name='softioc._extension', sources=sources, include_dirs=[ epicscorelibs.path.include_path, devIocStats_src, devIocStats_os, devIocStats_default ], dsos=[ 'epicscorelibs.lib.qsrv', 'epicscorelibs.lib.pvAccessIOC', 'epicscorelibs.lib.pvAccess', 'epicscorelibs.lib.pvData', 'epicscorelibs.lib.dbRecStd', 'epicscorelibs.lib.dbCore', 'epicscorelibs.lib.ca', 'epicscorelibs.lib.Com', ], define_macros=get_config_var('CPPFLAGS'), extra_compile_args=get_config_var('CFLAGS') + ["-std=c99"], extra_link_args=get_config_var('LDFLAGS'), ) # Add custom develop to add soft link to epicscorelibs in . class Develop(develop): def install_for_development(self):