From 06eb35402e456066c86f621e566160967b7740ad Mon Sep 17 00:00:00 2001
From: Hess Chen <hesheng.chen@intel.com>
Date: Fri, 29 Jul 2016 14:09:00 +0800
Subject: BaseTool/Upt: Avoid UNI file name conflict

When creating a UNI file if there is a name conflict, add an index
from 0 to the file name

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/UPT/GenMetaFile/GenDecFile.py | 5 +++--
 BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py | 7 ++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

(limited to 'BaseTools/Source/Python/UPT/GenMetaFile')

diff --git a/BaseTools/Source/Python/UPT/GenMetaFile/GenDecFile.py b/BaseTools/Source/Python/UPT/GenMetaFile/GenDecFile.py
index 31abd23ccd..d39c1827ba 100644
--- a/BaseTools/Source/Python/UPT/GenMetaFile/GenDecFile.py
+++ b/BaseTools/Source/Python/UPT/GenMetaFile/GenDecFile.py
@@ -65,6 +65,7 @@ from Library.DataType import TAB_SECTION_END
 from Library.DataType import TAB_SPLIT
 import Library.DataType as DT
 from Library.UniClassObject import FormatUniEntry
+from Library.String import GetUniFileName
 
 def GenPcd(Package, Content):
     #
@@ -586,9 +587,9 @@ def GenPackageUNIEncodeFile(PackageObject, UniFileHeader = '', Encoding=TAB_ENCO
         
     if not os.path.exists(os.path.dirname(PackageObject.GetFullPath())):
         os.makedirs(os.path.dirname(PackageObject.GetFullPath()))
-    ContainerFile = os.path.normpath(os.path.join(os.path.dirname(PackageObject.GetFullPath()), 
-                                                  (PackageObject.GetBaseName() + '.uni')))
     
+    ContainerFile = GetUniFileName(os.path.dirname(PackageObject.GetFullPath()), PackageObject.GetBaseName())
+
     Content = UniFileHeader + '\r\n'
     Content += '\r\n'
     
diff --git a/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py b/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
index a131f98ead..c1362e6fb3 100644
--- a/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
+++ b/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
@@ -2,7 +2,7 @@
 #
 # This file contained the logical of transfer package object to INF files.
 #
-# Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
 #
 # This program and the accompanying materials are licensed and made available 
 # under the terms and conditions of the BSD License which accompanies this 
@@ -41,6 +41,7 @@ import Logger.Log as Logger
 from Library import DataType as DT
 from GenMetaFile import GenMetaFileMisc
 from Library.UniClassObject import FormatUniEntry
+from Library.String import GetUniFileName
 
 
 ## Transfer Module Object to Inf files
@@ -225,8 +226,8 @@ def GenModuleUNIEncodeFile(ModuleObject, UniFileHeader='', Encoding=DT.TAB_ENCOD
         return
     else:
         ModuleObject.UNIFlag = True
-    ContainerFile = os.path.normpath(os.path.join(os.path.dirname(ModuleObject.GetFullPath()),
-                                                  (ModuleObject.GetBaseName() + '.uni')))
+    ContainerFile = GetUniFileName(os.path.dirname(ModuleObject.GetFullPath()), ModuleObject.GetBaseName())
+
     if not os.path.exists(os.path.dirname(ModuleObject.GetFullPath())):
         os.makedirs(os.path.dirname(ModuleObject.GetFullPath()))
 
-- 
cgit v1.2.3