| @@ -1,122 +1,122 @@ | |||||
| #!/usr/bin/env python | |||||
| # | |||||
| # Copyright (c) 2015, SmartFile <tcunningham@smartfile.com> | |||||
| # All rights reserved. | |||||
| # | |||||
| # Redistribution and use in source and binary forms, with or without | |||||
| # modification, are permitted provided that the following conditions are met: | |||||
| # * Redistributions of source code must retain the above copyright | |||||
| # notice, this list of conditions and the following disclaimer. | |||||
| # * Redistributions in binary form must reproduce the above copyright | |||||
| # notice, this list of conditions and the following disclaimer in the | |||||
| # documentation and/or other materials provided with the distribution. | |||||
| # * Neither the name of the organization nor the | |||||
| # names of its contributors may be used to endorse or promote products | |||||
| # derived from this software without specific prior written permission. | |||||
| # | |||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |||||
| # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||||
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY | |||||
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||||
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||||
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| from os import environ | |||||
| try: | |||||
| from setuptools import setup, Extension | |||||
| from setuptools.command.build_ext import build_ext | |||||
| except ImportError: | |||||
| from distutils.core import setup, Extension | |||||
| from distutils.command.build_ext import build_ext | |||||
| # Use a provided libarchive else default to hard-coded path. | |||||
| libarchivePrefix = environ.get('LIBARCHIVE_PREFIX') | |||||
| if libarchivePrefix: | |||||
| includePath = libarchivePrefix + '/include' | |||||
| else: | |||||
| includePath = '/usr/local/include' | |||||
| name = 'python-libarchive' | |||||
| version = '4.2.0' | |||||
| readme = 'README.rst' | |||||
| repourl = 'https://github.com/smartfile/python-libarchive' | |||||
| 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')) | |||||
| def initialize_options(self): | |||||
| build_ext.initialize_options(self) | |||||
| self.extra_compile_args = None | |||||
| self.extra_link_args = None | |||||
| def build_extension(self, ext): | |||||
| if self.extra_compile_args: | |||||
| ext.extra_compile_args.append(self.extra_compile_args) | |||||
| if self.extra_link_args: | |||||
| ext.extra_link_args.append(self.extra_link_args) | |||||
| super(build_ext_extra, self).build_extension(ext) | |||||
| 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', '')) | |||||
| else: | |||||
| extra_compile_args = [] | |||||
| extra_link_args = ['-l:libarchive.so'] | |||||
| __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=[includePath, 'libarchive'], | |||||
| ) | |||||
| setup( | |||||
| name=name, | |||||
| version=version, | |||||
| 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='tech@smartfile.com', | |||||
| url=repourl, | |||||
| packages=['libarchive'], | |||||
| classifiers=[ | |||||
| 'Development Status :: 5 - Production/Stable', | |||||
| '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], | |||||
| ) | |||||
| #!/usr/bin/env python | |||||
| # | |||||
| # Copyright (c) 2015, SmartFile <tcunningham@smartfile.com> | |||||
| # All rights reserved. | |||||
| # | |||||
| # Redistribution and use in source and binary forms, with or without | |||||
| # modification, are permitted provided that the following conditions are met: | |||||
| # * Redistributions of source code must retain the above copyright | |||||
| # notice, this list of conditions and the following disclaimer. | |||||
| # * Redistributions in binary form must reproduce the above copyright | |||||
| # notice, this list of conditions and the following disclaimer in the | |||||
| # documentation and/or other materials provided with the distribution. | |||||
| # * Neither the name of the organization nor the | |||||
| # names of its contributors may be used to endorse or promote products | |||||
| # derived from this software without specific prior written permission. | |||||
| # | |||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |||||
| # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||||
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY | |||||
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||||
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||||
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| from os import environ | |||||
| try: | |||||
| from setuptools import setup, Extension | |||||
| from setuptools.command.build_ext import build_ext | |||||
| except ImportError: | |||||
| from distutils.core import setup, Extension | |||||
| from distutils.command.build_ext import build_ext | |||||
| # Use a provided libarchive else default to hard-coded path. | |||||
| libarchivePrefix = environ.get('LIBARCHIVE_PREFIX') | |||||
| if libarchivePrefix: | |||||
| includePath = libarchivePrefix + '/include' | |||||
| else: | |||||
| includePath = '/usr/local/include' | |||||
| name = 'python-libarchive' | |||||
| version = '4.2.0' | |||||
| readme = 'README.rst' | |||||
| repourl = 'https://github.com/smartfile/python-libarchive' | |||||
| 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')) | |||||
| def initialize_options(self): | |||||
| build_ext.initialize_options(self) | |||||
| self.extra_compile_args = None | |||||
| self.extra_link_args = None | |||||
| def build_extension(self, ext): | |||||
| if self.extra_compile_args: | |||||
| ext.extra_compile_args.append(self.extra_compile_args) | |||||
| if self.extra_link_args: | |||||
| ext.extra_link_args.append(self.extra_link_args) | |||||
| super(build_ext_extra, self).build_extension(ext) | |||||
| 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', '')) | |||||
| else: | |||||
| extra_compile_args = [] | |||||
| extra_link_args = ['-l:libarchive.so'] | |||||
| __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=[includePath, 'libarchive'], | |||||
| ) | |||||
| setup( | |||||
| name=name, | |||||
| version=version, | |||||
| 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='tech@smartfile.com', | |||||
| url=repourl, | |||||
| packages=['libarchive'], | |||||
| classifiers=[ | |||||
| 'Development Status :: 5 - Production/Stable', | |||||
| '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], | |||||
| ) | |||||