Salome HOME
CCAR: add C++ example (standalone component)
[tools/yacsgen.git] / Examples / cpp2 / components.py
1 import os
2 from module_generator import Generator,Module,Service,CPPComponent
3
4 context={'update':1,
5          "prerequisites":"/local/cchris/.packages.d/envSalome50",
6          "kernel":"/local/chris/SALOME2/RELEASES/Install/KERNEL_V5",
7         }
8
9 cwd=os.getcwd()
10
11 body="""
12 std::cerr << "a: " << a << std::endl;
13 std::cerr << "b: " << b << std::endl;
14 int info;
15 double t1,t2;
16 int i=1;
17 int mval;
18 double val[10],rval[10];
19 val[0]=3.2;
20 cp_edb(component,CP_ITERATION,0.,1,"ba",1,val);
21 info=cp_ldb(component,CP_ITERATION,&t1,&t2,&i,"aa",1,&mval,rval);
22 std::cerr << "rval: " << rval[0] << std::endl;
23 c=2*rval[0];
24 std::cerr << "c: " << c << std::endl;
25 """
26 c1=CPPComponent("compo1",services=[
27           Service("s1",inport=[("a","double"),("b","double")],
28                        outport=[("c","double")],
29                        instream=[("aa","CALCIUM_double","I"),],
30                        outstream=[("ba","CALCIUM_double","I"),],
31                        defs="//def1",body=body,
32                  ),
33           ],
34          includes="-I/usr/include",
35          kind="exe",
36          exe_path=os.path.join(cwd,"prog"),
37          )
38
39
40 g=Generator(Module("cppcompos",components=[c1],prefix="./install"),context)
41 g.generate()
42 g.bootstrap()
43 g.configure()
44 g.make()
45 g.install()
46 g.make_appli("appli",restrict=["KERNEL","GUI","YACS"])
47