From ddb6bae19d9db078d09ab07d9cab5a35fc5be011 Mon Sep 17 00:00:00 2001 From: Ansh Dadwal Date: Sun, 26 Apr 2026 20:46:12 +0530 Subject: [PATCH 1/2] numpy: enable openblas --- pythonforandroid/recipes/numpy/__init__.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pythonforandroid/recipes/numpy/__init__.py b/pythonforandroid/recipes/numpy/__init__.py index df1d29443..e4353c313 100644 --- a/pythonforandroid/recipes/numpy/__init__.py +++ b/pythonforandroid/recipes/numpy/__init__.py @@ -10,7 +10,12 @@ class NumpyRecipe(MesonRecipe): version = "v2.3.0" url = "git+https://github.com/numpy/numpy" - extra_build_args = ["-Csetup-args=-Dblas=none", "-Csetup-args=-Dlapack=none"] + depends = ["libopenblas"] + extra_build_args = [ + "-Csetup-args=-Dblas=auto", + "-Csetup-args=-Dlapack=auto", + "-Csetup-args=-Dallow-noblas=False", + ] need_stl_shared = True min_ndk_api_support = 24 @@ -41,6 +46,11 @@ def get_recipe_env(self, arch, **kwargs): "android-build", "python", ) + blas_dir = join(Recipe.get_recipe("libopenblas", self.ctx + ).get_build_dir(arch.arch), "build") + blas_incdir = blas_dir + blas_libdir = join(blas_dir, "lib") + env["CXXFLAGS"] += f" -I{blas_incdir} -L{blas_libdir}" return env def get_hostrecipe_env(self, arch=None): From f5e9ee0c7750debc36c5c216bfe177fb6a6637b9 Mon Sep 17 00:00:00 2001 From: Ansh Dadwal Date: Sun, 26 Apr 2026 20:51:28 +0530 Subject: [PATCH 2/2] libopenblas: disable dynamic arch --- pythonforandroid/recipes/libopenblas/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pythonforandroid/recipes/libopenblas/__init__.py b/pythonforandroid/recipes/libopenblas/__init__.py index e88feb668..cf1891404 100644 --- a/pythonforandroid/recipes/libopenblas/__init__.py +++ b/pythonforandroid/recipes/libopenblas/__init__.py @@ -33,6 +33,7 @@ def build_arch(self, arch): "-DCMAKE_BUILD_TYPE=Release", "-DBUILD_SHARED_LIBS=ON", "-DC_LAPACK=ON", + "-DDYNAMIC_ARCH=0", "-DTARGET={target}".format( target={ "arm64-v8a": "ARMV8",