# build a platform or a module\r
#\r
# Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>\r
-# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
import traceback\r
import encodings.ascii\r
import itertools\r
+import multiprocessing\r
\r
from struct import *\r
from threading import *\r
if not os.path.isabs(BinCacheSource):\r
BinCacheSource = mws.join(self.WorkspaceDir, BinCacheSource)\r
GlobalData.gBinCacheSource = BinCacheSource\r
+ else:\r
+ if GlobalData.gBinCacheSource != None:\r
+ EdkLogger.error("build", OPTION_VALUE_INVALID, ExtraData="Invalid value of option --binary-source.")\r
\r
if GlobalData.gBinCacheDest:\r
BinCacheDest = os.path.normpath(GlobalData.gBinCacheDest)\r
if not os.path.isabs(BinCacheDest):\r
BinCacheDest = mws.join(self.WorkspaceDir, BinCacheDest)\r
GlobalData.gBinCacheDest = BinCacheDest\r
+ else:\r
+ if GlobalData.gBinCacheDest != None:\r
+ EdkLogger.error("build", OPTION_VALUE_INVALID, ExtraData="Invalid value of option --binary-destination.")\r
\r
if self.ConfDirectory:\r
# Get alternate Conf location, if it is absolute, then just use the absolute directory name\r
self.ThreadNumber = int(self.ThreadNumber, 0)\r
\r
if self.ThreadNumber == 0:\r
- self.ThreadNumber = 1\r
+ try:\r
+ self.ThreadNumber = multiprocessing.cpu_count()\r
+ except (ImportError, NotImplementedError):\r
+ self.ThreadNumber = 1\r
\r
if not self.PlatformFile:\r
PlatformFile = self.TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_ACTIVE_PLATFORM]\r