40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
|
from pythonforandroid.toolchain import BootstrapNDKRecipe, shprint, ArchARM, current_directory, info
|
||
|
from os.path import exists, join
|
||
|
import sh
|
||
|
|
||
|
class LibSDLRecipe(BootstrapNDKRecipe):
|
||
|
version = "1.2.14"
|
||
|
url = None
|
||
|
name = 'sdl'
|
||
|
depends = ['python2', 'pygame_bootstrap_components']
|
||
|
conflicts = ['sdl2']
|
||
|
|
||
|
def build_arch(self, arch):
|
||
|
|
||
|
if exists(join(self.ctx.libs_dir, 'libsdl.so')):
|
||
|
info('libsdl.so already exists, skipping sdl build.')
|
||
|
return
|
||
|
|
||
|
env = self.get_recipe_env(arch)
|
||
|
|
||
|
with current_directory(self.get_jni_dir()):
|
||
|
shprint(sh.ndk_build, 'V=1', _env=env, _tail=20, _critical=True)
|
||
|
|
||
|
libs_dir = join(self.ctx.bootstrap.build_dir, 'libs', arch.arch)
|
||
|
import os
|
||
|
contents = list(os.walk(libs_dir))[0][-1]
|
||
|
for content in contents:
|
||
|
shprint(sh.cp, '-a', join(self.ctx.bootstrap.build_dir, 'libs', arch.arch, content),
|
||
|
self.ctx.libs_dir)
|
||
|
|
||
|
def get_recipe_env(self, arch=None):
|
||
|
env = super(LibSDLRecipe, self).get_recipe_env(arch)
|
||
|
py2 = self.get_recipe('python2', arch.ctx)
|
||
|
env['PYTHON2_NAME'] = py2.get_dir_name()
|
||
|
if 'python2' in self.ctx.recipe_build_order:
|
||
|
env['EXTRA_LDLIBS'] = ' -lpython2.7'
|
||
|
return env
|
||
|
|
||
|
|
||
|
recipe = LibSDLRecipe()
|