Browse Source

generating .cc files

JNI-44
Volker Birk 10 years ago
parent
commit
046f68aa23
  1. 10
      src/Makefile
  2. 22
      src/gen_cpp_Message.ysl2

10
src/Makefile

@ -9,8 +9,6 @@ $(JAR): org/pEp/jniadapter/pEpException.java org/pEp/jniadapter/AbstractEngine.j
javac org/pEp/jniadapter/*.java
jar cf $@ org/pEp/jniadapter/*.class
org_pEp_jniadapter_AbstractEngine.o: org_pEp_jniadapter_AbstractEngine.h org_pEp_jniadapter_AbstractEngine.cc throw_pEp_exception.hh jniutils.hh
org_pEp_jniadapter_AbstractEngine.h: org/pEp/jniadapter/AbstractEngine.java
javah $(subst /,.,$(subst .java,,$<))
@ -20,9 +18,9 @@ org_pEp_jniadapter_Engine.h: org/pEp/jniadapter/Engine.java
org_pEp_jniadapter_Message.h: org/pEp/jniadapter/Message.java
javah $(subst /,.,$(subst .java,,$<))
org_pEp_jniadapter_Engine.o: org_pEp_jniadapter_Engine.cc org_pEp_jniadapter_Engine.h
org_pEp_jniadapter_AbstractEngine.o: %.o: %.cc %.h throw_pEp_exception.hh jniutils.hh
org_pEp_jniadapter_Message.o: org_pEp_jniadapter_Message.cc org_pEp_jniadapter_Message.h
org_pEp_jniadapter_Engine.o org_pEp_jniadapter_Message.o: %.o: %.cc %.h
$(LIBRARY): org_pEp_jniadapter_AbstractEngine.o org_pEp_jniadapter_Engine.o org_pEp_jniadapter_Message.o throw_pEp_exception.o jniutils.o
ar -r $@ *.o
@ -33,6 +31,9 @@ org/pEp/jniadapter/pEpException.java: pEp.yml2 gen_java_exceptions.ysl2
org/pEp/jniadapter/Engine.java org/pEp/jniadapter/Message.java : pEp.yml2 gen_java_Message.ysl2 types_java.ysl2
yml2proc -y gen_java_Message.ysl2 $<
org_pEp_jniadapter_Engine.cc org_pEp_jniadapter_Message.cc : pEp.yml2 gen_cpp_Message.ysl2 types_c.ysl2
yml2proc -y gen_cpp_Message.ysl2 $<
throw_pEp_exception.cc throw_pEp_exception.hh: pEp.yml2 gen_throw_pEp_exception.ysl2 textutils.ysl2
yml2proc -y gen_throw_pEp_exception.ysl2 $< -o throw_pEp_exception.cc
@ -51,4 +52,5 @@ clean:
rm -f org/pEp/jniadapter/Message.java
rm -f org/pEp/jniadapter/Color.java
rm -f throw_pEp_exception.*
rm -f org_pEp_jniadapter_Message.cc org_pEp_jniadapter_Engine.cc

22
src/gen_cpp_Message.ysl2

@ -1,10 +1,26 @@
include yslt.yml2
tstylesheet {
template "/namespace[@name='pEp']" apply "struct", 0;
include ./types_c.ysl2
template "struct[@name='message']" {
template "/namespace[@name='pEp']" apply "struct|interface", 0;
template "struct" {
const "jname" call "CamelCase" with "text", "@name";
document("org_pEp_jniadapter_{$jname}.cc", "text")
||
#include "org_pEp_jniadapter_«$jname».h"
||
}
template "interface" {
const "jname" call "CamelCase" with "text", "@name";
document("org_pEp_jniadapter_{$jname}.cc", "text")
||
#include "org_pEp_jniadapter_«$jname».h"
||
}
}

Loading…
Cancel
Save