Andrew: I change the tree layout to the below. It can still pass build. Root -->edk2-BaseTools-win32 -->edk2 ----->Nt32Pkg -->other ----->StdLib -->Conf -->Build
set PACKAGES_PATH=Root\edk2;Root\other Thanks Liming > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Andrew Fish > Sent: Monday, May 16, 2016 12:00 PM > To: Gao, Liming <liming....@intel.com> > Cc: edk2-devel <edk2-devel@lists.01.org> > Subject: Re: [edk2] [BaseTools] Does PACKAGES_PATH support !include ? > > > > On May 15, 2016, at 7:24 PM, Gao, Liming <liming....@intel.com> wrote: > > > > Andrew: > > I add the case to !include StdLib/StdLib.inc in Nt32Pkg.dsc, and I > > configure > PACKAGES_PATH. It can build pass. There is no error. Here is my tree layout. > Could you share your tree layout that expose this issue? > > > > Root > > -->edk2-BaseTools-win32 > > -->edk2 > > -->Conf > > -->Build > > > > The DSC file that was including, that failed, was also in an alternate path. > > So try moving things in parts. Move the Nt32 to one PACKAGE_PATH and the > StdLib to another. > > Thanks, > > Andrew Fish > > > set WORKSPACE=ROOT > > set PACKAGES_PATH=Root\edk2 > > set edk-tools-bin=Root\edk2-BaseTools-win32 > > > > edksetup.bat --nt32 > > build -p Nt32Pkg\Nt32Pkg.dsc -a IA32 -t VS2015x86 > > > > Thanks > > Liming > >> -----Original Message----- > >> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > >> Andrew Fish > >> Sent: Saturday, May 14, 2016 6:42 AM > >> To: edk2-devel <edk2-devel@lists.01.org> > >> Subject: [edk2] [BaseTools] Does PACKAGES_PATH support !include ? > >> > >> I was looking into using PACKAGES_PATH in our Tree and it seems to fail > on > >> a !include statement in DSC files that depend on PACKAGES_PATH. > >> > >> I'm not sure how to fix it as the error is coming from PathClass::Validate > >> in > >> code that is using that as a probe to try the workspace. > >> > >> BaseTools/Source/Python/Workspace/MetaFileParser.py > >> IncludedFile = NormPath(ReplaceMacro(self._ValueList[1], > >> __IncludeMacros, RaiseError=True)) > >> # > >> # First search the include file under the same directory as DSC > >> file > >> # > >> IncludedFile1 = PathClass(IncludedFile, self.MetaFile.Dir) > >> ErrorCode, ErrorInfo1 = IncludedFile1.Validate() > >> if ErrorCode != 0: > >> # > >> # Also search file under the WORKSPACE directory > >> # > >> IncludedFile1 = PathClass(IncludedFile, > >> GlobalData.gWorkspace) > >> ErrorCode, ErrorInfo2 = IncludedFile1.Validate() > >> if ErrorCode != 0: > >> EdkLogger.error('parser', ErrorCode, > >> File=self._FileWithError, > >> Line=self._LineIndex + 1, > >> ExtraData=ErrorInfo1 + "\n" + > >> ErrorInfo2) > >> > >> Should invoking PathClass() abstract the PACKAGES_PATH? I see it calling > >> mws.getWs()? > >> > >> It looks like the PathClass() is invoked like (FYI /Volumes/Case/edk2- > >> git/edk2/StdLib/StdLib.inc): > >> PathClass self.Root = /Volumes/Case/edk2-git/Vendor/X/XPkg self.File = > >> StdLib/StdLib.inc > >> > >> getWs() Ws=/Volumes/Case/Janus/Vendor/X/XPkg > Path=StdLib/StdLib.inc > >> getWs() /Volumes/Case/edk2-git/Vendor/X/XPkg > >> > >> For a test case you can shift to an edk2/ and then try to include > >> StdLib.inc. > >> !include StdLib/StdLib.inc > >> > >> Thanks, > >> > >> Andrew Fish > >> _______________________________________________ > >> edk2-devel mailing list > >> edk2-devel@lists.01.org > >> https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel