Laszlo:
  INF Spec: FixedAtBuild (VOID*) PCD use in the [DEPEX] section has been added 
into INF spec git book 
(g...@github.com:tianocore-docs/edk2-InfSpecification.git). BZ 
https://bugzilla.tianocore.org/show_bug.cgi?id=444
  The change is in INF spec trunk. New version INF spec will include it. 

Thanks
Liming
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Laszlo 
> Ersek
> Sent: Wednesday, January 9, 2019 7:00 PM
> To: karunakarpoosapa...@dell.com; edk2-devel@lists.01.org
> Subject: Re: [edk2] Conditional Compilation support in INF file
> 
> On 01/09/19 07:55, karunakarpoosapa...@dell.com wrote:
> > Hi ALL,
> >
> >
> >
> > I've an idea regards "Adding conditional compilation  support in INF files"
> >
> >
> >
> > Ides is like, we can condition check in INF file like below
> >
> >
> >
> > #if Condition1
> >
> >    Protocol1
> >
> > #elif Condition2
> >
> >    Protocol2
> >
> > #else
> >
> >    Protocol3
> >
> > #endif
> >
> >
> >
> > If we've this support we can add different protocols in DEPEX section, Like 
> > we can put condition check and add rotococol1 for
> Notebook and Protocol2 for Desktop.
> >
> > And will have so many benefits adding this support.
> >
> >
> >
> > I don't think current EDK2 support this.
> >
> > Please let me know comments/suggestions, so that I will start working on it.
> 
> I'm not sure this feature is really required. We already have the
> following tools at our disposal, to customize module builds at the INF
> file level:
> 
> (1) Please see <https://bugzilla.tianocore.org/show_bug.cgi?id=443>.
> (Unfortunately, the INF file spec doesn't seem to document the syntax;
> <https://lists.01.org/pipermail/edk2-devel/2017-March/008976.html>
> should help however.)
> 
> (2) If the number of cases that need to be distinguished is low, it's
> possible to duplicate the INF file, keep the [Sources] section(s) and
> similar sections identical, and only customize the sections that need
> changes. Then include the right INF file in the platform DSC and FDF
> files, dependent on PCD settings or build defines (macros).
> 
> (3) Sometimes it makes sense to delay the dispatching of a module until
> another module makes a decision about a platform feature, dynamically.
> An important characteristic of this case is that the dependent module
> should not be prevented from starting *completely* in case the platform
> feature is absent; it should only be made wait until the decision is
> recorded, by the other module. This way the dependent module will not
> incorrectly customize its own behavior before the decision on the
> platform feature is made.
> 
> In this case, it's usually possible to write the depex such as
> 
>   (gProtocolGuid1 AND gProtocolGuid2) OR
>   (gProtocolGuid3 AND gProtocolGuid4) OR
>   gThisParticularFeatureDisabledProtocolGuid
> 
> Here:
> - gProtocolGuid1 and gProtocolGuid2 could be specific to "Notebook",
> - gProtocolGuid3 and gProtocolGuid4 could be specific to "Desktop",
> - and gThisParticularFeatureDisabledProtocolGuid would be a *synthetic*
> protocol GUID -- installed in the protocol database with a NULL
> interface -- through which the decision-making module would simply
> advertize, "none of the relevant features are available, and you need
> not wait any longer".
> 
> "gThisParticularFeatureDisabledProtocolGuid" is usually defined /
> declared as a platform Pkg-specific GUID, in the appropriate DEC file,
> and in Include/Guid/...., under the same Pkg.
> 
> (4) It is possible to hook such dependencies into other (core) modules.
> In the platform Package, you can implement a library that (a) has an
> empty constructor function, and (b) the DEPEX of your choosing (see
> above). The library should do nothing else. Then, in the package DSC
> file, hook the library into the core module in question via NULL class
> resolution. As a result, the library will not alter the behavior of the
> core module, but the core module will inherit the depex (it will be
> AND-ed together with other dependencies that the core module might have).
> 
> Thanks
> Laszlo
> _______________________________________________
> 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