setup.py (38 lines of code) (raw):
from setuptools.command.build_ext import build_ext as _build_ext
from setuptools import setup, Extension
import subprocess
# For building Pachi as a library
class BuildLibPachi(_build_ext):
def run(self):
try:
subprocess.check_call("cd pachi_py; mkdir -p build && cd build && cmake ../pachi && make -j4", shell=True)
except subprocess.CalledProcessError as e:
print("Could not build pachi-py: %s" % e)
raise
# Prevent numpy from trying to setup
__builtins__.__NUMPY_SETUP__ = False
import numpy
self.include_dirs.append(numpy.get_include())
_build_ext.run(self)
# Cython recommands checking in the Cython-generated C files
# (cf. http://stackoverflow.com/a/19138055).
# After changing pachi_py/cypachi.pyx, recompile using:
#
# $ cython --cplus pachi_py/cypachi.pyx
#
ext = Extension(
name="pachi_py.cypachi",
sources=["pachi_py/cypachi.cpp", "pachi_py/goutil.cpp"],
language="c++",
include_dirs=["pachi_py/pachi"],
libraries=["pachi"],
library_dirs=["pachi_py/build/lib"], # this is the output dir of BuildLibPachi
extra_compile_args=["-std=c++11"],
)
setup(name='pachi-py',
version='0.0.21',
description='Python bindings to Pachi',
url='https://github.com/openai/pachi-py',
author='OpenAI',
author_email='info@openai.com',
packages=['pachi_py'],
cmdclass={'build_ext': BuildLibPachi},
setup_requires=['numpy'],
install_requires=['numpy'],
tests_require=['nose2'],
classifiers=['License :: OSI Approved :: GNU General Public License v2 (GPLv2)'],
ext_modules=[ext],
include_package_data=True,
)