# HG changeset patch
# User Edouard Tisserant <edouard.tisserant@gmail.com>
# Date 1625060672 -7200
# Node ID 577118ebd179262d059224453170d3f3fd39bb4d
# Parent  748b96d71d62711d1872b1e32d9ce12a78527977
IDE: Allow POU Libraries to inject PLC Configurations globals during build.

diff -r 748b96d71d62 -r 577118ebd179 POULibrary.py
--- a/POULibrary.py	Wed Jun 30 16:46:14 2021 +0300
+++ b/POULibrary.py	Wed Jun 30 15:44:32 2021 +0200
@@ -63,6 +63,12 @@
         # Pure python or IEC libs doesn't produce C code
         return ((""), [], False), ""
 
+    def GlobalInstances(self):
+        """
+        @return: [(instance_name, instance_type),...]
+        """
+        return []
+
     def FatalError(self, message):
         """ Raise an exception that will trigger error message intended to 
             the user, but without backtrace since it is not a software error """
diff -r 748b96d71d62 -r 577118ebd179 ProjectController.py
--- a/ProjectController.py	Wed Jun 30 16:46:14 2021 +0300
+++ b/ProjectController.py	Wed Jun 30 15:44:32 2021 +0200
@@ -745,7 +745,11 @@
         return locations
 
     def GetConfNodeGlobalInstances(self):
-        return self._GlobalInstances()
+        LibGlobals = []
+        for lib in self.Libraries:
+            LibGlobals += lib.GlobalInstances()
+        CTNGlobals = self._GlobalInstances()
+        return LibGlobals + CTNGlobals
 
     def _Generate_SoftPLC(self):
         if self._Generate_PLC_ST():