@@ -69,7 +69,11 @@ if(SWIG_FOUND)
69
69
install (FILES ${AVTRANSCODER_PYTHON_BINDING_FILE} DESTINATION "lib/python2.7/site-packages/AvTranscoder/" )
70
70
71
71
### JAVA BINDING
72
- set (ENV{JAVA_HOME} "/usr/java/jdk1.6.0_43" ) # fix find java SDK
72
+ set (JAVADIST "/usr/java/jdk1.6.0_43" )
73
+ set (JAVAC "${JAVADIST} /bin/javac" )
74
+ set (JAR "${JAVADIST} /bin/jar" )
75
+
76
+ set (ENV{JAVA_HOME} ${JAVADIST} ) # fix find java SDK
73
77
find_package (Java REQUIRED )
74
78
find_package (JNI REQUIRED )
75
79
include (UseJava )
@@ -83,15 +87,19 @@ if(SWIG_FOUND)
83
87
swig_add_module (avtranscoder-java java ${AVTRANSCODER_BINDING_FILE} )
84
88
swig_link_libraries (avtranscoder-java avtranscoder-shared )
85
89
86
- # Need to generate java files before class files and jar
90
+ # Post build of java binding : compile java files (generate class files) and create jar
87
91
set (AVTRANSCODER_JAVA_OUTPUT_PATH "${PROJECT_BINARY_DIR} /src/AvTranscoder" )
88
- if (EXISTS "${AVTRANSCODER_JAVA_OUTPUT_PATH} /Transcoder.java" )
89
- file (GLOB AVTRANSCODER_JAVA_BINDING_FILES "${AVTRANSCODER_JAVA_OUTPUT_PATH} /*.java" )
90
- add_jar (avtranscoder-jar ${AVTRANSCODER_JAVA_BINDING_FILES} )
91
-
92
- # Install jar
93
- install_jar (avtranscoder-jar "share/java/" )
94
- endif ()
92
+ set (AVTRANSCODER_JAR_PATH "${PROJECT_BINARY_DIR} /src" )
93
+ set (AVTRANSCODER_JAR_NAME "avtranscoder-jar.jar" )
94
+ ADD_CUSTOM_COMMAND (
95
+ TARGET avtranscoder-java
96
+ POST_BUILD
97
+ COMMAND ${JAVAC} ${AVTRANSCODER_JAVA_CLASS_OUTPUT_PATH} "${AVTRANSCODER_JAVA_OUTPUT_PATH} /*.java"
98
+ COMMAND ${JAR} cvf ${AVTRANSCODER_JAR_NAME} "${AVTRANSCODER_JAVA_OUTPUT_PATH} /*.class"
99
+ )
100
+
101
+ # Install jar file
102
+ install (FILES ${AVTRANSCODER_JAR_PATH} /${AVTRANSCODER_JAR_NAME} DESTINATION "share/java/" )
95
103
96
104
else (SWIG_FOUND )
97
105
message ("SWIG not found, will not build python and java bindings." )
0 commit comments