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