From 5c0ceb396043550d9b87d2f2d6f5bf40f2a636c8 Mon Sep 17 00:00:00 2001 From: Julian-o Date: Thu, 20 Jul 2023 23:04:18 +1000 Subject: [PATCH] Automatically generate required pre-requisites `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():