40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
|
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()
|