2018-05-23 18:25:52 +02:00
|
|
|
"""
|
|
|
|
Author: Lawrence Du
|
|
|
|
E-mail: larrydu88@gmail.com
|
|
|
|
"""
|
|
|
|
|
2018-05-23 18:23:21 +02:00
|
|
|
from toolchain import CythonRecipe,shprint
|
|
|
|
import os
|
|
|
|
from os.path import join
|
|
|
|
import sh
|
|
|
|
|
|
|
|
class CymunkRecipe(CythonRecipe):
|
|
|
|
version = 'master'
|
|
|
|
url = 'https://github.com/tito/cymunk/archive/{version}.zip'
|
|
|
|
name = 'cymunk'
|
|
|
|
depends = ['hostpython']
|
|
|
|
cythonize = True
|
|
|
|
|
|
|
|
def build_arch(self, arch):
|
|
|
|
"""
|
|
|
|
Override build.arch to avoid calling setup.py here (Call it in
|
|
|
|
install() instead).
|
|
|
|
"""
|
|
|
|
self.cythonize_build()
|
|
|
|
self.biglink()
|
|
|
|
|
|
|
|
|
|
|
|
def install(self):
|
|
|
|
"""
|
|
|
|
Do the equivalent of
|
|
|
|
python setup.py build_ext install
|
|
|
|
while setting the proper environment variables
|
|
|
|
|
|
|
|
"""
|
|
|
|
arch = list(self.filtered_archs)[0]
|
|
|
|
build_env = self.get_recipe_env(arch)
|
|
|
|
hostpython = sh.Command(self.ctx.hostpython)
|
|
|
|
subdir_path = self.get_build_dir(arch.arch)
|
|
|
|
setup_path = join(subdir_path,"setup.py")
|
|
|
|
dest_dir = join (self.ctx.dist_dir, "root", "python")
|
|
|
|
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
|
|
|
|
|
|
|
#Note: Throws error if PATH is not set. I am not sure if this will cause problems
|
|
|
|
# in other architectures.
|
|
|
|
build_env['PATH']= os.environ.get('PATH')
|
|
|
|
|
|
|
|
shprint(hostpython,
|
|
|
|
setup_path,
|
|
|
|
"build_ext",
|
|
|
|
#"--compiler=mingw32", #note: throws clang error
|
|
|
|
"install",
|
|
|
|
_env=build_env)
|
|
|
|
|
|
|
|
recipe = CymunkRecipe()
|