API: Use string type instead of u8.
[vpp.git] / extras / japi / java / CMakeLists.txt
index f36fac2..0cbdd51 100644 (file)
@@ -11,8 +11,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-include (UseJava)
-
 find_path(VNET_INCLUDE_DIR NAMES vnet/api_errno.h)
 find_library(VPPINFRA_DIR NAMES vppinfra REQUIRED)
 find_library(VLIBMEMORYCLIENT_DIR NAMES vlibmemoryclient REQUIRED)
@@ -20,13 +18,13 @@ find_library(SVM_DIR NAMES svm REQUIRED)
 
 include_directories(${VNET_INCLUDE_DIR}
                     ${VNET_INCLUDE_DIR}/vpp_plugins
-                    ${JNI_INCLUDE_DIRS}
+                    ${Java_INCLUDE_DIRS}
                     ${CMAKE_CURRENT_SOURCE_DIR}
                     ${CMAKE_BINARY_DIR/../vpp/plugins})
 add_compile_options(-Wall)
 ############# Common package ##################
 add_library(jvpp_common SHARED jvpp-common/jvpp_common.c)
-set_target_properties(jvpp_common PROPERTIES SOVERSION ${PROJECT_VERSION})
+set_target_properties(jvpp_common PROPERTIES SOVERSION ${JAPI_LIB_VERSION})
 target_link_libraries(jvpp_common ${VPPINFRA_DIR})
 install(TARGETS jvpp_common DESTINATION lib COMPONENT libjvpp_common)
 install(FILES jvpp-common/jvpp_common.h DESTINATION include/japi/)
@@ -46,9 +44,10 @@ FILE(GLOB files RELATIVE
 add_custom_target (jvpp-registry-classes)
 add_custom_command (TARGET jvpp-registry-classes
   PRE_BUILD
+  COMMAND mkdir -p jvpp-registry/target
   COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/jvpp-registry
   COMMAND ${Java_JAVAC_EXECUTABLE}
-  ARGS -d ${CMAKE_CURRENT_BINARY_DIR}/jvpp-registry -h jvpp-registry ${files}
+  ARGS -d ${CMAKE_CURRENT_SOURCE_DIR}/jvpp-registry/target -h jvpp-registry ${files}
   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 )
 
@@ -56,8 +55,24 @@ add_library(jvpp_registry SHARED jvpp-registry/jvpp_registry.c)
 target_link_libraries(jvpp_registry ${JVPP_LIBS})
 include_directories(jvpp-registry)
 add_dependencies(jvpp_registry jvpp_common jvpp-registry-classes)
-add_jar(jvpp-registry ${files} VERSION ${PROJECT_VERSION})
-install_jar(jvpp-registry DESTINATION share/java/)
+
+add_custom_target (jvpp-registry)
+add_dependencies(jvpp-registry jvpp_registry)
+add_custom_command(TARGET jvpp-registry
+    PRE_BUILD
+    COMMAND cp ${CMAKE_BINARY_DIR}/lib/libjvpp_registry.so jvpp-registry/target
+    COMMAND ${Java_JAR_EXECUTABLE} ARGS cf
+      ${CMAKE_CURRENT_BINARY_DIR}/jvpp-registry-${JAPI_LIB_VERSION}.jar
+      -C jvpp-registry/target .
+    COMMAND rm ARGS -rf jvpp-registry/target
+      jvpp-registry/io_fd_vpp_jvpp_*.h
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+    COMMENT "JAR_GEN registry"
+)
+install(
+    FILES ${CMAKE_CURRENT_BINARY_DIR}/jvpp-registry-${JAPI_LIB_VERSION}.jar
+    DESTINATION share/java
+)
 
 ############## Functions #########################
 function(japigen name)
@@ -73,8 +88,8 @@ function(japigen name)
       ARGS --plugin_name ${name} --root_dir jvpp-${name} -i ${ARGN}
     COMMAND find jvpp-${name} -name \*.java > jvpp-${name}/jvpp-${name}.files
     COMMAND ${Java_JAVAC_EXECUTABLE}
-      ARGS -cp ${CMAKE_CURRENT_BINARY_DIR}/jvpp-registry-${PROJECT_VERSION}.jar -d
-      ${CMAKE_CURRENT_BINARY_DIR}/jvpp-${name} -h jvpp-${name}
+      ARGS -cp ${CMAKE_CURRENT_BINARY_DIR}/jvpp-registry-${JAPI_LIB_VERSION}.jar -d
+      ${CMAKE_CURRENT_SOURCE_DIR}/jvpp-${name}/target -h jvpp-${name}
       @jvpp-${name}/jvpp-${name}.files
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     COMMENT "JAVA_API_GEN ${name}"
@@ -86,8 +101,8 @@ function(jargen name)
     POST_BUILD
     COMMAND cp ${CMAKE_BINARY_DIR}/lib/libjvpp_${name}.so jvpp-${name}/target
     COMMAND ${Java_JAR_EXECUTABLE} ARGS cf
-      ${CMAKE_CURRENT_BINARY_DIR}/jvpp-${name}-${PROJECT_VERSION}.jar
-      @jvpp-${name}/jvpp-${name}.files
+      ${CMAKE_CURRENT_BINARY_DIR}/jvpp-${name}-${JAPI_LIB_VERSION}.jar
+      -C jvpp-${name}/target .
     COMMAND rm ARGS -rf jvpp-${name}/target jvpp-${name}/jvpp-${name}.files
       jvpp-${name}/jvpp_${name}_gen.h jvpp-${name}/io_fd_vpp_jvpp_*.h
       jvpp-registry/io_fd_vpp_jvpp_*.h
@@ -95,7 +110,7 @@ function(jargen name)
     COMMENT "JAR_GEN ${name}"
   )
   install(
-    FILES ${CMAKE_CURRENT_BINARY_DIR}/jvpp-${name}-${PROJECT_VERSION}.jar
+    FILES ${CMAKE_CURRENT_BINARY_DIR}/jvpp-${name}-${JAPI_LIB_VERSION}.jar
     DESTINATION share/java
   )
 endfunction()