Updated recipe
This commit is contained in:
parent
43944b74cd
commit
eed3efe66a
|
@ -1,3 +1,4 @@
|
||||||
|
from os.path import join
|
||||||
from pythonforandroid.recipe import Recipe
|
from pythonforandroid.recipe import Recipe
|
||||||
from pythonforandroid.toolchain import current_directory, shprint
|
from pythonforandroid.toolchain import current_directory, shprint
|
||||||
import sh
|
import sh
|
||||||
|
@ -7,12 +8,27 @@ import sh
|
||||||
|
|
||||||
class Codec2Recipe(Recipe):
|
class Codec2Recipe(Recipe):
|
||||||
url = "https://github.com/markqvist/codec2/archive/00e01c9d72d3b1607e165c71c4c9c942d277dfac.tar.gz"
|
url = "https://github.com/markqvist/codec2/archive/00e01c9d72d3b1607e165c71c4c9c942d277dfac.tar.gz"
|
||||||
built_libraries = {'libcodec2.so': 'build_linux/src'}
|
built_libraries = {'libcodec2.so': 'build_android/src'}
|
||||||
|
|
||||||
|
def include_flags(self, arch):
|
||||||
|
'''Returns a string with the include folders'''
|
||||||
|
codec2_includes = join(self.get_build_dir(arch.arch), 'build_android')
|
||||||
|
return (' -I' + codec2_includes)
|
||||||
|
|
||||||
|
def link_dirs_flags(self, arch):
|
||||||
|
'''Returns a string with the appropriate `-L<lib directory>` to link
|
||||||
|
with the libs. This string is usually added to the environment
|
||||||
|
variable `LDFLAGS`'''
|
||||||
|
return ' -L' + self.get_build_dir(arch.arch)
|
||||||
|
|
||||||
|
# def link_libs_flags(self):
|
||||||
|
# '''Returns a string with the appropriate `-l<lib>` flags to link with
|
||||||
|
# the libs. This string is usually added to the environment
|
||||||
|
# variable `LIBS`'''
|
||||||
|
# return ' -lcodec2{version} -lssl{version}'.format(version=self.version)
|
||||||
|
|
||||||
def build_arch(self, arch):
|
def build_arch(self, arch):
|
||||||
with current_directory(self.get_build_dir(arch.arch)):
|
with current_directory(self.get_build_dir(arch.arch)):
|
||||||
from rich.pretty import pprint
|
|
||||||
import time
|
|
||||||
env = self.get_recipe_env(arch)
|
env = self.get_recipe_env(arch)
|
||||||
flags = [
|
flags = [
|
||||||
"..",
|
"..",
|
||||||
|
@ -20,17 +36,14 @@ class Codec2Recipe(Recipe):
|
||||||
"--fresh",
|
"--fresh",
|
||||||
"-DCMAKE_BUILD_TYPE=Release",
|
"-DCMAKE_BUILD_TYPE=Release",
|
||||||
]
|
]
|
||||||
mkdir = sh.mkdir("-p", "build_linux")
|
|
||||||
cd = sh.cd("build_linux")
|
|
||||||
cmake = sh.Command('cmake')
|
|
||||||
|
|
||||||
pprint(arch.command_prefix)
|
mkdir = sh.mkdir("-p", "build_android")
|
||||||
pprint(env)
|
cd = sh.cd("build_android")
|
||||||
pprint(flags)
|
cmake = sh.Command('cmake')
|
||||||
time.sleep(6)
|
|
||||||
|
|
||||||
shprint(cmake, *flags, _env=env)
|
shprint(cmake, *flags, _env=env)
|
||||||
shprint(sh.make, _env=env)
|
shprint(sh.make, _env=env)
|
||||||
|
sh.cp("../src/codec2.h", "./codec2/")
|
||||||
|
|
||||||
|
|
||||||
recipe = Codec2Recipe()
|
recipe = Codec2Recipe()
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
from pythonforandroid.recipe import CythonRecipe, IncludedFilesBehaviour
|
||||||
|
from pythonforandroid.toolchain import current_directory, shprint
|
||||||
|
from os.path import join
|
||||||
|
import sh
|
||||||
|
|
||||||
|
# class PyCodec2Recipe(IncludedFilesBehaviour, CythonRecipe):
|
||||||
|
class PyCodec2Recipe(CythonRecipe):
|
||||||
|
url = "https://github.com/markqvist/pycodec2/archive/refs/heads/main.zip"
|
||||||
|
# src_filename = "../../../pycodec2"
|
||||||
|
depends = ["setuptools", "numpy", "Cython", "codec2"]
|
||||||
|
call_hostpython_via_targetpython = False
|
||||||
|
|
||||||
|
def get_recipe_env(self, arch, with_flags_in_cc=True):
|
||||||
|
"""
|
||||||
|
Adds codec2 recipe to include and library path.
|
||||||
|
"""
|
||||||
|
env = super().get_recipe_env(arch, with_flags_in_cc)
|
||||||
|
|
||||||
|
codec2_recipe = self.get_recipe('codec2', self.ctx)
|
||||||
|
env['CFLAGS'] += codec2_recipe.include_flags(arch) +" -l:libcodec2.so"
|
||||||
|
env['LDFLAGS'] += ' -L{}'.format(self.ctx.get_libs_dir(arch.arch))
|
||||||
|
env['LDFLAGS'] += ' -L{}'.format(self.ctx.libs_dir)
|
||||||
|
env['LDFLAGS'] += codec2_recipe.link_dirs_flags(arch)
|
||||||
|
|
||||||
|
return env
|
||||||
|
|
||||||
|
def build_arch(self, arch):
|
||||||
|
super().build_arch(arch)
|
||||||
|
with current_directory(self.get_build_dir(arch.arch)):
|
||||||
|
print(arch.arch)
|
||||||
|
print(arch)
|
||||||
|
shprint(sh.Command("pwd"))
|
||||||
|
shprint(sh.Command("ls"))
|
||||||
|
|
||||||
|
# pe_args = ["--replace-needed", "libcodec2.so.1.2", "libcodec2.so", "build/lib.linux-x86_64-3.11/pycodec2/pycodec2.cpython-311-x86_64-linux-gnu.so"]
|
||||||
|
# shprint(sh.Command("patchelf"), *pe_args)
|
||||||
|
|
||||||
|
# pe_args = ["--replace-needed", "libcodec2.so.1.2", "libcodec2.so", f"../../../../python-installs/sideband/{arch.arch}/pycodec2/pycodec2.cpython-311-x86_64-linux-gnu.so"]
|
||||||
|
# shprint(sh.Command("patchelf"), *pe_args)
|
||||||
|
|
||||||
|
# ../../../../python-installs/sideband/armeabi-v7a/pycodec2/pycodec2.cpython-311-x86_64-linux-gnu.so
|
||||||
|
# sbapp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pycodec2/armeabi-v7a__ndk_target_24/pycodec2/build/lib.linux-x86_64-3.11/pycodec2/pycodec2.cpython-311-x86_64-linux-gnu.so
|
||||||
|
# sbapp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/sideband/armeabi-v7a/pycodec2/pycodec2.cpython-311-x86_64-linux-gnu.so
|
||||||
|
# print("=========================")
|
||||||
|
# input()
|
||||||
|
|
||||||
|
|
||||||
|
def postbuild_arch(self, arch):
|
||||||
|
super().postbuild_arch(arch)
|
||||||
|
|
||||||
|
recipe = PyCodec2Recipe()
|
||||||
|
|
||||||
|
# patchelf --replace-needed libcodec2.so.1.2 libcodec2.so sbapp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/sideband/_python_bundle__arm64-v8a/_python_bundle/site-packages/pycodec2/pycodec2.so
|
||||||
|
# patchelf --replace-needed libcodec2.so.1.2 libcodec2.so sbapp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/sideband/_python_bundle__armeabi-v7a/_python_bundle/site-packages/pycodec2/pycodec2.so
|
||||||
|
|
||||||
|
# patchelf --replace-needed libcodec2.so.1.2 libcodec2.so sbapp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/sideband/_python_bundle__arm64-v8a/_python_bundle/site-packages/pycodec2/pycodec2.so; patchelf --replace-needed libcodec2.so.1.2 libcodec2.so sbapp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/sideband/_python_bundle__armeabi-v7a/_python_bundle/site-packages/pycodec2/pycodec2.so
|
Loading…
Reference in New Issue