From aba176ede43c5c50c42b3cad2c6e2586811d7dd4 Mon Sep 17 00:00:00 2001 From: Fabien Tessier <fabien.tessier@telecom-paristech.fr> Date: Fri, 13 Oct 2017 16:33:12 +0200 Subject: [PATCH] Fix c generation for DIPLODOCUS and adapt it for .ttool --- src/main/java/common/SpecConfigTTool.java | 2 ++ .../modelcompiler/TMLModelCompiler.java | 4 ++++ src/main/java/ui/GTURTLEModeling.java | 13 ++++++++----- src/main/java/ui/MainGUI.java | 8 +++++--- src/main/java/ui/window/JDialogCCodeGeneration.java | 9 +++------ 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/main/java/common/SpecConfigTTool.java b/src/main/java/common/SpecConfigTTool.java index 925e729efb..0a8a770e0c 100644 --- a/src/main/java/common/SpecConfigTTool.java +++ b/src/main/java/common/SpecConfigTTool.java @@ -5,12 +5,14 @@ public class SpecConfigTTool { public static String SystemCCodeCompileCommand=""; public static String SystemCCodeExecuteCommand=""; public static String SystemCCodeInteractiveExecuteCommand=""; + public static String CCodeDirectory=""; public static void loadConfiguration() { SystemCCodeDirectory = ConfigurationTTool.SystemCCodeDirectory; SystemCCodeCompileCommand = ConfigurationTTool.SystemCCodeCompileCommand; SystemCCodeExecuteCommand = ConfigurationTTool.SystemCCodeExecuteCommand; SystemCCodeInteractiveExecuteCommand = ConfigurationTTool.SystemCCodeInteractiveExecuteCommand; + CCodeDirectory = ConfigurationTTool.CCodeDirectory; } } diff --git a/src/main/java/tmltranslator/modelcompiler/TMLModelCompiler.java b/src/main/java/tmltranslator/modelcompiler/TMLModelCompiler.java index e32b585d04..9595d5646e 100755 --- a/src/main/java/tmltranslator/modelcompiler/TMLModelCompiler.java +++ b/src/main/java/tmltranslator/modelcompiler/TMLModelCompiler.java @@ -122,6 +122,7 @@ public class TMLModelCompiler { tmlm = _tmap.getTMLModeling(); tmla = _tmap.getTMLArchitecture(); mappedCPLibs = _tmap.getMappedTMLCPLibs(); + init(); } @@ -141,6 +142,9 @@ public class TMLModelCompiler { prexList = new ArrayList<TMLPort>(); buffersList = new ArrayList<Buffer>(); dataTransfersList = new ArrayList<DataTransfer>(); + File f = new File(ConfigurationTTool.CCodeDirectory); + if (!f.exists()) + f.mkdir(); debugFileName = ConfigurationTTool.CCodeDirectory + "debugFile.txt"; tmlcpsList = new ArrayList<TMLCP>(); } diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java index 7bb68e4d45..28f5319e48 100755 --- a/src/main/java/ui/GTURTLEModeling.java +++ b/src/main/java/ui/GTURTLEModeling.java @@ -44,6 +44,7 @@ import avatartranslator.totpn.AVATAR2TPN; import avatartranslator.toturtle.AVATAR2TURTLE; import avatartranslator.touppaal.AVATAR2UPPAAL; import common.ConfigurationTTool; +import common.SpecConfigTTool; import ddtranslator.DDSyntaxException; import ddtranslator.DDTranslator; import launcher.LauncherException; @@ -474,14 +475,17 @@ public class GTURTLEModeling { CCode = new TMLModelCompiler( _title, applicationName, mgui.frame, mgui.getAllTMLCP(), tmap ); CCode.toTextFormat(); try { - if( ConfigurationTTool.CCodeDirectory.equals("") ) { + if( SpecConfigTTool.CCodeDirectory.equals("") ) { JOptionPane.showMessageDialog( mgui.frame, "No directory for C code generation found in config.xml. The C code cannot be generated.", "Control code generation failed", JOptionPane.INFORMATION_MESSAGE ); return true; } - else { - CCode.saveFile( ConfigurationTTool.CCodeDirectory + File.separator, applicationName ); + else { + File test = new File(SpecConfigTTool.CCodeDirectory); + if (!test.exists()) + test.mkdir(); + CCode.saveFile( SpecConfigTTool.CCodeDirectory + File.separator, applicationName ); } } catch( Exception e ) { @@ -492,8 +496,7 @@ public class GTURTLEModeling { } public boolean generateTMLTxt( String _title ) { - - + //This branch is activated if doing the syntax check from the architecture panel. //It generates the text TML for the architecture and the application + mapping information if (tmap != null) { diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index d6d3a7fbb2..09bb4e54d3 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -2330,10 +2330,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe } public void setDirConfig() { - SpecConfigTTool.SystemCCodeDirectory = dir.getAbsolutePath() + "/c++code/"; + SpecConfigTTool.SystemCCodeDirectory = dir.getAbsolutePath() + "/c++_code/"; + SpecConfigTTool.CCodeDirectory = dir.getAbsolutePath() + "/c_code/"; 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); + } public void setBasicConfig() { @@ -4544,8 +4546,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe // path = file.getAbsolutePath(); // } JDialogCCodeGeneration jgen = new JDialogCCodeGeneration( frame, this, "Application code generation and compilation", - ConfigurationTTool.CCodeDirectory, - "make -C " + ConfigurationTTool.CCodeDirectory, + SpecConfigTTool.CCodeDirectory, + "make -C " + SpecConfigTTool.CCodeDirectory, gtm ); // jgen.setSize(500, 750); GraphicLib.centerOnParent(jgen, 500, 750); diff --git a/src/main/java/ui/window/JDialogCCodeGeneration.java b/src/main/java/ui/window/JDialogCCodeGeneration.java index 6bd1a75aff..88861b5cc8 100755 --- a/src/main/java/ui/window/JDialogCCodeGeneration.java +++ b/src/main/java/ui/window/JDialogCCodeGeneration.java @@ -138,12 +138,9 @@ public class JDialogCCodeGeneration extends JDialog implements ActionListener, R mgui = _mgui; gtm = _gtm; - if (pathCode == null) { - pathCode = _pathCode; - } - - if (pathCompiler == null) - pathCompiler = _pathCompiler; + pathCode = _pathCode; + + pathCompiler = _pathCompiler; initComponents(); myInitComponents(); -- GitLab