> 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

Reply via email to