]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/GenBuild/org/tianocore/build/ModuleBuildFileGenerator.java
Fixes for Linux builds.
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / ModuleBuildFileGenerator.java
index 7d8bf8b59e11d64d8df5937d70c2c0969666a71e..08f49478aea6c1084a632223c83b7260a3df4d1d 100644 (file)
@@ -221,7 +221,6 @@ public class ModuleBuildFileGenerator {
             xformer.setOutputProperty(OutputKeys.INDENT, "yes");\r
             xformer.transform(source, result);\r
         } catch (Exception ex) {\r
-            ex.printStackTrace();\r
             throw new BuildException("Module [" + fpdModuleId.getModule().getName() + "] generating build file failed.\n" + ex.getMessage());\r
         }\r
     }\r
@@ -403,6 +402,20 @@ public class ModuleBuildFileGenerator {
 //        project.setProperty("LIBS", propertyLibs.replaceAll("(\\\\)", "/"));\r
     }\r
     \r
+     /**\r
+      Return the name of the directory that corresponds to the architecture.\r
+      This is a translation from the XML Schema tag to a directory that\r
+      corresponds to our directory name coding convention.\r
+     \r
+      **/\r
+    private String archDir(String arch) {\r
+        return arch.replaceFirst("X64", "x64")\r
+                   .replaceFirst("IPF", "Ipf")\r
+                   .replaceFirst("IA32", "Ia32")\r
+                   .replaceFirst("ARM", "Arm")\r
+                   .replaceFirst("EBC", "Ebc");\r
+    }\r
+\r
     /**\r
       Generate the build source files elements for BaseName_build.xml. \r
       \r
@@ -414,6 +427,7 @@ public class ModuleBuildFileGenerator {
         // Prepare the includes: PackageDependencies and Output debug direactory\r
         //\r
         Set<String> includes = new LinkedHashSet<String>();\r
+        String arch = project.getProperty("ARCH");\r
         \r
         //\r
         // WORKSPACE\r
@@ -424,7 +438,7 @@ public class ModuleBuildFileGenerator {
         // Module iteself\r
         //\r
         includes.add("${MODULE_DIR}");\r
-        includes.add("${MODULE_DIR}" + File.separatorChar + "${ARCH}");\r
+        includes.add("${MODULE_DIR}" + File.separatorChar + archDir(arch));\r
         \r
         //\r
         // Packages in PackageDenpendencies\r
@@ -434,7 +448,7 @@ public class ModuleBuildFileGenerator {
             GlobalData.refreshPackageIdentification(packageDependencies[i]);\r
             File packageFile = packageDependencies[i].getSpdFile();\r
             includes.add(packageFile.getParent() + File.separatorChar + "Include");\r
-            includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + "${ARCH}");\r
+            includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + archDir(arch));\r
         }\r
 \r
         //\r
@@ -448,7 +462,7 @@ public class ModuleBuildFileGenerator {
                 GlobalData.refreshPackageIdentification(libraryPackageDependencies[j]);\r
                 File packageFile = libraryPackageDependencies[j].getSpdFile();\r
                 includes.add(packageFile.getParent() + File.separatorChar + "Include");\r
-                includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + "${ARCH}");\r
+                includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + archDir(arch));\r
             }\r
             SurfaceAreaQuery.pop();\r
         }\r
@@ -458,7 +472,7 @@ public class ModuleBuildFileGenerator {
         // The package which the module belongs to\r
         // TBD\r
         includes.add(fpdModuleId.getModule().getPackage().getPackageDir() + File.separatorChar + "Include");\r
-        includes.add(fpdModuleId.getModule().getPackage().getPackageDir() + File.separatorChar + "Include" + File.separatorChar + "${ARCH}");\r
+        includes.add(fpdModuleId.getModule().getPackage().getPackageDir() + File.separatorChar + "Include" + File.separatorChar + archDir(arch));\r
 \r
         //\r
         // Debug files output directory\r
@@ -550,7 +564,7 @@ public class ModuleBuildFileGenerator {
             return ;\r
         }\r
         if (fp.initSections(ffsKeyword, project, fpdModuleId)) {\r
-            String targetFilename = fpdModuleId.getModule().getGuid() + "-" + fpdModuleId.getModule().getName() + FpdParserTask.getSuffix(fpdModuleId.getModule().getModuleType());\r
+            String targetFilename = fpdModuleId.getModule().getGuid() + "-" + "${BASE_NAME}" + FpdParserTask.getSuffix(fpdModuleId.getModule().getModuleType());\r
             String[] list = fp.getGenSectionElements(document, "${BASE_NAME}", fpdModuleId.getModule().getGuid(), targetFilename);\r
 \r
             for (int i = 0; i < list.length; i++) {\r