diff --git a/src/main/java/common/SpecConfigTTool.java b/src/main/java/common/SpecConfigTTool.java index 47c20568885d0a618d9b9493baae9a1a6efcf51c..464cebd6789ee0dfefdb7b0855583c2db17e31ca 100644 --- a/src/main/java/common/SpecConfigTTool.java +++ b/src/main/java/common/SpecConfigTTool.java @@ -1,5 +1,9 @@ package common; +import java.io.File; + +import myutil.MalformedConfigurationException; + public class SpecConfigTTool { public static String SystemCCodeDirectory=""; public static String SystemCCodeCompileCommand=""; @@ -14,6 +18,13 @@ public class SpecConfigTTool { public static String AVATARExecutableCodeCompileCommand=""; public static String AVATARExecutableCodeExecuteCommand=""; + public static String AVATARMPSoCCodeDirectory=""; + public static String AVATARMPSoCCompileCommand=""; + public static String AVATARExecutableSoclibCodeCompileCommand=""; + public static String AVATARExecutableSoclibCodeExecuteCommand=""; + public static String AVATARExecutableSoclibCodeTraceCommand=""; + public static String TMLCodeDirectory=""; + public static void loadConfiguration() { SystemCCodeDirectory = ConfigurationTTool.SystemCCodeDirectory; SystemCCodeCompileCommand = ConfigurationTTool.SystemCCodeCompileCommand; @@ -26,7 +37,43 @@ public class SpecConfigTTool { AVATARExecutableCodeDirectory = ConfigurationTTool.AVATARExecutableCodeDirectory; AVATARExecutableCodeCompileCommand = ConfigurationTTool.AVATARExecutableCodeCompileCommand; - AVATARExecutableCodeExecuteCommand = ConfigurationTTool.AVATARExecutableCodeExecuteCommand; + AVATARExecutableCodeExecuteCommand = ConfigurationTTool.AVATARExecutableCodeExecuteCommand; + + AVATARMPSoCCodeDirectory = ConfigurationTTool.AVATARMPSoCCodeDirectory; + AVATARMPSoCCompileCommand = ConfigurationTTool.AVATARMPSoCCompileCommand; + AVATARExecutableSoclibCodeCompileCommand = ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand; + AVATARExecutableSoclibCodeExecuteCommand = ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand; + AVATARExecutableSoclibCodeTraceCommand = ConfigurationTTool.AVATARExecutableSoclibCodeTraceCommand; + + TMLCodeDirectory = ConfigurationTTool.TMLCodeDirectory; } - + + public static void setDirConfig(File dir) { + SystemCCodeDirectory = dir.getAbsolutePath() + "/c++_code/"; + CCodeDirectory = dir.getAbsolutePath() + "/c_code/"; + ProVerifCodeDirectory = dir.getAbsolutePath() + "/proverif/"; + AVATARExecutableCodeDirectory = dir.getAbsolutePath() + "/AVATAR_executablecode/"; + AVATARMPSoCCodeDirectory = dir.getAbsolutePath() + "/MPSoC/"; + TMLCodeDirectory = dir.getAbsolutePath() + "/tmlcode/"; + + SystemCCodeCompileCommand = ConfigurationTTool.SystemCCodeCompileCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SystemCCodeDirectory); + SystemCCodeExecuteCommand = ConfigurationTTool.SystemCCodeExecuteCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SystemCCodeDirectory); + SystemCCodeInteractiveExecuteCommand = ConfigurationTTool.SystemCCodeInteractiveExecuteCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SystemCCodeDirectory); + + AVATARExecutableCodeExecuteCommand = ConfigurationTTool.AVATARExecutableCodeExecuteCommand.replace(ConfigurationTTool.AVATARExecutableCodeDirectory, AVATARExecutableCodeDirectory); + AVATARExecutableCodeCompileCommand = ConfigurationTTool.AVATARExecutableCodeCompileCommand.replace(ConfigurationTTool.AVATARExecutableCodeDirectory, AVATARExecutableCodeDirectory); + + AVATARMPSoCCompileCommand = ConfigurationTTool.AVATARMPSoCCompileCommand.replace(ConfigurationTTool.AVATARMPSoCCodeDirectory, AVATARMPSoCCompileCommand); + AVATARExecutableSoclibCodeCompileCommand = ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand.replace(ConfigurationTTool.AVATARMPSoCCodeDirectory, AVATARMPSoCCompileCommand); + AVATARExecutableSoclibCodeExecuteCommand = ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand.replace(ConfigurationTTool.AVATARMPSoCCodeDirectory, AVATARMPSoCCompileCommand); + AVATARExecutableSoclibCodeTraceCommand = ConfigurationTTool.AVATARExecutableSoclibCodeTraceCommand.replace(ConfigurationTTool.AVATARMPSoCCodeDirectory, AVATARMPSoCCompileCommand); + } + + public static void setBasicConfig(boolean systemcOn) { + try { + ConfigurationTTool.loadConfiguration("./launch_configurations/config.xml", systemcOn); + } catch (MalformedConfigurationException e) { + System.out.println("Couldn't load configuration from file: config.xml"); + } + } } diff --git a/src/main/java/myutil/FileUtils.java b/src/main/java/myutil/FileUtils.java index 312a5ecd16d541f0d4ec2d8b1441d858b803a473..6c6363fa9f6fad3efa00f2aad43b18a3f5d1416f 100755 --- a/src/main/java/myutil/FileUtils.java +++ b/src/main/java/myutil/FileUtils.java @@ -136,11 +136,13 @@ public class FileUtils extends org.apache.commons.io.FileUtils{ File defs = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "Makefile.defs"); File soclib = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "Makefile.forsoclib"); File src = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "src"); + //File topcell = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "generated_topcell"); FileUtils.copyFileToDirectory(make, f); FileUtils.copyFileToDirectory(defs, f); FileUtils.copyFileToDirectory(soclib, f); FileUtils.copyDirectoryToDirectory(src, f); + //FileUtils.copyDirectoryToDirectory(topcell, f); } return true; } diff --git a/src/main/java/tmltranslator/TMLMappingTextSpecification.java b/src/main/java/tmltranslator/TMLMappingTextSpecification.java index 283e9492d320b5e3e459b6cc633c3bcbeca41fa1..8a3db1c5b61ed256fb7a931cb5e53ac59eab7739 100755 --- a/src/main/java/tmltranslator/TMLMappingTextSpecification.java +++ b/src/main/java/tmltranslator/TMLMappingTextSpecification.java @@ -48,6 +48,7 @@ import myutil.FileUtils; import myutil.TraceManager; import java.io.BufferedReader; +import java.io.File; import java.io.StringReader; import java.util.ArrayList; import java.util.List; @@ -87,6 +88,10 @@ public class TMLMappingTextSpecification<E> { public void saveFile(String path, String filename) throws FileException { + File dir = new File(path); + if (!dir.exists()) + dir.mkdir(); + if (tmlmtxt != null) { tmlmtxt.saveFile(path, filename + ".tml"); } diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java index 28f5319e48ad0fa64aecb085217c6375d2273e86..1a14a6c10d889cbd309ae8bd93d57433db48a229 100755 --- a/src/main/java/ui/GTURTLEModeling.java +++ b/src/main/java/ui/GTURTLEModeling.java @@ -504,7 +504,7 @@ public class GTURTLEModeling { spec.toTextFormat( tmap ); //TMLMapping try { //TraceManager.addDev( "*** " + ConfigurationTTool.TMLCodeDirectory + File.separator ); - spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec" ); + spec.saveFile( SpecConfigTTool.TMLCodeDirectory, "spec" ); } catch( Exception e ) { TraceManager.addError( "Files could not be saved: " + e.getMessage() ); diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index 5003a67b5e0b26ccb7b86fd5ef37f9198c1a8d01..8995b931009566c5929f9f700f565bfc73312c82 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -2329,37 +2329,20 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe } - public void setDirConfig() { - SpecConfigTTool.SystemCCodeDirectory = dir.getAbsolutePath() + "/c++_code/"; - SpecConfigTTool.CCodeDirectory = dir.getAbsolutePath() + "/c_code/"; - SpecConfigTTool.ProVerifCodeDirectory = dir.getAbsolutePath() + "/proverif/"; - SpecConfigTTool.AVATARExecutableCodeDirectory = dir.getAbsolutePath() + "/AVATAR_executablecode/"; - - SpecConfigTTool.SystemCCodeCompileCommand = ConfigurationTTool.SystemCCodeCompileCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SpecConfigTTool.SystemCCodeDirectory); - SpecConfigTTool.SystemCCodeExecuteCommand = ConfigurationTTool.SystemCCodeExecuteCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SpecConfigTTool.SystemCCodeDirectory); - SpecConfigTTool.SystemCCodeInteractiveExecuteCommand = ConfigurationTTool.SystemCCodeInteractiveExecuteCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SpecConfigTTool.SystemCCodeDirectory); - - SpecConfigTTool.AVATARExecutableCodeExecuteCommand = ConfigurationTTool.AVATARExecutableCodeExecuteCommand.replace(ConfigurationTTool.AVATARExecutableCodeDirectory, SpecConfigTTool.AVATARExecutableCodeDirectory); - SpecConfigTTool.AVATARExecutableCodeCompileCommand = ConfigurationTTool.AVATARExecutableCodeCompileCommand.replace(ConfigurationTTool.AVATARExecutableCodeDirectory, SpecConfigTTool.AVATARExecutableCodeDirectory); - } - public void setBasicConfig() { - try { - ConfigurationTTool.loadConfiguration("./launch_configurations/config.xml", systemcOn); - } catch (MalformedConfigurationException e) { - System.out.println("Couldn't load configuration from file: config.xml"); - } - } + + + public void openProjectFromFile(File _f) { if (FileUtils.getExtension(_f).equals("ttool")) { dir = _f; - setDirConfig(); + SpecConfigTTool.setDirConfig(dir); String filename = dir.getAbsolutePath() + "/" + dir.getName().replaceAll(".ttool", ".xml"); file = new File(filename); } else { dir = null; - setBasicConfig(); + SpecConfigTTool.setBasicConfig(systemcOn); file = _f; } @@ -2450,11 +2433,11 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe last = i; } dir = new File(ConfigurationTTool.LastOpenFile.substring(0, last)); - this.setDirConfig(); + SpecConfigTTool.setDirConfig(dir); } else { dir = null; - this.setBasicConfig(); + SpecConfigTTool.setBasicConfig(systemcOn); } // close current modeling closeTurtleModeling(); @@ -2669,7 +2652,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe dir = jfc.getSelectedFile(); dir = FileUtils.addFileExtensionIfMissing(dir, "ttool"); dir.mkdir(); - setDirConfig(); + SpecConfigTTool.setDirConfig(dir); String newname = FileUtils.removeFileExtension(dir.getName()); file = new File(dir, newname); file = FileUtils.addFileExtensionIfMissing(file, TFileFilter.getExtension());