Added setup.py so we can package the addon as ZIP.
`python setup.py bdist` creates dist/blender_cloud*.addon.zip, which can be installed by Blender.
This commit is contained in:
parent
43a8a1ad68
commit
7e9e1d122c
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,3 +5,5 @@
|
|||||||
blender_cloud/wheels/*.whl
|
blender_cloud/wheels/*.whl
|
||||||
/textures*/
|
/textures*/
|
||||||
/test_*.py
|
/test_*.py
|
||||||
|
/dist/
|
||||||
|
/build/
|
||||||
|
64
setup.py
Executable file
64
setup.py
Executable file
@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from distutils.command.bdist import bdist
|
||||||
|
from distutils.command.install import install
|
||||||
|
from distutils.command.install_egg_info import install_egg_info
|
||||||
|
from setuptools import setup, find_packages
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
|
||||||
|
class BlenderAddonBdist(bdist):
|
||||||
|
"""Ensures that 'python setup.py bdist' creates a zip file."""
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
super().initialize_options()
|
||||||
|
self.formats = ['zip']
|
||||||
|
self.plat_name = 'addon' # use this instead of 'linux-x86_64' or similar.
|
||||||
|
|
||||||
|
|
||||||
|
class BlenderAddonInstall(install):
|
||||||
|
"""Ensures the module is placed at the root of the zip file."""
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
super().initialize_options()
|
||||||
|
self.prefix = ''
|
||||||
|
self.install_lib = ''
|
||||||
|
|
||||||
|
|
||||||
|
class AvoidEggInfo(install_egg_info):
|
||||||
|
"""Makes sure the egg-info directory is NOT created.
|
||||||
|
|
||||||
|
If we skip this, the user's addon directory will be polluted by egg-info
|
||||||
|
directories, which Blender doesn't use anyway.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
setup(
|
||||||
|
cmdclass={'bdist': BlenderAddonBdist,
|
||||||
|
'install': BlenderAddonInstall,
|
||||||
|
'install_egg_info': AvoidEggInfo},
|
||||||
|
name='blender_cloud',
|
||||||
|
description='The Blender Cloud addon allows browsing the Blender Cloud from Blender.',
|
||||||
|
version='1.0.0',
|
||||||
|
author='Sybren A. Stüvel',
|
||||||
|
author_email='sybren@stuvel.eu',
|
||||||
|
packages=find_packages('.'),
|
||||||
|
data_files=[('blender_cloud', ['README.md']),
|
||||||
|
('blender_cloud/wheels', glob('blender_cloud/wheels/*.whl'))],
|
||||||
|
scripts=[],
|
||||||
|
url='https://developer.blender.org/diffusion/BCA/',
|
||||||
|
license='GNU General Public License v2 or later (GPLv2+)',
|
||||||
|
platforms='',
|
||||||
|
classifiers=[
|
||||||
|
'Intended Audience :: End Users/Desktop',
|
||||||
|
'Operating System :: OS Independent',
|
||||||
|
'Environment :: Plugins',
|
||||||
|
'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)',
|
||||||
|
'Programming Language :: Python',
|
||||||
|
'Programming Language :: Python :: 3.5',
|
||||||
|
],
|
||||||
|
zip_safe=False,
|
||||||
|
)
|
Reference in New Issue
Block a user