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