SDOCM00114110 IPC custom build failure, part 2
authorRamsey Harris <ramsey@ti.com>
Tue, 2 Dec 2014 18:43:35 +0000 (10:43 -0800)
committerRobert Tivy <rtivy@ti.com>
Wed, 3 Dec 2014 19:20:14 +0000 (11:20 -0800)
Updates from code review comments. Build include path based
on package path, not from explicit repository names. This will
ensure correct include path as new repositories are added to
the package path.

packages/ti/sdo/ipc/makefile.xdt
packages/ti/sdo/ipc/makefile_gccArmLto.xdt

index 4bfe67355256bf39f81b1edf61e9ec94ba9e0634..40646fbcc1ed261c2f6d8b4f11279926004ed621 100644 (file)
@@ -58,17 +58,34 @@ XOPTS = `'-I"' + XDCROOT + '"' + " -Dxdc_target_types__=" + File.getDOSPath(TARG
 
 CCOPTS = `Build.getCCOpts(TARGET.name)`
 
-XDC_ROOT  = `XDCROOT`
-
 IPC_ROOT = `File.getDOSPath(this.$package.packageRepository) + "ti/sdo/"`
 
 BUILD_DEFS = `Build.getDefs()`
 
-BIOS_INC  = -I"`xdc.getPackageRepository("ti.sysbios")`"
-TARGET_INC  = -I"`xdc.getPackageRepository("ti.targets")`"
-IPC_INC    = -I"`xdc.getPackageRepository("ti.sdo.ipc")`"
-UTILS_INC    = -I"`xdc.getPackageRepository("ti.sdo.utils")`"
-INCS = $(BIOS_INC) $(TARGET_INC) $(IPC_INC) $(UTILS_INC)
+%%{
+    /* convert package path into include path */
+    var incs = new Array();
+    incs.push("-I" + this.$package.packageRepository.replace(/\/$/, ""));
+
+    for each (var repo in xdc.curPath().split(';')) {
+        /* skip empty repo, relative paths, and xdctools itself */
+        if ((repo == "") || repo.match(/^\./) || repo.match(/xdctools/)) {
+            continue;
+        }
+
+        /* add repo if not already present in array */
+        var i;
+        for (i = 0; i < incs.length; i++) {
+            if (incs[i] == "-I" + repo) {
+                break;
+            }
+        }
+        if (i == incs.length) {
+            incs.push("-I" + repo);
+        }
+    }
+%%}
+INCS = `incs.join(" ")`
 
 %if (TARGET.$name.match(/gnu/)) {
 CC = `CGEN`/`TARGET.ccBin.cmd` $(CCOPTS) -I `CGEN`/arm-none-eabi/include
@@ -149,7 +166,7 @@ Ipc.obj: `CFILES` makefile
 %for (var i = 0; i < sources.length; i++) {
 %    var s = sources[i] + (i == (sources.length - 1) ? "" : " \\");
 %    if (s.substring(0,4) == "xdc/") {
-       $(XDC_ROOT)`s`
+       `XDCROOT``s`
 %    } else if (s.substring(0,2) == "./") {
        `s`
 %    } else {
index 0181edcb3114f56f05b4435c2cb4893455e18d7f..a482c8cb77aec6d74b1279154c250cffb626556a 100644 (file)
@@ -38,8 +38,8 @@
     var TARGET = $args[0];
     var XDCROOT = String(environment['xdc.rootDir'] + '/packages/').replace(/\\/g, "/");
 
-    var XOPTS = '-I "' + XDCROOT + '"'
-       + " -Dxdc_target_types__=" + File.getDOSPath(TARGET.$package.packageRepository) + TARGET.stdInclude
+    var XOPTS = '-I "' + XDCROOT + '"' + " -Dxdc_target_types__="
+        + File.getDOSPath(TARGET.$package.packageRepository) + TARGET.stdInclude
        + " -Dxdc_target_name__=" + TARGET.name;
 
     var CGEN = TARGET.rootDir.replace(/\\/g, "/");
 vpath % `File.getDOSPath(this.$package.packageRepository) + "ti/sdo/"`
 vpath %.c `XDCROOT`
 
-CCOPTS    = `Build.getCCOpts(TARGET.$name)`
-
-XDC_ROOT  = `XDCROOT`
+CCOPTS = `Build.getCCOpts(TARGET.$name)`
 
 BUILD_DEFS = `Build.getDefs()`
 
-BIOS_INC  = -I"`xdc.getPackageRepository("ti.sysbios")`"
-TARGET_INC  = -I"`xdc.getPackageRepository("ti.targets")`"
-IPC_INC    = -I"`xdc.getPackageRepository("ti.sdo.ipc")`"
-UTILS_INC    = -I"`xdc.getPackageRepository("ti.sdo.utils")`"
-INCS = $(BIOS_INC) $(TARGET_INC) $(IPC_INC) $(UTILS_INC)
+%%{
+    /* convert package path into include path */
+    var incs = new Array();
+    incs.push("-I" + this.$package.packageRepository.replace(/\/$/, ""));
+
+    for each (var repo in xdc.curPath().split(';')) {
+        /* skip empty repo, relative paths, and xdctools itself */
+        if ((repo == "") || repo.match(/^\./) || repo.match(/xdctools/)) {
+            continue;
+        }
+
+        /* add repo if not already present in array */
+        var i;
+        for (i = 0; i < incs.length; i++) {
+            if (incs[i] == "-I" + repo) {
+                break;
+            }
+        }
+        if (i == incs.length) {
+            incs.push("-I" + repo);
+        }
+    }
+%%}
+INCS = `incs.join(" ")`
 
 CC = `CGEN`/`TARGET.ccBin.cmd` $(CCOPTS) -I `CGEN`/arm-none-eabi/include
 ASM = `CGEN`/`TARGET.asmBin.cmd` $(CCOPTS) -I `CGEN`/arm-none-eabi/include