]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java
Support two more attribute LIBPATH and INCLUDEPATH in tools_def file.
[mirror_edk2.git] / Tools / Java / Source / Cpptasks / net / sf / antcontrib / cpptasks / userdefine / CommandLineUserDefine.java
index f9177cfb62158c8bed8719700995d4336524b615..3ed6c9652f76ec31dd1eec25c2ce2ba851c55347 100644 (file)
@@ -45,8 +45,6 @@ public class CommandLineUserDefine {
 \r
     String outputDelimiter = null;\r
     \r
-    private static String pathName = null;\r
-    \r
     public void command(CCTask cctask, UserDefineDef userdefine) {\r
         boolean isGccCommand = userdefine.getFamily().equalsIgnoreCase("GCC");\r
         File workdir;\r
@@ -222,30 +220,48 @@ public class CommandLineUserDefine {
 \r
         Environment newEnv = new Environment();\r
         \r
+        //\r
+        // Prepare for environment variable PATH\r
+        //\r
         if (userdefine.getDpath() != null && userdefine.getDpath().trim().length() != 0) {\r
-            String existPath = System.getenv(getPathName("PATH"));\r
+            String pathName = getPathName("PATH");\r
+            String existPath = System.getenv(pathName);\r
             \r
             Variable var = new Variable();\r
-            var.setKey(getPathName("PATH"));\r
+            var.setKey(pathName);\r
             var.setPath(new Path(project, userdefine.getDpath() + ";" + existPath));\r
             newEnv.addVariable(var);\r
         }\r
         \r
+        //\r
+        // Prepare for environment variable LIB\r
+        //\r
         if (userdefine.getLibpath() != null && userdefine.getLibpath().trim().length() != 0) {\r
-            String existPath = System.getenv(getPathName("LIB"));\r
-            \r
+            String pathName = getPathName("LIB");\r
+            String existPath = System.getenv(pathName);\r
             Variable var = new Variable();\r
-            var.setKey(getPathName("LIB"));\r
-            var.setPath(new Path(project, userdefine.getLibpath() + ";" + existPath));\r
+            var.setKey(pathName);\r
+            if (existPath == null) {\r
+                var.setPath(new Path(project, userdefine.getLibpath()));\r
+            } else {\r
+                var.setPath(new Path(project, userdefine.getLibpath() + ";" + existPath));\r
+            }\r
             newEnv.addVariable(var);\r
         }\r
         \r
+        //\r
+        // Prepare for environment variable INCLUDE\r
+        //\r
         if (userdefine.getInclude() != null && userdefine.getInclude().trim().length() != 0) {\r
-            String existPath = System.getenv(getPathName("INCLUDE"));\r
-            \r
+            String pathName = getPathName("INCLUDE");\r
+            String existPath = System.getenv(pathName);\r
             Variable var = new Variable();\r
-            var.setKey(getPathName("INCLUDE"));\r
-            var.setPath(new Path(project, userdefine.getInclude() + ";" + existPath));\r
+            var.setKey(pathName);\r
+            if (existPath == null) {\r
+                var.setPath(new Path(project, userdefine.getInclude()));\r
+            } else {\r
+                var.setPath(new Path(project, userdefine.getInclude() + ";" + existPath));\r
+            }\r
             newEnv.addVariable(var);\r
         }\r
         \r
@@ -259,19 +275,15 @@ public class CommandLineUserDefine {
     }\r
     \r
     private String getPathName(String variableName) {\r
-        if (pathName != null) {\r
-            return pathName;\r
-        }\r
         Map allEnv = System.getenv();\r
         Iterator iter = allEnv.keySet().iterator();\r
         while (iter.hasNext()) {\r
             String key = (String)iter.next();\r
             if(key.equalsIgnoreCase(variableName)) {\r
-                pathName = key;\r
-                break ;\r
+                return key;\r
             }\r
         }\r
-        return pathName;\r
+        return variableName;\r
     }\r
 \r
     protected int runCommand(CCTask task, File workingDir, String[] cmdline, Environment env)\r