lbry-android/p4a/pythonforandroid/recipes/openal/__init__.py

40 lines
1.3 KiB
Python
Raw Normal View History

from pythonforandroid.recipe import NDKRecipe
from pythonforandroid.toolchain import current_directory, shprint
from os.path import join
import os
import sh
class OpenALRecipe(NDKRecipe):
version = '1.18.2'
url = 'https://github.com/kcat/openal-soft/archive/openal-soft-{version}.tar.gz'
generated_libraries = ['libopenal.so']
def prebuild_arch(self, arch):
# we need to build native tools for host system architecture
with current_directory(join(self.get_build_dir(arch.arch), 'native-tools')):
shprint(sh.cmake, '.', _env=os.environ)
shprint(sh.make, _env=os.environ)
def build_arch(self, arch):
with current_directory(self.get_build_dir(arch.arch)):
env = self.get_recipe_env(arch)
cmake_args = [
'-DCMAKE_TOOLCHAIN_FILE={}'.format('XCompile-Android.txt'),
'-DHOST={}'.format(self.ctx.toolchain_prefix)
]
if self.ctx.ndk == 'crystax':
# avoids a segfault in libcrystax when calling lrintf
cmake_args += ['-DHAVE_LRINTF=0']
shprint(
sh.cmake, '.',
*cmake_args,
_env=env
)
shprint(sh.make, _env=env)
self.install_libs(arch, 'libopenal.so')
recipe = OpenALRecipe()