From f057b5056a920b4f8bb64bd3ab752ea386a797d8 Mon Sep 17 00:00:00 2001
From: Fabien Tessier <fabien.tessier@telecom-paristech.fr>
Date: Fri, 13 Oct 2017 11:08:48 +0200
Subject: [PATCH] Fix c++ compilation for .ttool file

---
 src/main/java/myutil/FileUtils.java              | 16 ++++++++++++++--
 src/main/java/ui/MainGUI.java                    |  1 +
 .../java/ui/window/JDialogSystemCGeneration.java |  4 +---
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/main/java/myutil/FileUtils.java b/src/main/java/myutil/FileUtils.java
index d29e9af207..ab4dc4ad82 100755
--- a/src/main/java/myutil/FileUtils.java
+++ b/src/main/java/myutil/FileUtils.java
@@ -46,6 +46,8 @@ import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.FilenameFilter;
 
+import common.ConfigurationTTool;
+
 
 /**
    * Class FileUtils
@@ -53,7 +55,7 @@ import java.io.FilenameFilter;
    * @version 1.1 01/12/2003
    * @author Ludovic APVRILLE
  */
-public class FileUtils {
+public class FileUtils extends org.apache.commons.io.FileUtils{
 
     public final static String xml = "xml";
     public final static String rtl = "lot";
@@ -90,7 +92,17 @@ public class FileUtils {
     public static boolean checkAndCreateDir(String s) throws FileException {
     	File f = new File(s);
     	try {
-    		return f.exists() ? true : f.mkdir(); 
+    		if (!f.exists())
+    			if(!f.mkdir())
+    					return false;
+    		File make = new File("../simulators/c++2/Makefile");
+    		File defs = new File("../simulators/c++2/Makefile.defs");
+    		File src = new File("../simulators/c++2/src_simulator");
+    		File dir = new File(ConfigurationTTool.SystemCCodeDirectory);
+    		FileUtils.copyFileToDirectory(make, dir, false);
+    		FileUtils.copyFileToDirectory(defs, dir, false);
+    		FileUtils.copyDirectoryToDirectory(src, dir);
+    		return true;
 		} catch (Exception e) {
 			throw new FileException(e.getMessage());
 		}
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 3b3aa4a99a..5181fcad5d 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -2330,6 +2330,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
     public void setDirConfig() {
     	ConfigurationTTool.SystemCCodeDirectory = dir.getAbsolutePath() + "/c++code/";
+    	ConfigurationTTool.SystemCCodeCompileCommand = "make -C " + ConfigurationTTool.SystemCCodeDirectory;
     }
     
     public void setBasicConfig() {
diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java
index 703305c025..c97b0ad466 100755
--- a/src/main/java/ui/window/JDialogSystemCGeneration.java
+++ b/src/main/java/ui/window/JDialogSystemCGeneration.java
@@ -160,9 +160,7 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
 
         pathCode = _pathCode;
         
-
-        if (pathCompiler == null)
-            pathCompiler = _pathCompiler;
+        pathCompiler = _pathCompiler;
 
         if (pathExecute == null)
             pathExecute = _pathExecute;
-- 
GitLab