@@ -2171,44 +2171,28 @@ class BuildTool
21712171 var dev_path = ' ${defines .get (" DEVELOPER_DIR" )}/Platforms/ ${platform }.platform/Developer/SDKs/' ;
21722172 if (FileSystem .exists (dev_path ))
21732173 {
2174- var best = " 0.0 " ;
2174+ var best = { major : 0 , minor : 0 } ;
21752175 var files = FileSystem .readDirectory (dev_path );
2176- var extract_version = new EReg ( ' ^ ${ platform } (.*) .sdk$' , " " ) ;
2176+ var extract_version = ~/ ^ ( [ a-zA-Z ] + )( \d + ) \. ( \d + ) \ . sdk$ / ;
21772177 for (file in files )
21782178 {
21792179 if (extract_version .match (file ))
21802180 {
2181- var ver = extract_version .matched (1 );
2182- var split_ver = ver .split (" ." );
2183- var major_ver = Std .parseFloat (split_ver [0 ]);
2184- var minor_ver = Std .parseFloat (split_ver [1 ]);
2185- if (Math .isNaN (major_ver ) || Math .isNaN (minor_ver ))
2181+ var sdkPlatform = extract_version .matched (1 );
2182+ var major = Std .parseInt (extract_version .matched (2 ));
2183+ var minor = Std .parseInt (extract_version .matched (3 ));
2184+ if (sdkPlatform != platform || major == null || minor == null )
21862185 {
2187- // if version is the wrong format, skip it
21882186 continue ;
21892187 }
2190- var split_best = best .split (" ." );
2191- var major_best = Std .parseFloat (split_best [0 ]);
2192- var minor_best = Std .parseFloat (split_best [1 ]);
2193- if (Math .isNaN (major_best ) || Math .isNaN (minor_best ))
2188+ if (major > best .major || (major == best .major && minor > best .minor ))
21942189 {
2195- // shouldn't happen, but just to be safe
2196- best = ver ;
2197- }
2198- else if (major_ver > major_best )
2199- {
2200- // prefer higher major version
2201- best = ver ;
2202- }
2203- else if (major_ver == major_best && minor_ver > minor_best )
2204- {
2205- // if major versions are equal, prefer higher minor version
2206- best = ver ;
2190+ best = {major : major , minor : minor };
22072191 }
22082192 }
22092193 }
2210- if (best != " 0.0 " )
2211- defines .set (defineName , best );
2194+ if (best . major != 0 )
2195+ defines .set (defineName , ' ${ best . major } . ${ best . minor } ' );
22122196 else
22132197 Log .v (' Could not find ${defineName }!' );
22142198 }
0 commit comments