We already added the extern declaration for protocols/PPI/GUID in AutoGen.h 
file, but missing this feature for the Library. so this patch added this 
feature for library.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <[email protected]>
---
 Source/Python/AutoGen/GenC.py | 27 ++++++++++++---------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/Source/Python/AutoGen/GenC.py b/Source/Python/AutoGen/GenC.py
index 77de165..45fb989 100644
--- a/Source/Python/AutoGen/GenC.py
+++ b/Source/Python/AutoGen/GenC.py
@@ -1382,76 +1382,73 @@ def CreateModuleUnloadImageCode(Info, AutoGenC, 
AutoGenH):
 #   @param      Info        The ModuleAutoGen object
 #   @param      AutoGenC    The TemplateString object for C code
 #   @param      AutoGenH    The TemplateString object for header file
 #
 def CreateGuidDefinitionCode(Info, AutoGenC, AutoGenH):
-    if Info.IsLibrary:
-        return
-
     if Info.ModuleType in ["USER_DEFINED", "BASE"]:
         GuidType = "GUID"
     else:
         GuidType = "EFI_GUID"
 
     if Info.GuidList:
-        AutoGenC.Append("\n// Guids\n")
+        if not Info.IsLibrary:
+            AutoGenC.Append("\n// Guids\n")
         AutoGenH.Append("\n// Guids\n")
     #
     # GUIDs
     #
     for Key in Info.GuidList:
-        AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED %s %s = %s;\n' % 
(GuidType, Key, Info.GuidList[Key]))
+        if not Info.IsLibrary:
+            AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED %s %s = %s;\n' % 
(GuidType, Key, Info.GuidList[Key]))
         AutoGenH.Append('extern %s %s;\n' % (GuidType, Key))
 
 ## Create code for protocol
 #
 #   @param      Info        The ModuleAutoGen object
 #   @param      AutoGenC    The TemplateString object for C code
 #   @param      AutoGenH    The TemplateString object for header file
 #
 def CreateProtocolDefinitionCode(Info, AutoGenC, AutoGenH):
-    if Info.IsLibrary:
-        return
-
     if Info.ModuleType in ["USER_DEFINED", "BASE"]:
         GuidType = "GUID"
     else:
         GuidType = "EFI_GUID"
 
     if Info.ProtocolList:
-        AutoGenC.Append("\n// Protocols\n")
+        if not Info.IsLibrary:
+            AutoGenC.Append("\n// Protocols\n")
         AutoGenH.Append("\n// Protocols\n")
     #
     # Protocol GUIDs
     #
     for Key in Info.ProtocolList:
-        AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED %s %s = %s;\n' % 
(GuidType, Key, Info.ProtocolList[Key]))
+        if not Info.IsLibrary:
+            AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED %s %s = %s;\n' % 
(GuidType, Key, Info.ProtocolList[Key]))
         AutoGenH.Append('extern %s %s;\n' % (GuidType, Key))
 
 ## Create code for PPI
 #
 #   @param      Info        The ModuleAutoGen object
 #   @param      AutoGenC    The TemplateString object for C code
 #   @param      AutoGenH    The TemplateString object for header file
 #
 def CreatePpiDefinitionCode(Info, AutoGenC, AutoGenH):
-    if Info.IsLibrary:
-        return
-
     if Info.ModuleType in ["USER_DEFINED", "BASE"]:
         GuidType = "GUID"
     else:
         GuidType = "EFI_GUID"
 
     if Info.PpiList:
-        AutoGenC.Append("\n// PPIs\n")
+        if not Info.IsLibrary:
+            AutoGenC.Append("\n// PPIs\n")
         AutoGenH.Append("\n// PPIs\n")
     #
     # PPI GUIDs
     #
     for Key in Info.PpiList:
-        AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED %s %s = %s;\n' % 
(GuidType, Key, Info.PpiList[Key]))
+        if not Info.IsLibrary:
+            AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED %s %s = %s;\n' % 
(GuidType, Key, Info.PpiList[Key]))
         AutoGenH.Append('extern %s %s;\n' % (GuidType, Key))
 
 ## Create code for PCD
 #
 #   @param      Info        The ModuleAutoGen object
-- 
2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to