+ # set multiple workspace\r
+ PackagesPath = os.getenv("PACKAGES_PATH")\r
+ mws.setWs(GlobalData.gWorkspace, PackagesPath)\r
+\r
+ self.ToolsDefTxtDatabase = {\r
+ TAB_TOD_DEFINES_TARGET : [],\r
+ TAB_TOD_DEFINES_TOOL_CHAIN_TAG : [],\r
+ TAB_TOD_DEFINES_TARGET_ARCH : [],\r
+ TAB_TOD_DEFINES_COMMAND_TYPE : []\r
+ }\r
+\r
+ self.IncludeToolDefFile(FileName)\r
+\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET]))\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]))\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH]))\r
+\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE]))\r
+\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET].sort()\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].sort()\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort()\r
+ self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort()\r
+\r
+ KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]\r
+ for Index in range(3, -1, -1):\r
+ # make a copy of the keys to enumerate over to prevent issues when\r
+ # adding/removing items from the original dict.\r
+ for Key in list(self.ToolsDefTxtDictionary.keys()):\r
+ List = Key.split('_')\r
+ if List[Index] == '*':\r
+ for String in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
+ List[Index] = String\r
+ NewKey = '%s_%s_%s_%s_%s' % tuple(List)\r
+ if NewKey not in self.ToolsDefTxtDictionary:\r
+ self.ToolsDefTxtDictionary[NewKey] = self.ToolsDefTxtDictionary[Key]\r
+ del self.ToolsDefTxtDictionary[Key]\r
+ elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
+ del self.ToolsDefTxtDictionary[Key]\r
+\r
+\r
+ ## IncludeToolDefFile\r
+ #\r
+ # Load target.txt file and parse it as if it's contents were inside the main file\r
+ #\r
+ # @param Filename: Input value for full path of tools_def.txt\r
+ #\r
+ def IncludeToolDefFile(self, FileName):\r