def setup(**kw): # setuptools_dso.setup hardcodes setuptools_dso.build_ext to be used. # temporarily inject what user specified in cmdclass, or our code there. _ = setuptools_dso.build_ext try: setuptools_dso.build_ext = kw.get('cmdclass', {}).get('build_ext', build_ext) setuptools_dso.setup(**kw) finally: setuptools_dso.build_ext = _
setup( name='p4p', version='3.0.0', description="Python interface to PVAccess protocol client", url='https://mdavidsaver.github.io/p4p', author='Michael Davidsaver', author_email='*****@*****.**', license='BSD', classifiers=[ 'Development Status :: 4 - Beta', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'License :: Freely Distributable', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering', 'Topic :: Software Development :: Libraries', 'Topic :: System :: Distributed Computing', ], keywords='epics scada', python_requires='>=2.7', packages=[ 'p4p', 'p4p.nt', 'p4p.client', 'p4p.test', 'p4p.server', ], package_dir={'': 'src'}, ext_modules=[ext], install_requires=[ epicscorelibs.version.abi_requires(), # assume ABI forward compatibility as indicated by # https://github.com/numpy/numpy/blob/master/numpy/core/setup_common.py#L28 'numpy >=%s' % numpy.version.short_version, 'nose>=1.1.2', ], zip_safe=False, )
setup( name='p4p', version=package_version, description="Python interface to PVAccess protocol client", url='https://mdavidsaver.github.io/p4p', author='Michael Davidsaver', author_email='*****@*****.**', license='BSD', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: Implementation :: CPython', 'License :: Freely Distributable', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering', 'Topic :: Software Development :: Libraries', 'Topic :: System :: Distributed Computing', 'Operating System :: POSIX :: Linux', 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', ], keywords='epics scada', python_requires='>=2.7', packages=[ 'p4p', 'p4p.nt', 'p4p.client', 'p4p.test', 'p4p.server', 'p4p.asLib', ], package_dir={'': 'src'}, ext_modules=[ext] + gwext, install_requires=[ epicscorelibs.version.abi_requires(), # assume ABI forward compatibility as indicated by # https://github.com/numpy/numpy/blob/master/numpy/core/setup_common.py#L28 'numpy >=%s' % numpy.version.short_version, 'nose>=1.1.2', 'ply', # for asLib ], extras_require={ 'qt': ['qtpy'], }, entry_points={ 'console_scripts': ['pvagw=p4p.gw:main'], }, zip_safe=False, )
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='*****@*****.**', license='EPICS', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'License :: Freely Distributable', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering', 'Topic :: Software Development :: Libraries', 'Topic :: System :: Distributed Computing', 'Operating System :: POSIX :: Linux', 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', ], keywords='epics scada', project_urls={ 'Source': 'https://github.com/mdavidsaver/epicscorelibs', 'Tracker': 'https://github.com/mdavidsaver/epicscorelibs/issues', 'Upstream': 'https://epics.anl.gov/', }, python_requires='>=2.7', install_requires=[ 'setuptools', # needed at runtime for 'pkg_resources' 'setuptools_dso>=2.0a1', # 'setuptools_dso.runtime' used in 'epicscorelibs.path' 'numpy', # needed for epicscorelibs.ca.dbr ], packages=[ 'epicscorelibs', 'epicscorelibs.lib', 'epicscorelibs.path', 'epicscorelibs.test', 'epicscorelibs.ca', ], package_dir={'': os.path.join('src', 'python')}, package_data={ '': ['*.pxd'], 'dbd': [ 'modules/database/src/ioc/*/*.dbd', 'modules/database/src/std/*/*.dbd', 'modules/database/src/ioc/generated/*.dbd', 'modules/database/src/std/generated/*.dbd', ], }, ext_modules=[ext], x_dsos=modules, x_headers=headers, x_api_h=[ ('libCom', 'modules/libcom/src/libComAPI.h'), ('libCa', 'modules/ca/src/client/libCaAPI.h'), ('dbCore', 'modules/database/src/ioc/dbCoreAPI.h'), ('dbRecStd', 'modules/database/src/std/dbRecStdAPI.h'), ], x_expand=[ ('modules/libcom/src/libComVersion.h@', 'modules/libcom/src/libComVersion.h', ['configure/CONFIG_LIBCOM_VERSION']), ('modules/database/src/ioc/databaseVersion.h@', 'modules/database/src/ioc/databaseVersion.h', ['configure/CONFIG_DATABASE_VERSION']), ('modules/pvData/src/pv/pvdVersionNum.h@', 'modules/pvData/src/pv/pvdVersionNum.h', ['modules/pvData/configure/CONFIG_PVDATA_VERSION']), ('modules/pvAccess/src/pva/pvaVersionNum.h@', 'modules/pvAccess/src/pva/pv/pvaVersionNum.h', ['modules/pvAccess/configure/CONFIG_PVACCESS_VERSION']), ('modules/pva2pva/pdbApp/pv/qsrvVersionNum.h@', 'modules/pva2pva/pdbApp/pv/qsrvVersionNum.h', ['modules/pva2pva/configure/CONFIG_QSRV_VERSION']), ], x_errtable=[ "modules/libcom/src/osi/devLib.h", "modules/libcom/src/osi/epicsTime.h", #"modules/libcom/src/as/asLib.h", "modules/libcom/src/misc/epicsStdlib.h", "modules/libcom/src/pool/epicsThreadPool.h", "modules/libcom/src/error/errMdef.h", ], cmdclass={ 'build_generated': GenVersionError, 'build_expand': Expand, 'build_apih': MakeAPIH, 'install_epics_headers': InstallHeaders, }, zip_safe=False, )
}, # 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. #x_dsos = [dso], x_dsos = define_DSOs, )
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): develop.install_for_development(self) # Make a link here to epicscorelibs so `pip install -e .` works # If we don't do this dbCore can't be found when _extension is # built into . link = os.path.join(self.egg_path, "epicscorelibs") if not os.path.exists(link): os.symlink(os.path.join(self.install_dir, "epicscorelibs"), link) setup( cmdclass=dict(develop=Develop, **get_cmdclass()), version=__version__, ext_modules=[ext], install_requires=[ # Dependency version declared in pyproject.toml epicscorelibs.version.abi_requires(), "numpy", "epicsdbbuilder>=1.4" ], zip_safe=False, # setuptools_dso is not compatible with eggs! )
from setuptools_dso import DSO, Extension, setup dso = DSO( 'dsodemo.lib.demo', ['src/foo.c', 'src/bar.cpp'], define_macros=[('BUILD_FOO', None)], extra_compile_args=['-DALL'], lang_compile_args={ 'c': ['-DISC'], 'c++': ['-DISCXX'], }, soversion='1.0', ) ext = Extension( 'dsodemo.ext.dtest', ['src/extension.cpp'], dsos=['dsodemo.lib.demo'], ) setup( name='dsodemo', version="0.1", setup_requires=['setuptools_dso'], packages=['dsodemo', 'dsodemo.ext'], package_dir={'': 'src'}, ext_modules=[ext], x_dsos=[dso], )
setup( name='pvxslibs', version=pvxs_ver, description="PVXS libraries packaged for python", url='https://mdavidsaver.github.io/pvxs', author='Michael Davidsaver', author_email='*****@*****.**', license='BSD', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: Implementation :: CPython', 'License :: OSI Approved :: BSD License', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering', 'Topic :: Software Development :: Libraries', 'Topic :: System :: Distributed Computing', 'Operating System :: POSIX :: Linux', 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', ], keywords='epics scada', python_requires='>=2.7', # setup/build time dependencies listed in pyproject.toml # cf. PEP 518 #setup_requires = ['setuptools_dso'], # also need at runtime for DSO filename lookup install_requires=[ 'setuptools_dso>=2.1a3', epicscorelibs.version.abi_requires(), ], packages=['pvxslibs', 'pvxslibs.lib', 'pvxslibs.test'], package_dir={'': 'python'}, x_dsos=define_DSOS, cmdclass={ 'build_expand': Expand, 'install_epics_headers': InstallHeaders, }, zip_safe=False)
define_macros = [('BUILD_FOO', None)], # demonstrate passing other compiler flags, either conditionally or not. # these are not actually used. 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', ) 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'], packages=['dsodemo', 'dsodemo.ext'], package_dir={'': 'src'}, ext_modules = [ext], x_dsos = [dso], )