7777 version_k6: 1.5.0
7878 version_k7: 1.6.0
7979 version_k9: 1.7.0
80+ version_k10: 1.8.0
8081 - from: KiKit
8182 role: Separate multiboard projects
8283 - name: Xvfbwrapper
@@ -915,13 +916,14 @@ def check_tool_dep(context, dep, fatal=False):
915916
916917class ToolDependencyRole (object ):
917918 """ Class used to define the role of a tool """
918- def __init__ (self , desc = None , version = None , output = None , max_version = None , all_versions = None ):
919+ def __init__ (self , desc = None , version = None , output = None , max_version = None , all_versions = None , min_version = None ):
919920 # Is this tool mandatory
920921 self .mandatory = desc is None
921922 # If not mandatory, for what?
922923 self .desc = desc
923924 # Which version is needed?
924925 self .version = version
926+ self .min_version = min_version
925927 self .max_version = max_version
926928 self .all_versions = all_versions
927929 # Which output needs it?
@@ -986,6 +988,21 @@ def get_dep_version(dep):
986988 # Look if we have a version depending on KiCad version
987989 k_ver = GS .kicad_version_major
988990 all_versions = {kv : dep ['version_k' + str (kv )] for kv in range (5 , 25 ) if 'version_k' + str (kv ) in dep }
991+
992+ # Minimum requirement
993+ # Try a version for all KiCad versions
994+ min_version = dep .get ('version' , None )
995+ if min_version is None :
996+ # Look for the smallest KiCad version
997+ for i in range (5 , 25 ):
998+ n_version = 'version_k' + str (i )
999+ if n_version in dep :
1000+ min_version = dep [n_version ]
1001+ break
1002+ if min_version is not None :
1003+ min_version = version_str2tuple (str (min_version ))
1004+
1005+ # Actually needed
9891006 version = None
9901007 while k_ver >= 5 and version is None :
9911008 version = dep .get ('version_k' + str (k_ver ), None )
@@ -995,7 +1012,8 @@ def get_dep_version(dep):
9951012 version = dep .get ('version' , None )
9961013 if version is not None :
9971014 version = version_str2tuple (str (version ))
998- return all_versions , version
1015+
1016+ return all_versions , version , min_version
9991017
10001018
10011019def register_dep (context , dep ):
@@ -1014,11 +1032,12 @@ def register_dep(context, dep):
10141032 desc = dep ['role' ]
10151033 if desc .lower () == 'mandatory' :
10161034 desc = None
1017- all_versions , version = get_dep_version (dep )
1035+ all_versions , version , min_version = get_dep_version (dep )
10181036 max_version = dep .get ('max_version' , None )
10191037 if max_version is not None :
10201038 max_version = version_str2tuple (str (max_version ))
1021- role = ToolDependencyRole (desc = desc , version = version , max_version = max_version , all_versions = all_versions )
1039+ role = ToolDependencyRole (desc = desc , version = version , max_version = max_version , all_versions = all_versions ,
1040+ min_version = min_version )
10221041 # Solve the URLs
10231042 github = dep .get ('github' , None )
10241043 url_def = url_down_def = None
0 commit comments