## @file\r
# This file is used to be the main entrance of ECC tool\r
#\r
-# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
##\r
# Import Modules\r
#\r
-import os, time, glob, sys\r
+import Common.LongFilePathOs as os, time, glob, sys\r
import Common.EdkLogger as EdkLogger\r
import Database\r
import EccGlobalData\r
import c\r
import re, string\r
from Exception import *\r
+from Common.LongFilePathSupport import OpenLongFilePath as open\r
+from Common.MultipleWorkspace import MultipleWorkspace as mws\r
\r
## Ecc\r
#\r
class Ecc(object):\r
def __init__(self):\r
# Version and Copyright\r
- self.VersionNumber = ("0.01" + " " + gBUILD_VERSION)\r
+ self.VersionNumber = ("1.0" + " Build " + gBUILD_VERSION)
self.Version = "%prog Version " + self.VersionNumber\r
- self.Copyright = "Copyright (c) 2009 - 2010, Intel Corporation All rights reserved."\r
+ self.Copyright = "Copyright (c) 2009 - 2016, Intel Corporation All rights reserved."
\r
self.InitDefaultConfigIni()\r
self.OutputFile = 'output.txt'\r
\r
# Parse the options and args\r
self.ParseOption()\r
+ EdkLogger.info(time.strftime("%H:%M:%S, %b.%d %Y ", time.localtime()) + "[00:00]" + "\n")
\r
#\r
# Check EFI_SOURCE (Edk build convention). EDK_SOURCE will always point to ECP\r
#\r
WorkspaceDir = os.path.normcase(os.path.normpath(os.environ["WORKSPACE"]))\r
os.environ["WORKSPACE"] = WorkspaceDir\r
+ \r
+ # set multiple workspace\r
+ PackagesPath = os.getenv("PACKAGES_PATH")\r
+ mws.setWs(WorkspaceDir, PackagesPath)\r
+ \r
if "ECP_SOURCE" not in os.environ:\r
- os.environ["ECP_SOURCE"] = os.path.join(WorkspaceDir, GlobalData.gEdkCompatibilityPkg)\r
+ os.environ["ECP_SOURCE"] = mws.join(WorkspaceDir, GlobalData.gEdkCompatibilityPkg)\r
if "EFI_SOURCE" not in os.environ:\r
os.environ["EFI_SOURCE"] = os.environ["ECP_SOURCE"]\r
if "EDK_SOURCE" not in os.environ:\r
GlobalData.gGlobalDefines["EDK_SOURCE"] = EdkSourceDir\r
GlobalData.gGlobalDefines["ECP_SOURCE"] = EcpSourceDir\r
\r
- \r
+ EdkLogger.info("Loading ECC configuration ... done")
# Generate checkpoints list\r
EccGlobalData.gConfig = Configuration(self.ConfigFile)\r
\r
EccGlobalData.gIdentifierTableList = GetTableList((MODEL_FILE_C, MODEL_FILE_H), 'Identifier', EccGlobalData.gDb)\r
EccGlobalData.gCFileList = GetFileList(MODEL_FILE_C, EccGlobalData.gDb)\r
EccGlobalData.gHFileList = GetFileList(MODEL_FILE_H, EccGlobalData.gDb)\r
+ EccGlobalData.gUFileList = GetFileList(MODEL_FILE_UNI, EccGlobalData.gDb)\r
\r
## BuildMetaDataFileDatabase\r
#\r
Op.write("%s\r" % Filename)\r
Fdf(Filename, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)\r
continue\r
+ if len(File) > 4 and File[-4:].upper() == ".UNI":\r
+ Filename = os.path.normpath(os.path.join(Root, File))\r
+ EdkLogger.quiet("Parsing %s" % Filename)\r
+ Op.write("%s\r" % Filename)\r
+ FileID = EccGlobalData.gDb.TblFile.InsertFile(Filename, MODEL_FILE_UNI)\r
+ EccGlobalData.gDb.TblReport.UpdateBelongsToItemByFile(FileID, File)\r
+ continue\r
+\r
Op.close()\r
\r
# Commit to database\r
# Parse options\r
#\r
def ParseOption(self):\r
- EdkLogger.quiet("Loading ECC configuration ... done")\r
(Options, Target) = self.EccOptionParser()\r
\r
if Options.Workspace:\r
# Initialize log system\r
EdkLogger.Initialize()\r
EdkLogger.IsRaiseError = False\r
- EdkLogger.quiet(time.strftime("%H:%M:%S, %b.%d %Y ", time.localtime()) + "[00:00]" + "\n")\r
\r
StartTime = time.clock()\r
Ecc = Ecc()\r