-# Copyright (C) 2009-2013 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
"""
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
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)"""