Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSina Madani2019-08-16 20:20:34 +0000
committerSina Madani2019-08-16 20:20:34 +0000
commitb65e7b74064e257cb6943f96e8e1da78d1f1ccc0 (patch)
tree9955235593665b0450e16540128f36bc491065a3
parent689e5eee6717a1c7def9036b6454fe381af77671 (diff)
downloadorg.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
-rw-r--r--plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/OperatingSystem.java11
-rw-r--r--plugins/org.eclipse.epsilon.emc.simulink.common/src/org/eclipse/epsilon/emc/simulink/model/AbstractSimulinkModel.java15
-rw-r--r--plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/SimulinkModel.java6
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);
}

Back to the top