diff --git a/{{cookiecutter.out_dir}}/lib/main.dart b/{{cookiecutter.out_dir}}/lib/main.dart index 2521104..5e34bc0 100644 --- a/{{cookiecutter.out_dir}}/lib/main.dart +++ b/{{cookiecutter.out_dir}}/lib/main.dart @@ -43,6 +43,53 @@ os.environ["CRYPTOGRAPHY_OPENSSL_NO_LEGACY"] = "1" # fix for: https://github.com/flet-dev/serious-python/issues/85#issuecomment-2065000974 os.environ["OPENBLAS_NUM_THREADS"] = "1" +def initialize_ctypes(): + import ctypes.util + import os + import pathlib + import sys + + android_native_lib_dir = os.getenv("ANDROID_NATIVE_LIBRARY_DIR") + + def find_library_override_imp(name: str): + if name is None: + return None + if pathlib.Path(name).exists(): + return name + if sys.platform == "ios": + for lf in [ + f"Frameworks/{name}.framework/{name}", + f"Frameworks/lib{name}.framework/lib{name}", + ]: + lib_path = pathlib.Path(sys.executable).parent.joinpath(lf) + if lib_path.exists(): + return str(lib_path) + elif android_native_lib_dir: + for lf in [f"lib{name}.so", f"{name}.so", name]: + lib_path = pathlib.Path(android_native_lib_dir).joinpath(lf) + if lib_path.exists(): + return str(lib_path) + return None + + find_library_original = ctypes.util.find_library + + def find_library_override(name): + return find_library_override_imp(name) or find_library_original(name) + + ctypes.util.find_library = find_library_override + + CDLL_init_original = ctypes.CDLL.__init__ + + def CDLL_init_override(self, name, *args, **kwargs): + CDLL_init_original( + self, find_library_override_imp(name) or name, *args, **kwargs + ) + + ctypes.CDLL.__init__ = CDLL_init_override + + +initialize_ctypes() + if os.getenv("FLET_PLATFORM") == "android": import ssl diff --git a/{{cookiecutter.out_dir}}/pubspec.yaml b/{{cookiecutter.out_dir}}/pubspec.yaml index 05c4717..f053e9e 100644 --- a/{{cookiecutter.out_dir}}/pubspec.yaml +++ b/{{cookiecutter.out_dir}}/pubspec.yaml @@ -11,8 +11,8 @@ dependencies: flutter: sdk: flutter - serious_python: 0.8.4 - flet: 0.25.1 + serious_python: 0.8.7 + flet: 0.25.2 path: ^1.9.0 url_strategy: ^0.2.0