Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2013 Trillian Mobile AB
   *
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of the GNU General Public License
   * as published by the Free Software Foundation; either version 2
   * of the License, or (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/gpl-2.0.html>.
  */
 package org.robovm.compiler.target.ios;
 
 import java.io.File;
 import java.util.List;
 
 
Contains info on an SDK installed on the system.
 
 public class SDK implements Comparable<SDK> {
     private String displayName;
     private String minimalDisplayName;
     private String canonicalName;
     private String version;
     private File root;
     private NSDictionary defaultProperties;
     private int major;
     private int minor;
     private int revision;
     private String build;
     private String platformBuild;
     private String platformVersion;
     private String platformName;
     
     public static SDK create(File rootthrows Exception {
         File sdkSettingsFile = new File(root"SDKSettings.plist");
         File sdkSysVersionFile = new File(root"System/Library/CoreServices/SystemVersion.plist");
         File platformVersionFile = new File(root"../../../version.plist");
         File platformInfoFile = new File(root"../../../Info.plist");
         if (sdkSettingsFile.exists() && platformVersionFile.exists() && platformInfoFile.exists()) {
             NSDictionary sdkSettingsDict = (NSDictionary) PropertyListParser.parse(sdkSettingsFile);
             NSDictionary sdkSysVersionDict = (NSDictionary) PropertyListParser.parse(sdkSysVersionFile);
             NSDictionary platformVersionDict = (NSDictionary) PropertyListParser.parse(platformVersionFile);
             NSDictionary platformInfoDict = (NSDictionary) PropertyListParser.parse(platformInfoFile);
             
             SDK sdk = new SDK();
             
             sdk.root = root;
             
             sdk.displayName = toString(sdkSettingsDict.objectForKey("DisplayName"));
             sdk.minimalDisplayName = toString(sdkSettingsDict.objectForKey("MinimalDisplayName"));
             sdk.canonicalName = toString(sdkSettingsDict.objectForKey("CanonicalName"));
             sdk.version = toString(sdkSettingsDict.objectForKey("Version"));
             sdk.defaultProperties = (NSDictionarysdkSettingsDict.objectForKey("DefaultProperties");
             
             sdk.build = toString(sdkSysVersionDict.objectForKey("ProductBuildVersion"));
 
             sdk.platformBuild = toString(platformVersionDict.objectForKey("ProductBuildVersion"));
             
             NSDictionary additionalInfo = (NSDictionaryplatformInfoDict.objectForKey("AdditionalInfo");
             sdk.platformVersion = toString(additionalInfo.objectForKey("DTPlatformVersion"));
             sdk.platformName = toString(additionalInfo.objectForKey("DTPlatformName"));
 
             String[] parts = StringUtils.split(sdk.version".");
             sdk.major = Integer.parseInt(parts[0]);
             sdk.minor = parts.length >= 2 ? Integer.parseInt(parts[1]) : 0;
             sdk.revision = parts.length >= 3 ? Integer.parseInt(parts[2]) : 0;
             
             return sdk;
         }
         throw new IllegalArgumentException(root.getAbsolutePath() + " is not an SDK root path");
     }
     
     private static String toString(NSObject o) {
         return o != null ? o.toString() : null;
     }
     
     private static List<SDKlistSDKs(String platform) {
         try {
             List<SDKsdks = new ArrayList<SDK>();
             File sdksDir = new File(ToolchainUtil.findXcodePath() + "/Platforms/" 
                                     + platform + ".platform/Developer/SDKs");
             if (sdksDir.exists() && sdksDir.isDirectory()) {
                 for (File root : sdksDir.listFiles()) {
                     try {
                         sdks.add(SDK.create(root));
                    } catch (Exception e) {
                    }
                }
            }
            
            return sdks;
        } catch (RuntimeException e) {
            throw e;
        } catch (Throwable t) {
            throw new RuntimeException(t);
        }
    }
    
    public static List<SDKlistDeviceSDKs() {
        return listSDKs("iPhoneOS");
    }
    
    public static List<SDKlistSimulatorSDKs() {
        return listSDKs("iPhoneSimulator");
    }
    
    public String getDisplayName() {
        return ;
    }
    public String getMinimalDisplayName() {
        return ;
    }
    
    public String getCanonicalName() {
        return ;
    }
    
    public String getVersion() {
        return ;
    }
    public File getRoot() {
        return ;
    }
        return ;
    }
    
    public NSObject getDefaultProperty(String key) {
        return .objectForKey(key);
    }
    
    public String getBuild() {
        return ;
    }
    public String getPlatformBuild() {
        return ;
    }
    public String getPlatformVersion() {
        return ;
    }
    public String getPlatformName() {
        return ;
    }
    public int getMajor() {
        return ;
    }
    
    public int getMinor() {
        return ;
    }
    
    public int getRevision() {
        return ;
    }
    
    @Override
    public int compareTo(SDK o) {
        int c =  < o.major ? -1 : ( > o.major ? 1 : 0);
        if (c == 0) {
            c =  < o.minor ? -1 : ( > o.minor ? 1 : 0);
            if (c == 0) {
                c =  < o.revision ? -1 : ( > o.revision ? 1 : 0);                    
            }
        }
        return c;
    }
    
    @Override
    public String toString() {
        return "SDK [displayName=" +  + ", minimalDisplayName="
                +  + ", canonicalName=" + 
                + ", version=" +  + ", root=" +  + ", major="
                +  + ", minor=" +  + ", revision=" + 
                + ", build=" +  + ", platformBuild=" + 
                + ", platformVersion=" +  + ", platformName="
                +  + "]";
    }
New to GrepCode? Check out our FAQ X