diff options
Diffstat (limited to 'waflib/extras/blender.py')
m--------- | waflib | 0 | ||||
-rw-r--r-- | waflib/extras/blender.py | 108 |
2 files changed, 0 insertions, 108 deletions
diff --git a/waflib b/waflib new file mode 160000 +Subproject 2314e236ca6e7d94a26c3c17091da0f25f5867f diff --git a/waflib/extras/blender.py b/waflib/extras/blender.py deleted file mode 100644 index e5efc280..00000000 --- a/waflib/extras/blender.py +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 -# Michal Proszek, 2014 (poxip) - -""" -Detect the version of Blender, path -and install the extension: - - def options(opt): - opt.load('blender') - def configure(cnf): - cnf.load('blender') - def build(bld): - bld(name='io_mesh_raw', - feature='blender', - files=['file1.py', 'file2.py'] - ) -If name variable is empty, files are installed in scripts/addons, otherwise scripts/addons/name -Use ./waf configure --system to set the installation directory to system path -""" -import os -import re -from getpass import getuser - -from waflib import Utils -from waflib.TaskGen import feature -from waflib.Configure import conf - -def options(opt): - opt.add_option( - '-s', '--system', - dest='directory_system', - default=False, - action='store_true', - help='determines installation directory (default: user)' - ) - -@conf -def find_blender(ctx): - '''Return version number of blender, if not exist return None''' - blender = ctx.find_program('blender') - output = ctx.cmd_and_log(blender + ['--version']) - m = re.search(r'Blender\s*((\d+(\.|))*)', output) - if not m: - ctx.fatal('Could not retrieve blender version') - - try: - blender_version = m.group(1) - except IndexError: - ctx.fatal('Could not retrieve blender version') - - ctx.env['BLENDER_VERSION'] = blender_version - return blender - -@conf -def configure_paths(ctx): - """Setup blender paths""" - # Get the username - user = getuser() - _platform = Utils.unversioned_sys_platform() - config_path = {'user': '', 'system': ''} - if _platform.startswith('linux'): - config_path['user'] = '/home/%s/.config/blender/' % user - config_path['system'] = '/usr/share/blender/' - elif _platform == 'darwin': - # MAC OS X - config_path['user'] = \ - '/Users/%s/Library/Application Support/Blender/' % user - config_path['system'] = '/Library/Application Support/Blender/' - elif Utils.is_win32: - # Windows - appdata_path = ctx.getenv('APPDATA').replace('\\', '/') - homedrive = ctx.getenv('HOMEDRIVE').replace('\\', '/') - - config_path['user'] = '%s/Blender Foundation/Blender/' % appdata_path - config_path['system'] = \ - '%sAll Users/AppData/Roaming/Blender Foundation/Blender/' % homedrive - else: - ctx.fatal( - 'Unsupported platform. ' - 'Available platforms: Linux, OSX, MS-Windows.' - ) - - blender_version = ctx.env['BLENDER_VERSION'] - - config_path['user'] += blender_version + '/' - config_path['system'] += blender_version + '/' - - ctx.env['BLENDER_CONFIG_DIR'] = os.path.abspath(config_path['user']) - if ctx.options.directory_system: - ctx.env['BLENDER_CONFIG_DIR'] = config_path['system'] - - ctx.env['BLENDER_ADDONS_DIR'] = os.path.join( - ctx.env['BLENDER_CONFIG_DIR'], 'scripts/addons' - ) - Utils.check_dir(ctx.env['BLENDER_ADDONS_DIR']) - -def configure(ctx): - ctx.find_blender() - ctx.configure_paths() - -@feature('blender_list') -def blender(self): - # Two ways to install a blender extension: as a module or just .py files - dest_dir = os.path.join(self.env.BLENDER_ADDONS_DIR, self.get_name()) - Utils.check_dir(dest_dir) - self.add_install_files(install_to=dest_dir, install_from=getattr(self, 'files', '.')) - |