Salome HOME
Merge branch 'V8_0_0_BR'
[tools/yacsgen.git] / module_generator / pycompo.py
index b6e6b9494cebdb64995b1f45ed0ad321f8bd949f..ac5aa143f896e38ae81f9c9ab6c6c90b0a2d7153 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2009-2012  EDF R&D
+# Copyright (C) 2009-2015  EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +22,7 @@
 """
 import os
 from gener import Component, Invalid
-from pyth_tmpl import pyinitService, pyService, pyCompoEXE, pyCompo
+from pyth_tmpl import pyinitService, pyService, pyCompoEXE, pyCompo, cmake_src_compo_py
 import textwrap
 from string import split,rstrip,join
 
@@ -77,29 +77,35 @@ class PYComponent(Component):
     if self.kind not in kinds:
       raise Invalid("kind must be one of %s for component %s" % (kinds,self.name))
 
+  def libraryName(self):
+    """ Name of the target library
+        No library for a python component
+    """
+    return ""
+    
   def makeCompo(self, gen):
     """generate component sources as a dictionary containing
        file names (key) and file content (values)
     """
-    pyfile = "%s.py" % self.name
-    sources = " ".join(map(os.path.basename,self.sources))
-    if self.kind == "lib":
-      return {"Makefile.am":gen.makeMakefile(self.getMakefileItems(gen)),
-              pyfile:self.makepy(gen)
-             }
-    if self.kind == "exe":
-      return {"Makefile.am":gen.makeMakefile(self.getMakefileItems(gen)),
-              self.name+".exe":self.makepyexe(gen),
-             }
-
-  def getMakefileItems(self,gen):
-    makefileItems={"header":"include $(top_srcdir)/adm_local/make_common_starter.am"}
+    pyfile = ""
+    file_content = ""
     if self.kind == "lib":
-      makefileItems["salomepython_PYTHON"]=[self.name+".py"]+self.sources
-    if self.kind == "exe":
-      makefileItems["salomepython_PYTHON"]=self.sources
-      makefileItems["dist_salomescript_SCRIPTS"]=[self.name+".exe"]
-    return makefileItems
+      pyfile = self.name  + ".py"
+      file_content = self.makepy(gen)
+    elif self.kind == "exe":
+      pyfile = self.name + ".exe"
+      file_content = self.makepyexe(gen)
+    else :
+      raise Invalid("Invalid kind ()%s for component %s" % (
+                                    self.kind, self.name))
+    
+    sources = pyfile + "".join(map(lambda x: "\n  " + os.path.basename(x),
+                                   self.sources))
+    cmake_content = cmake_src_compo_py.substitute(sources=sources)
+    
+    return {"CMakeLists.txt":cmake_content,
+            pyfile:file_content
+           }
 
   def makepy(self, gen):
     """generate standard SALOME component source (python module)"""