-# setup.py
+# coding: utf-8
from distutils.core import setup, Extension
+import os
+import sys
-# mqo
-###############################################################################
-mqoExtension=Extension("_mqo",
- ["mqo.i"],
- swig_opts=['-c++'],
- include_dirs=[
+option={
+ 'swig_opts': ['-c++'],
+ 'include_dirs': [
'../include'
],
- libraries=[
+ 'libraries': [
'meshio',
],
- library_dirs=[
+ 'library_dirs': [
'../release',
- 'T:/Blender/bf-blender/lib/windows/python/lib',
],
- extra_compile_args=[
- '/EHsc', '/MT', '/D_WIN32',
- ],
- extra_link_args=[
- ],
- )
+ }
-# pmd
-###############################################################################
-pmdExtension=Extension("_pmd",
- ["pmd.i"],
- swig_opts=['-c++'],
- include_dirs=[
- '../include'
- ],
- libraries=[
- 'meshio',
- ],
- library_dirs=[
- '../release',
- ],
- extra_compile_args=[
- '/EHsc', '/MT', '/D_WIN32',
- ],
- extra_link_args=[
- ],
- )
+if os.name=='nt':
+ # vc option
+ option['extra_compile_args']=[
+ '/EHsc', '/MT',
+ ]
-# vmd
-###############################################################################
-vmdExtension=Extension("_vmd",
- ["vmd.i"],
- swig_opts=['-c++'],
- include_dirs=[
- '../include'
- ],
- libraries=[
- 'meshio',
- ],
- library_dirs=[
- '../release',
- ],
- extra_compile_args=[
- '/EHsc', '/MT', '/D_WIN32',
- ],
- extra_link_args=[
- ],
- )
+# swig c extensions
+ext_modules=[
+ Extension("_mqo", ["mqo.i"], **option),
+ Extension("_pmd", ["pmd.i"], **option),
+ Extension("_vmd", ["vmd.i"], **option),
+ ]
+
+# blender importers
+if sys.version_info[0]<3:
+ # blender 2.4
+ data_files=[
+ ('blender24', [
+ 'blender24/README',
+ 'mqo_import.py',
+ 'mqo_export.py',
+ 'pmd_import.py',
+ 'pmd_export.py',
+ 'blender24/vmd_import.py',
+ ])
+ ]
+else:
+ # blender2.5
+ data_files=[
+ ('blender25', [
+ 'blender25/README',
+ 'import_scene_mqo.py',
+ 'export_scene_mqo.py',
+ 'import_scene_pmd.py',
+ 'export_scene_pmd.py',
+ ])
+ ]
-setup(name="meshio",
- packages=['meshio'],
- package_dir={'meshio': '.'},
- ext_package='meshio',
- ext_modules=[mqoExtension, pmdExtension, vmdExtension]
- )
+# スタティックruntime(/MT)とリンクするのでマニフェストが不要だが
+# mt.exeの呼び出しを止めることができないので
+for i in range(len(ext_modules)+1):
+ try:
+ setup(name="meshio",
+ version='0.6',
+ description='polygon mesh io utilities',
+ author='ousttrue',
+ author_email='ousttrue@gmail.com',
+ url='http://sourceforge.jp/projects/meshio/',
+ packages=['meshio'],
+ package_dir={'meshio': '.'},
+ ext_package='meshio',
+ ext_modules=ext_modules,
+ data_files=data_files
+ )
+ break
+ except:
+ continue