50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
from pythonforandroid.recipe import Recipe
|
|
from pythonforandroid.toolchain import shprint
|
|
from os.path import join
|
|
import sh
|
|
|
|
|
|
class Hostpython3Recipe(Recipe):
|
|
version = 'auto' # the version is taken from the python3crystax recipe
|
|
name = 'hostpython3crystax'
|
|
|
|
conflicts = ['hostpython2']
|
|
|
|
def get_build_container_dir(self, arch=None):
|
|
choices = self.check_recipe_choices()
|
|
dir_name = '-'.join([self.name] + choices)
|
|
return join(self.ctx.build_dir, 'other_builds', dir_name, 'desktop')
|
|
|
|
# def prebuild_armeabi(self):
|
|
# # Override hostpython Setup?
|
|
# shprint(sh.cp, join(self.get_recipe_dir(), 'Setup'),
|
|
# join(self.get_build_dir('armeabi'), 'Modules', 'Setup'))
|
|
|
|
def get_build_dir(self, arch=None):
|
|
return join(self.get_build_container_dir(), self.name)
|
|
|
|
def build_arch(self, arch):
|
|
"""
|
|
Creates expected build and symlinks system Python version.
|
|
"""
|
|
self.ctx.hostpython = '/usr/bin/false'
|
|
self.ctx.hostpgen = '/usr/bin/false'
|
|
# creates the sub buildir (used by other recipes)
|
|
# https://github.com/kivy/python-for-android/issues/1154
|
|
sub_build_dir = join(self.get_build_dir(), 'build')
|
|
shprint(sh.mkdir, '-p', sub_build_dir)
|
|
python3crystax = self.get_recipe('python3crystax', self.ctx)
|
|
system_python = sh.which("python" + python3crystax.version)
|
|
if system_python is None:
|
|
raise OSError(
|
|
('Trying to use python3crystax=={} but this Python version '
|
|
'is not installed locally.').format(python3crystax.version))
|
|
link_dest = join(self.get_build_dir(), 'hostpython')
|
|
shprint(sh.ln, '-sf', system_python, link_dest)
|
|
|
|
@property
|
|
def python_exe(self):
|
|
return join(self.get_build_dir(), 'hostpython')
|
|
|
|
|
|
recipe = Hostpython3Recipe()
|