Steps:
1. Download edk2 tree
2. Build BaseTools
3. Go to edk2\BaseTools\Scripts\PackageDocumentTools
to run packagedoc_cli.py
An error occurs if relative imports are used when running
a file alone
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
import os, sys, logging, traceback, subprocess\r
from optparse import OptionParser\r
\r
import os, sys, logging, traceback, subprocess\r
from optparse import OptionParser\r
\r
-from .plugins.EdkPlugins.edk2.model import baseobject\r
-from .plugins.EdkPlugins.edk2.model import doxygengen\r
+from plugins.EdkPlugins.edk2.model import baseobject\r
+from plugins.EdkPlugins.edk2.model import doxygengen\r
\r
gArchMarcoDict = {'ALL' : 'MDE_CPU_IA32 MDE_CPU_X64 MDE_CPU_EBC MDE_CPU_IPF _MSC_EXTENSIONS __GNUC__ __INTEL_COMPILER',\r
'IA32_MSFT': 'MDE_CPU_IA32 _MSC_EXTENSIONS',\r
\r
gArchMarcoDict = {'ALL' : 'MDE_CPU_IA32 MDE_CPU_X64 MDE_CPU_EBC MDE_CPU_IPF _MSC_EXTENSIONS __GNUC__ __INTEL_COMPILER',\r
'IA32_MSFT': 'MDE_CPU_IA32 _MSC_EXTENSIONS',\r
self.mText.insert(endIndex, '<ul>')\r
endIndex += 1\r
if self.mIsSort:\r
self.mText.insert(endIndex, '<ul>')\r
endIndex += 1\r
if self.mIsSort:\r
- self.mSubPages.sort(cmp=lambda x, y: cmp(x.mName.lower(), y.mName.lower()))\r
+ self.mSubPages.sort(key=lambda x: x.mName.lower())\r
for page in self.mSubPages:\r
self.mText.insert(endIndex, '<li>\subpage %s \"%s\" </li>' % (page.mTag, page.mName))\r
endIndex += 1\r
for page in self.mSubPages:\r
self.mText.insert(endIndex, '<li>\subpage %s \"%s\" </li>' % (page.mTag, page.mName))\r
endIndex += 1\r
@return: instance of this class\r
\r
"""\r
@return: instance of this class\r
\r
"""\r
- if len(args) == 0: return object.__new__(cls, *args, **kwargs)\r
+ if len(args) == 0: return object.__new__(cls)\r
filename = args[0]\r
parent = None\r
if len(args) > 1:\r
filename = args[0]\r
parent = None\r
if len(args) > 1:\r
\r
key = os.path.normpath(filename)\r
if key not in cls._objs.keys():\r
\r
key = os.path.normpath(filename)\r
if key not in cls._objs.keys():\r
- cls._objs[key] = object.__new__(cls, *args, **kwargs)\r
+ cls._objs[key] = object.__new__(cls)\r
\r
if parent is not None:\r
cls._objs[key].AddParent(parent)\r
\r
if parent is not None:\r
cls._objs[key].AddParent(parent)\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-from ...basemodel import ini\r
-from ...edk2.model import dsc\r
-from ...edk2.model import inf\r
-from ...edk2.model import dec\r
+from plugins.EdkPlugins.basemodel import ini\r
+from plugins.EdkPlugins.edk2.model import dsc\r
+from plugins.EdkPlugins.edk2.model import inf\r
+from plugins.EdkPlugins.edk2.model import dec\r
-from ...basemodel.message import *\r
+from plugins.EdkPlugins.basemodel.message import *\r
\r
class SurfaceObject(object):\r
_objs = {}\r
\r
class SurfaceObject(object):\r
_objs = {}\r
@return: instance of this class\r
\r
"""\r
@return: instance of this class\r
\r
"""\r
- obj = object.__new__(cls, *args, **kwargs)\r
+ obj = object.__new__(cls)\r
if "None" not in cls._objs:\r
cls._objs["None"] = []\r
cls._objs["None"].append(obj)\r
if "None" not in cls._objs:\r
cls._objs["None"] = []\r
cls._objs["None"].append(obj)\r
ErrorMsg("%s item is duplicated defined in packages: %s and %s" %\r
(name, parent.GetFilename(), cls._objs[name].GetParent().GetFilename()))\r
return None\r
ErrorMsg("%s item is duplicated defined in packages: %s and %s" %\r
(name, parent.GetFilename(), cls._objs[name].GetParent().GetFilename()))\r
return None\r
- obj = object.__new__(cls, *args, **kwargs)\r
+ obj = object.__new__(cls)\r
cls._objs[name] = obj\r
return obj\r
elif issubclass(parent.__class__, Module):\r
cls._objs[name] = obj\r
return obj\r
elif issubclass(parent.__class__, Module):\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
\r
-from ...basemodel import ini\r
+from plugins.EdkPlugins.basemodel import ini\r
-from ...basemodel.message import *\r
+from plugins.EdkPlugins.basemodel.message import *\r
\r
class DECFile(ini.BaseINIFile):\r
\r
\r
class DECFile(ini.BaseINIFile):\r
\r
"""This file produce action class to generate doxygen document for edk2 codebase.\r
The action classes are shared by GUI and command line tools.\r
"""\r
"""This file produce action class to generate doxygen document for edk2 codebase.\r
The action classes are shared by GUI and command line tools.\r
"""\r
-from ...basemodel import doxygen\r
+from plugins.EdkPlugins.basemodel import doxygen\r
import os\r
try:\r
import wx\r
import os\r
try:\r
import wx\r
except:\r
gInGui = False\r
import re\r
except:\r
gInGui = False\r
import re\r
-from ...edk2.model import inf\r
-from ...edk2.model import dec\r
-from ...basemodel.message import *\r
+from plugins.EdkPlugins.edk2.model import inf\r
+from plugins.EdkPlugins.edk2.model import dec\r
+from plugins.EdkPlugins.basemodel.message import *\r
\r
_ignore_dir = ['.svn', '_svn', 'cvs']\r
_inf_key_description_mapping_table = {\r
\r
_ignore_dir = ['.svn', '_svn', 'cvs']\r
_inf_key_description_mapping_table = {\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-from ...basemodel import doxygen\r
+from plugins.EdkPlugins.basemodel import doxygen\r
import os\r
try:\r
import wx\r
import os\r
try:\r
import wx\r
except:\r
gInGui = False\r
import re\r
except:\r
gInGui = False\r
import re\r
-from ...edk2.model import inf\r
-from ...edk2.model import dec\r
-from ...basemodel.message import *\r
+from plugins.EdkPlugins.edk2.model import inf\r
+from plugins.EdkPlugins.edk2.model import dec\r
+from plugins.EdkPlugins.basemodel.message import *\r
\r
_ignore_dir = ['.svn', '_svn', 'cvs']\r
_inf_key_description_mapping_table = {\r
\r
_ignore_dir = ['.svn', '_svn', 'cvs']\r
_inf_key_description_mapping_table = {\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
\r
-from ...basemodel import ini\r
+from plugins.EdkPlugins.basemodel import ini\r
-from ...basemodel.message import *\r
+from plugins.EdkPlugins.basemodel.message import *\r
\r
class DSCFile(ini.BaseINIFile):\r
def GetSectionInstance(self, parent, name, isCombined=False):\r
\r
class DSCFile(ini.BaseINIFile):\r
def GetSectionInstance(self, parent, name, isCombined=False):\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
\r
-from ...basemodel import ini\r
+from plugins.EdkPlugins.basemodel import ini\r
-from ...basemodel.message import *\r
+from plugins.EdkPlugins.basemodel.message import *\r
\r
class INFFile(ini.BaseINIFile):\r
_libobjs = {}\r
\r
class INFFile(ini.BaseINIFile):\r
_libobjs = {}\r