diff options
author | Sina Madani | 2019-08-16 20:20:34 +0000 |
---|---|---|
committer | Sina Madani | 2019-08-16 20:20:34 +0000 |
commit | b65e7b74064e257cb6943f96e8e1da78d1f1ccc0 (patch) | |
tree | 9955235593665b0450e16540128f36bc491065a3 | |
parent | 689e5eee6717a1c7def9036b6454fe381af77671 (diff) | |
download | org.eclipse.epsilon-b65e7b74064e257cb6943f96e8e1da78d1f1ccc0.tar.gz org.eclipse.epsilon-b65e7b74064e257cb6943f96e8e1da78d1f1ccc0.tar.xz org.eclipse.epsilon-b65e7b74064e257cb6943f96e8e1da78d1f1ccc0.zip |
Added missing case for MATLAB library path on Mac
3 files changed, 27 insertions, 5 deletions
diff --git a/plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/OperatingSystem.java b/plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/OperatingSystem.java index 7dabf1974..a9e299930 100644 --- a/plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/OperatingSystem.java +++ b/plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/OperatingSystem.java @@ -37,8 +37,17 @@ public class OperatingSystem { else return osName+" "+System.getProperty("os.version");
}
+ /**
+ *
+ * @return
+ * @since 1.6
+ */
+ public static boolean isMac() {
+ return OSFamily.getOSFamily() == OSFamily.MAC;
+ }
+
public static boolean isWindows() {
- return System.getProperty("os.name").contains("Windows");
+ return OSFamily.getOSFamily() == OSFamily.WINDOWS;
}
public static boolean isUnix() {
diff --git a/plugins/org.eclipse.epsilon.emc.simulink.common/src/org/eclipse/epsilon/emc/simulink/model/AbstractSimulinkModel.java b/plugins/org.eclipse.epsilon.emc.simulink.common/src/org/eclipse/epsilon/emc/simulink/model/AbstractSimulinkModel.java index c1705246f..5317877ef 100644 --- a/plugins/org.eclipse.epsilon.emc.simulink.common/src/org/eclipse/epsilon/emc/simulink/model/AbstractSimulinkModel.java +++ b/plugins/org.eclipse.epsilon.emc.simulink.common/src/org/eclipse/epsilon/emc/simulink/model/AbstractSimulinkModel.java @@ -155,8 +155,16 @@ public abstract class AbstractSimulinkModel extends CachedModel<ISimulinkModelEl } protected void setLibraryPathFromRoot() { + String osBin; + if (OperatingSystem.isMac()) + osBin = "maci64"; + else if (OperatingSystem.isWindows()) + osBin = "win64"; + else + osBin = ""; + libraryPath = Paths.get( - matlabPath, "bin", OperatingSystem.isWindows() ? "win64" : "" + matlabPath, "bin", osBin ).toAbsolutePath().toString(); } @@ -175,7 +183,10 @@ public abstract class AbstractSimulinkModel extends CachedModel<ISimulinkModelEl } protected void setMatlabPathFromEnv() { - matlabPath = System.getenv(ENV_MATLAB_PATH); + if (StringUtil.isEmpty(matlabPath = System.getenv(ENV_MATLAB_PATH))) + // No harm in trying I suppose... + if (StringUtil.isEmpty(matlabPath = System.getenv("MATLAB_HOME"))) + matlabPath = System.getenv("matlabroot"); } public Object parseMatlabEngineVariable(String variableName) throws MatlabException { diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/SimulinkModel.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/SimulinkModel.java index 1f3713233..9cd416446 100644 --- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/SimulinkModel.java +++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/SimulinkModel.java @@ -18,6 +18,7 @@ import java.util.concurrent.ExecutionException; import org.eclipse.epsilon.common.util.FileUtil;
import org.eclipse.epsilon.common.util.Multimap;
import org.eclipse.epsilon.common.util.StringProperties;
+import org.eclipse.epsilon.common.util.StringUtil;
import org.eclipse.epsilon.emc.simulink.exception.MatlabException;
import org.eclipse.epsilon.emc.simulink.exception.MatlabRuntimeException;
import org.eclipse.epsilon.emc.simulink.model.AbstractSimulinkModel;
@@ -286,17 +287,18 @@ public class SimulinkModel extends AbstractSimulinkModel implements IOperationCo @Override
public void load(StringProperties properties, IRelativePathResolver resolver) throws EolModelLoadingException {
super.load(properties, resolver);
+
String workingDirPath = properties.getProperty(SimulinkModel.PROPERTY_WORKING_DIR);
if (properties.hasProperty(SimulinkModel.PROPERTY_SHOW_IN_MATLAB_EDITOR))
showInMatlabEditor = properties.getBooleanProperty(SimulinkModel.PROPERTY_SHOW_IN_MATLAB_EDITOR, false);
if (properties.hasProperty(SimulinkModel.PROPERTY_FOLLOW_LINKS))
followLinks = properties.getBooleanProperty(SimulinkModel.PROPERTY_FOLLOW_LINKS, true);
String filePath = properties.getProperty(PROPERTY_FILE);
- if (workingDirPath != null && workingDirPath.trim().length() > 0) {
+ if (!StringUtil.isEmpty(workingDirPath)) {
workingDir = new File(resolver.resolve(filePath));
}
String paths = properties.getProperty(SimulinkModel.PROPERTY_PATHS);
- if (paths != null && !paths.isEmpty()) {
+ if (!StringUtil.isEmpty(paths)) {
Arrays.stream(paths.trim().split(";")).forEach(this::addPath);
}
|