Yes. we did test on Windows and Linux. From the https://docs.python.org/3/library/os.path.html os.path.normcase(path) Normalize the case of a pathname. On Windows, convert all characters in the pathname to lowercase, and also convert forward slashes to backward slashes. On other operating systems, return the path unchanged.
Thanks, Bob -----Original Message----- From: Andrew Fish <af...@apple.com> Sent: Wednesday, September 23, 2020 10:24 PM To: devel@edk2.groups.io; Feng, Bob C <bob.c.f...@intel.com> Cc: Liang, MingyueX <mingyuex.li...@intel.com>; Liming Gao <gaolim...@byosoft.com.cn>; Chen, Christine <yuwei.c...@intel.com> Subject: Re: [edk2-devel] [PATCH] BaseTools: Normalize case of pathname when evaluating Macros. Does this work on case sensitive file systems? > On Sep 23, 2020, at 3:58 AM, Bob Feng <bob.c.f...@intel.com> wrote: > > From: Mingyue Liang <mingyuex.li...@intel.com> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2880 > > Currently, When doing the Incremental build, the directory macros > extended to absolute path in output Makefile, which is inconsistent > with the output of Clean build. > > When we do macro replacement, we can't replace macro due to > inconsistent path case, which results in inconsistent display of > incremental build and clean build in makefile.Therefore, the path is > converted to achieve the correct macro replacement. > > Signed-off-by: Mingyue Liang <mingyuex.li...@intel.com> > Cc: Bob Feng <bob.c.f...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Yuwei Chen <yuwei.c...@intel.com> > --- > BaseTools/Source/Python/AutoGen/GenMake.py | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py > b/BaseTools/Source/Python/AutoGen/GenMake.py > index 0314d0ea34..b04d3f5436 100755 > --- a/BaseTools/Source/Python/AutoGen/GenMake.py > +++ b/BaseTools/Source/Python/AutoGen/GenMake.py > @@ -786,8 +786,10 @@ cleanlib: > > def ReplaceMacro(self, str): > for Macro in self.MacroList: > - if self._AutoGenObject.Macros[Macro] and > self._AutoGenObject.Macros[Macro] in str: > - str = str.replace(self._AutoGenObject.Macros[Macro], '$(' + > Macro + ')') > + if self._AutoGenObject.Macros[Macro] and > os.path.normcase(self._AutoGenObject.Macros[Macro]) in os.path.normcase(str): > + replace_dir = > str[os.path.normcase(str).index(os.path.normcase(self._AutoGenObject.Macros[Macro])): > os.path.normcase(str).index( > + os.path.normcase(self._AutoGenObject.Macros[Macro])) + > len(self._AutoGenObject.Macros[Macro])] > + str = str.replace(replace_dir, '$(' + Macro + ')') > return str > > def CommandExceedLimit(self): > -- > 2.28.0.windows.1 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65534): https://edk2.groups.io/g/devel/message/65534 Mute This Topic: https://groups.io/mt/77032381/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-