/////////////////////////////////////////////////////////////////////////// // Copyright (c) 2018 Intel Corporation. // // // // All rights reserved. This program and the accompanying materials // // are made available under the terms of the Eclipse Public License v1.0 // // which accompanies this distribution, and is available at // // http://www.eclipse.org/legal/epl-v10.html // // // // Contributors: // // Intel Corporation - initial implementation and documentation // /////////////////////////////////////////////////////////////////////////// package com.intel.sgx.preferences; import java.io.File; import org.eclipse.jface.preference.IPreferenceStore; import com.intel.sgx.Activator; /** * Constant definitions for plug-in preferences */ public class PreferenceConstants { public static final String SDK_PATH = "SDKPathPreference"; public static ISDKDescriptor getSDKDescriptor() { IPreferenceStore store = Activator.getDefault().getPreferenceStore(); File sdkDir = new File(store.getString(PreferenceConstants.SDK_PATH)); if (System.getProperty("os.arch").contains("64")) { return new SGXSDK64Descriptor(sdkDir); } else { return new SGXSDK32Descriptor(sdkDir); } } static public class SGXSDK32Descriptor implements ISDKDescriptor { private final File sdkDir; private final File toolDir; private final File signerPath; private final File edger8rPath; public SGXSDK32Descriptor(File location){ this.sdkDir = location; this.toolDir = new File(location, "bin/x86"); this.signerPath = new File(toolDir, "sgx_sign"); this.edger8rPath = new File(toolDir, "sgx_edger8r"); } @Override public File getSdkDir() { return sdkDir; } @Override public File getToolsDir() { return toolDir; } @Override public File getSignerPath() { return signerPath; } @Override public File getEdger8rPath() { return edger8rPath; } } static public class SGXSDK64Descriptor implements ISDKDescriptor { private final File sdkDir; private final File toolDir; private final File signerPath; private final File edger8rPath; public SGXSDK64Descriptor(File sdkDir){ this.sdkDir = sdkDir; this.toolDir = new File(sdkDir, "bin/x64"); this.signerPath = new File(toolDir, "sgx_sign"); this.edger8rPath = new File(toolDir, "sgx_edger8r"); } @Override public File getSdkDir() { return sdkDir; } @Override public File getToolsDir() { return toolDir; } @Override public File getSignerPath() { return signerPath; } @Override public File getEdger8rPath() { return edger8rPath; } } }