3 import distutils.command.build_ext
4 import distutils.command.build_ext
5 #from distutils.core import setup, Extension
6 from setuptools import setup, Extension
14 'swig_opts': ['-c++'],
27 shutil.copy("pymeshio/englishmap.py", ".")
31 option['extra_compile_args']=[
37 Extension("_mqo", ["mqo.i"], **option),
38 Extension("_pmd", ["pmd.i"], **option),
39 Extension("_vmd", ["vmd.i"], **option),
43 if sys.version_info[0]<3:
49 'blender/mqo_import.py',
50 'blender/mqo_export.py',
51 'blender/pmd_import.py',
52 'blender/pmd_export.py',
54 ('blender24/pymeshio', [
55 'pymeshio/__init__.py',
58 'pymeshio/englishmap.py',
63 # rename blender25 files
64 if not os.path.exists("addons"):
66 shutil.copy("blender/mqo_import.py", "addons/io_import_scene_mqo.py")
67 shutil.copy("blender/mqo_export.py", "addons/io_export_scene_mqo.py")
68 shutil.copy("blender/pmd_import.py", "addons/io_import_scene_pmd.py")
69 shutil.copy("blender/pmd_export.py", "addons/io_export_scene_pmd.py")
76 ('blender25/addons', [
78 'addons/io_import_scene_mqo.py',
79 'addons/io_export_scene_mqo.py',
80 'addons/io_import_scene_pmd.py',
81 'addons/io_export_scene_pmd.py',
83 ('blender25/addons/pymeshio', [
84 'pymeshio/__init__.py',
87 'pymeshio/englishmap.py',
91 def mysetup(ext_modules, data_files):
94 description='polygon mesh io utilities',
96 author_email='ousttrue@gmail.com',
97 url='http://sourceforge.jp/projects/meshio/',
99 package_dir={'meshio': '.'},
100 ext_package='meshio',
101 ext_modules=ext_modules,
102 data_files=data_files,
104 "Programming Language :: Python",
105 "Programming Language :: Python :: 3",
106 "Development Status :: 4 - Beta",
107 "Environment :: Other Environment",
108 "Intended Audience :: Developers",
109 "License :: OSI Approved :: BSD License",
110 "Operating System :: Microsoft :: Windows",
111 "Operating System :: POSIX :: Linux",
112 "Natural Language :: Japanese",
113 "Topic :: Multimedia :: Graphics :: 3D Modeling",
118 # スタティックruntime(/MT)とリンクするのでマニフェストが不要だが
119 # mt.exeの呼び出しを止めることができないので
120 # 繰り返す(1度目でエラーになり2度目で通過できる)
121 for i in range(len(ext_modules)+1):
123 mysetup(ext_modules, data_files)
129 pattern=re.compile("<:")
132 io=open(new_file, 'wb')
134 if sys.version_info[0]<3:
135 io.write(pattern.sub("< :", line))
137 io.write(pattern.sub("< :", line).encode('utf-8'))
141 org=distutils.command.build_ext.build_ext.swig_sources
142 def custom(self, sources, extension):
143 return [edit(f) for f in org(self, sources, extension)]
144 distutils.command.build_ext.build_ext.swig_sources=custom
145 mysetup(ext_modules, data_files)