from os.path import join import os from pythonforandroid.recipe import Recipe from pythonforandroid.toolchain import current_directory, shprint import sh # For debugging, clean with # buildozer android p4a -- clean_recipe_build codec2 --local-recipes ~/Information/Source/Sideband/recipes class Codec2Recipe(Recipe): url = "https://github.com/markqvist/codec2/archive/00e01c9d72d3b1607e165c71c4c9c942d277dfac.tar.gz" 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` 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` 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): with current_directory(self.get_build_dir(arch.arch)): env = self.get_recipe_env(arch) flags = [ "..", "--log-level=TRACE", "--fresh", "-DCMAKE_BUILD_TYPE=Release", ] mkdir = sh.mkdir("-p", "build_android") # cd = sh.cd("build_android") os.chdir("build_android") sh.cp("/root/Sideband/recipes/codec2/generate_codebook", "/usr/bin") cmake = sh.Command('cmake') shprint(cmake, *flags, _env=env) shprint(sh.make, _env=env) sh.cp("../src/codec2.h", "./codec2/") recipe = Codec2Recipe()