setup.py (44 lines of code) (raw):

from setuptools import setup, find_packages from setuptools import setup, Extension from setuptools.command.build_ext import build_ext import subprocess import sys, os import re dep = """ C++ dependencies for this project are: bullet tinyxml boost_python assimp Qt5 If you see compilation error FIRST THING TO CHECK if pkg-config call was successful. Install dependencies that pkg-config cannot find. """ from setuptools.command.install import install as DistutilsInstall from setuptools.command.egg_info import egg_info as EggInfo setup_py_dir = os.path.dirname(os.path.realpath(__file__)) class CMakeExtension(Extension): def __init__(self, name, sourcedir=''): Extension.__init__(self, name, sources=[]) self.sourcedir = os.path.abspath(sourcedir) class Build(build_ext): def run(self): pass need_files = ['cpp_household.so'] hh = setup_py_dir + "/roboschool" need_files_ext = 'png jpg urdf obj mtl dae off stl STL xml glsl dylib'.split() need_files_re = [re.compile(r'.+\.'+p) for p in need_files_ext] need_files_re.append(re.compile(r'.+\.so(.\d+)*')) need_files_re.append(re.compile(r'.+/\.libs/.+')) need_files_re.append(re.compile(r'.+/\.qt_plugins/.+')) for root, dirs, files in os.walk(hh): for fn in files: fn = root + '/' + fn if any([p.match(fn) for p in need_files_re]): need_files.append(fn[1+len(hh):]) print("found resource files: %i" % len(need_files)) for n in need_files: print("-- %s" % n) setup( name = 'roboschool', version = '1.0.49', description = 'OpenAI Household Simulator: mobile manipulation using Bullet', maintainer = 'Oleg Klimov', maintainer_email = 'omgtech@gmail.com', url = 'https://github.com/openai/roboschool', packages=[x for x in find_packages()], ext_modules=[CMakeExtension('roboschool')], cmdclass={'build_ext': Build}, install_requires=['gym'], package_data = { '': need_files } )