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 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