30 lines
1.3 KiB
Python
30 lines
1.3 KiB
Python
import os
|
|
from pythonforandroid.recipe import PythonRecipe
|
|
|
|
|
|
# TODO: CompiledComponentsPythonRecipe
|
|
class Pysha3Recipe(PythonRecipe):
|
|
version = '1.0.2'
|
|
url = 'https://github.com/tiran/pysha3/archive/{version}.tar.gz'
|
|
depends = ['setuptools']
|
|
call_hostpython_via_targetpython = False
|
|
|
|
def get_recipe_env(self, arch=None, with_flags_in_cc=True):
|
|
env = super(Pysha3Recipe, self).get_recipe_env(arch, with_flags_in_cc)
|
|
# CFLAGS may only be used to specify C compiler flags, for macro definitions use CPPFLAGS
|
|
env['CPPFLAGS'] = env['CFLAGS']
|
|
if self.ctx.ndk == 'crystax':
|
|
env['CPPFLAGS'] += ' -I{}/sources/python/{}/include/python/'.format(
|
|
self.ctx.ndk_dir, self.ctx.python_recipe.version[0:3])
|
|
env['CFLAGS'] = ''
|
|
# LDFLAGS may only be used to specify linker flags, for libraries use LIBS
|
|
env['LDFLAGS'] = env['LDFLAGS'].replace('-lm', '').replace('-lcrystax', '')
|
|
env['LDFLAGS'] += ' -L{}'.format(os.path.join(self.ctx.bootstrap.build_dir, 'libs', arch.arch))
|
|
env['LIBS'] = ' -lm'
|
|
if self.ctx.ndk == 'crystax':
|
|
env['LIBS'] += ' -lcrystax -lpython{}m'.format(self.ctx.python_recipe.version[0:3])
|
|
env['LDSHARED'] += env['LIBS']
|
|
return env
|
|
|
|
|
|
recipe = Pysha3Recipe()
|