Reviewed-by: Liming Gao <[email protected]>
And, push at 6608330d76d50746aeba63a032d85a5389164a54

> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of
> Michael Zimmermann
> Sent: Thursday, May 26, 2016 3:55 PM
> To: [email protected] <[email protected]>; Gao, Liming
> <[email protected]>
> Subject: [edk2] [PATCH] BaseTools: Fix bad macro expansion during
> tools_def.txt parsing
> 
> this is something I missed in 8ac46e4
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Michael Zimmermann <[email protected]>
> ---
>  .../Source/Python/Common/ToolDefClassObject.py     | 51
> +++++++++++-----------
>  1 file changed, 26 insertions(+), 25 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/Common/ToolDefClassObject.py
> b/BaseTools/Source/Python/Common/ToolDefClassObject.py
> index 753878a..5dd505c 100644
> --- a/BaseTools/Source/Python/Common/ToolDefClassObject.py
> +++ b/BaseTools/Source/Python/Common/ToolDefClassObject.py
> @@ -76,6 +76,32 @@ class ToolDefClassObject(object):
> 
>          self.IncludeToolDefFile(FileName)
> 
> +        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET]))
> +        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]))
> +        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH]))
> +
> +        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE]))
> +
> +        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET].sort()
> +
> self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].sort()
> +        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort()
> +        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort()
> +
> +        KeyList = [TAB_TOD_DEFINES_TARGET,
> TAB_TOD_DEFINES_TOOL_CHAIN_TAG,
> TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]
> +        for Index in range(3, -1, -1):
> +            for Key in dict(self.ToolsDefTxtDictionary):
> +                List = Key.split('_')
> +                if List[Index] == '*':
> +                    for String in self.ToolsDefTxtDatabase[KeyList[Index]]:
> +                        List[Index] = String
> +                        NewKey = '%s_%s_%s_%s_%s' % tuple(List)
> +                        if NewKey not in self.ToolsDefTxtDictionary:
> +                            self.ToolsDefTxtDictionary[NewKey] =
> self.ToolsDefTxtDictionary[Key]
> +                        continue
> +                    del self.ToolsDefTxtDictionary[Key]
> +                elif List[Index] not in
> self.ToolsDefTxtDatabase[KeyList[Index]]:
> +                    del self.ToolsDefTxtDictionary[Key]
> +
> 
>      ## IncludeToolDefFile
>      #
> @@ -201,31 +227,6 @@ class ToolDefClassObject(object):
>                          EdkLogger.verbose("Line %d: The family is not
> specified, but BuildRuleFamily is specified for the tool chain: %s" %
> ((Index + 1), Name))
> 
>  self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_BUILDRULEFAMILY][List[1]] =
> Value
> 
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET]))
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]))
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH]))
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE] =
> list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE]))
> -
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET].sort()
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].sort()
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort()
> -        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort()
> -
> -        KeyList = [TAB_TOD_DEFINES_TARGET,
> TAB_TOD_DEFINES_TOOL_CHAIN_TAG,
> TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]
> -        for Index in range(3, -1, -1):
> -            for Key in dict(self.ToolsDefTxtDictionary):
> -                List = Key.split('_')
> -                if List[Index] == '*':
> -                    for String in self.ToolsDefTxtDatabase[KeyList[Index]]:
> -                        List[Index] = String
> -                        NewKey = '%s_%s_%s_%s_%s' % tuple(List)
> -                        if NewKey not in self.ToolsDefTxtDictionary:
> -                            self.ToolsDefTxtDictionary[NewKey] =
> self.ToolsDefTxtDictionary[Key]
> -                        continue
> -                    del self.ToolsDefTxtDictionary[Key]
> -                elif List[Index] not in
> self.ToolsDefTxtDatabase[KeyList[Index]]:
> -                    del self.ToolsDefTxtDictionary[Key]
> -
>      ## ExpandMacros
>      #
>      # Replace defined macros with real value
> --
> 2.8.3
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to