From f824d0eaff19cc26f358c03c8b7bab5e74505086 Mon Sep 17 00:00:00 2001 From: Julian Date: Sat, 22 Jul 2023 20:00:37 +1000 Subject: [PATCH] Automatically generate required pre-requisites (#2858) `get_required_prerequisites()` maintains a list of Prerequisites required by each platform. But that same information is already stored in each Prerequisite class. Rather than rather than maintaining two lists which might become inconsistent, auto-generate one. --- pythonforandroid/prerequisites.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/pythonforandroid/prerequisites.py b/pythonforandroid/prerequisites.py index d85eb0b76d..38b1cea49d 100644 --- a/pythonforandroid/prerequisites.py +++ b/pythonforandroid/prerequisites.py @@ -370,22 +370,19 @@ def darwin_installer(self): def get_required_prerequisites(platform="linux"): - DEFAULT_PREREQUISITES = dict( - darwin=[ - HomebrewPrerequisite(), - AutoconfPrerequisite(), - AutomakePrerequisite(), - LibtoolPrerequisite(), - PkgConfigPrerequisite(), - CmakePrerequisite(), - OpenSSLPrerequisite(), - JDKPrerequisite(), - ], - linux=[], - all_platforms=[], - ) - - return DEFAULT_PREREQUISITES["all_platforms"] + DEFAULT_PREREQUISITES[platform] + return [ + prerequisite_cls() + for prerequisite_cls in [ + HomebrewPrerequisite, + AutoconfPrerequisite, + AutomakePrerequisite, + LibtoolPrerequisite, + PkgConfigPrerequisite, + CmakePrerequisite, + OpenSSLPrerequisite, + JDKPrerequisite, + ] if prerequisite_cls.mandatory.get(platform, False) + ] def check_and_install_default_prerequisites():