summaryrefslogtreecommitdiff
path: root/BaseTools/Source/Python/Common/MultipleWorkspace.py
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/Python/Common/MultipleWorkspace.py')
-rw-r--r--BaseTools/Source/Python/Common/MultipleWorkspace.py156
1 files changed, 0 insertions, 156 deletions
diff --git a/BaseTools/Source/Python/Common/MultipleWorkspace.py b/BaseTools/Source/Python/Common/MultipleWorkspace.py
deleted file mode 100644
index 2a76d49cc6..0000000000
--- a/BaseTools/Source/Python/Common/MultipleWorkspace.py
+++ /dev/null
@@ -1,156 +0,0 @@
-## @file
-# manage multiple workspace file.
-#
-# This file is required to make Python interpreter treat the directory
-# as containing package.
-#
-# Copyright (c) 2015 - 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 distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-import Common.LongFilePathOs as os
-from Common.DataType import TAB_WORKSPACE
-
-## MultipleWorkspace
-#
-# This class manage multiple workspace behavior
-#
-# @param class:
-#
-# @var WORKSPACE: defined the current WORKSPACE
-# @var PACKAGES_PATH: defined the other WORKSAPCE, if current WORKSPACE is invalid, search valid WORKSPACE from PACKAGES_PATH
-#
-class MultipleWorkspace(object):
- WORKSPACE = ''
- PACKAGES_PATH = None
-
- ## convertPackagePath()
- #
- # Convert path to match workspace.
- #
- # @param cls The class pointer
- # @param Ws The current WORKSPACE
- # @param Path Path to be converted to match workspace.
- #
- @classmethod
- def convertPackagePath(cls, Ws, Path):
- if str(os.path.normcase (Path)).startswith(Ws):
- return os.path.join(Ws, os.path.relpath(Path, Ws))
- return Path
-
- ## setWs()
- #
- # set WORKSPACE and PACKAGES_PATH environment
- #
- # @param cls The class pointer
- # @param Ws initialize WORKSPACE variable
- # @param PackagesPath initialize PackagesPath variable
- #
- @classmethod
- def setWs(cls, Ws, PackagesPath=None):
- cls.WORKSPACE = Ws
- if PackagesPath:
- cls.PACKAGES_PATH = [cls.convertPackagePath (Ws, os.path.normpath(Path.strip())) for Path in PackagesPath.split(os.pathsep)]
- else:
- cls.PACKAGES_PATH = []
-
- ## join()
- #
- # rewrite os.path.join function
- #
- # @param cls The class pointer
- # @param Ws the current WORKSPACE
- # @param *p path of the inf/dec/dsc/fdf/conf file
- # @retval Path the absolute path of specified file
- #
- @classmethod
- def join(cls, Ws, *p):
- Path = os.path.join(Ws, *p)
- if not os.path.exists(Path):
- for Pkg in cls.PACKAGES_PATH:
- Path = os.path.join(Pkg, *p)
- if os.path.exists(Path):
- return Path
- Path = os.path.join(Ws, *p)
- return Path
-
- ## relpath()
- #
- # rewrite os.path.relpath function
- #
- # @param cls The class pointer
- # @param Path path of the inf/dec/dsc/fdf/conf file
- # @param Ws the current WORKSPACE
- # @retval Path the relative path of specified file
- #
- @classmethod
- def relpath(cls, Path, Ws):
- for Pkg in cls.PACKAGES_PATH:
- if Path.lower().startswith(Pkg.lower()):
- Path = os.path.relpath(Path, Pkg)
- return Path
- if Path.lower().startswith(Ws.lower()):
- Path = os.path.relpath(Path, Ws)
- return Path
-
- ## getWs()
- #
- # get valid workspace for the path
- #
- # @param cls The class pointer
- # @param Ws the current WORKSPACE
- # @param Path path of the inf/dec/dsc/fdf/conf file
- # @retval Ws the valid workspace relative to the specified file path
- #
- @classmethod
- def getWs(cls, Ws, Path):
- absPath = os.path.join(Ws, Path)
- if not os.path.exists(absPath):
- for Pkg in cls.PACKAGES_PATH:
- absPath = os.path.join(Pkg, Path)
- if os.path.exists(absPath):
- return Pkg
- return Ws
-
- ## handleWsMacro()
- #
- # handle the $(WORKSPACE) tag, if current workspace is invalid path relative the tool, replace it.
- #
- # @param cls The class pointer
- # @retval PathStr Path string include the $(WORKSPACE)
- #
- @classmethod
- def handleWsMacro(cls, PathStr):
- if TAB_WORKSPACE in PathStr:
- PathList = PathStr.split()
- if PathList:
- for i, str in enumerate(PathList):
- MacroStartPos = str.find(TAB_WORKSPACE)
- if MacroStartPos != -1:
- Substr = str[MacroStartPos:]
- Path = Substr.replace(TAB_WORKSPACE, cls.WORKSPACE).strip()
- if not os.path.exists(Path):
- for Pkg in cls.PACKAGES_PATH:
- Path = Substr.replace(TAB_WORKSPACE, Pkg).strip()
- if os.path.exists(Path):
- break
- PathList[i] = str[0:MacroStartPos] + Path
- PathStr = ' '.join(PathList)
- return PathStr
-
- ## getPkgPath()
- #
- # get all package pathes.
- #
- # @param cls The class pointer
- #
- @classmethod
- def getPkgPath(cls):
- return cls.PACKAGES_PATH
- \ No newline at end of file