| @@ -34,29 +34,36 @@ except ImportError: | |||
| from distutils.core import setup, Extension | |||
| from distutils.command.build_ext import build_ext | |||
| import libarchive | |||
| import subprocess | |||
| # retreive the version number form SWIG generated file | |||
| cmd = [ | |||
| 'awk', | |||
| '/ARCHIVE_VERSION_NUMBER/ { if (match($0,"[[:digit:]]+")) print substr($0, RSTART,RLENGTH) }', | |||
| "libarchive/_libarchive_wrap.c", | |||
| ] | |||
| p = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |||
| vnum = int(p.stdout) | |||
| name = 'python-libarchive-ext' | |||
| version = libarchive._libarchive.ARCHIVE_VERSION_STRING.split(' ')[1] | |||
| version = '{}.{}.{}'.format(vnum // 1000000, (vnum // 1000) % 100, vnum % 100) | |||
| versrel = version | |||
| readme = 'README.rst' | |||
| repourl = 'https://github.com/Vadiml1024/python-libarchive' | |||
| download_url = repourl + '/tarball/extended' | |||
| repobranch = 'extended' | |||
| download_url = repourl + f'/tarball/{repobranch}' | |||
| long_description = open(readme).read() | |||
| class build_ext_extra(build_ext, object): | |||
| """ | |||
| Extend build_ext allowing extra_compile_args and extra_link_args to be set | |||
| on the command-line. | |||
| """ | |||
| user_options = build_ext.user_options | |||
| user_options.append( | |||
| ('extra-compile-args=', None, | |||
| 'Extra arguments passed directly to the compiler') | |||
| ) | |||
| user_options.append( | |||
| ('extra-link-args=', None, | |||
| 'Extra arguments passed directly to the linker') | |||
| ) | |||
| user_options.append(('extra-compile-args=', None, 'Extra arguments passed directly to the compiler')) | |||
| user_options.append(('extra-link-args=', None, 'Extra arguments passed directly to the linker')) | |||
| def initialize_options(self): | |||
| build_ext.initialize_options(self) | |||
| @@ -76,43 +83,44 @@ libarchivePrefix = environ.get('LIBARCHIVE_PREFIX') | |||
| if libarchivePrefix: | |||
| extra_compile_args = ['-I{0}/include'.format(libarchivePrefix)] | |||
| extra_link_args = ['-Wl,-rpath={0}/lib'.format(libarchivePrefix)] | |||
| environ['LDFLAGS'] = '-L{0}/lib {1}'.format(libarchivePrefix, | |||
| environ.get('LDFLAGS', '')) | |||
| environ['LDFLAGS'] = '-L{0}/lib {1}'.format(libarchivePrefix, environ.get('LDFLAGS', '')) | |||
| else: | |||
| extra_compile_args = [] | |||
| extra_link_args = ['-l:libarchive.so.13'] | |||
| __libarchive = Extension(name='libarchive.__libarchive', | |||
| sources=['libarchive/_libarchive_wrap.c'], | |||
| libraries=['archive'], | |||
| extra_compile_args=extra_compile_args, | |||
| extra_link_args=extra_link_args, | |||
| include_dirs=['libarchive'], | |||
| ) | |||
| __libarchive = Extension( | |||
| name='libarchive.__libarchive', | |||
| sources=['libarchive/_libarchive_wrap.c'], | |||
| libraries=['archive'], | |||
| extra_compile_args=extra_compile_args, | |||
| extra_link_args=extra_link_args, | |||
| include_dirs=['libarchive'], | |||
| ) | |||
| setup(name = name, | |||
| version = versrel, | |||
| description = 'A libarchive wrapper for Python supporting password protection.', | |||
| long_description = long_description, | |||
| license = 'BSD-style license', | |||
| platforms = ['any'], | |||
| author = 'Vadim Lebedev, Ben Timby, Travis Cunningham, Ryan Johnston, SmartFile', | |||
| author_email = 'vadiml1024@gmail.com', | |||
| url = repourl, | |||
| download_url = download_url, | |||
| packages = ['libarchive'], | |||
| classifiers = [ | |||
| 'Development Status :: 4 - Beta', | |||
| 'Intended Audience :: Developers', | |||
| 'Operating System :: OS Independent', | |||
| 'Programming Language :: C', | |||
| 'Programming Language :: Python', | |||
| 'Topic :: System :: Archiving :: Compression', | |||
| 'Topic :: Software Development :: Libraries :: Python Modules', | |||
| ], | |||
| cmdclass = { | |||
| setup( | |||
| name=name, | |||
| version=versrel, | |||
| description='A libarchive wrapper for Python supporting password protection.', | |||
| long_description=long_description, | |||
| license='BSD-style license', | |||
| platforms=['any'], | |||
| author='Vadim Lebedev, Ben Timby, Travis Cunningham, Ryan Johnston, SmartFile', | |||
| author_email='vadiml1024@gmail.com', | |||
| url=repourl, | |||
| download_url=download_url, | |||
| packages=['libarchive'], | |||
| classifiers=[ | |||
| 'Development Status :: 4 - Beta', | |||
| 'Intended Audience :: Developers', | |||
| 'Operating System :: OS Independent', | |||
| 'Programming Language :: C', | |||
| 'Programming Language :: Python', | |||
| 'Topic :: System :: Archiving :: Compression', | |||
| 'Topic :: Software Development :: Libraries :: Python Modules', | |||
| ], | |||
| cmdclass={ | |||
| 'build_ext': build_ext_extra, | |||
| }, | |||
| ext_modules = [__libarchive], | |||
| ) | |||
| }, | |||
| ext_modules=[__libarchive], | |||
| ) | |||