|
Packit Service |
311553 |
set(JAVA_SWIG_BINDING libyangJava)
|
|
Packit Service |
311553 |
find_package(Java REQUIRED)
|
|
Packit Service |
311553 |
find_package(JNI REQUIRED)
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
include_directories(${JNI_INCLUDE_DIRS})
|
|
Packit Service |
311553 |
message(STATUS "JNI_INCLUDE_DIRS: ${JNI_INCLUDE_DIRS}")
|
|
Packit Service |
311553 |
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
set(CMAKE_SWIG_FLAGS "-c++")
|
|
Packit Service |
311553 |
set(CMAKE_SWIG_FLAGS "-I${PROJECT_SOURCE_DIR}")
|
|
Packit Service |
311553 |
set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/org/cesnet")
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
set_source_files_properties(${JAVA_SWIG_BINDING}.i PROPERTIES CPLUSPLUS ON PREFIX "" SWIG_FLAGS "-package;org.cesnet")
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
|
|
Packit Service |
311553 |
swig_add_module(${JAVA_SWIG_BINDING} java ${JAVA_SWIG_BINDING}.i)
|
|
Packit Service |
311553 |
else()
|
|
Packit Service |
311553 |
swig_add_library(${JAVA_SWIG_BINDING} LANGUAGE java SOURCES ${JAVA_SWIG_BINDING}.i)
|
|
Packit Service |
311553 |
endif()
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
set_target_properties(${SWIG_MODULE_${JAVA_SWIG_BINDING}_REAL_NAME} PROPERTIES PREFIX "")
|
|
Packit Service |
311553 |
swig_link_libraries(${JAVA_SWIG_BINDING} ${JNI_LIBRARIES} libyang-cpp)
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
add_custom_command(TARGET ${JAVA_SWIG_BINDING} POST_BUILD COMMAND "${Java_JAVAC_EXECUTABLE}" *.java -d . COMMAND "${Java_JAR_EXECUTABLE}" -cvf libyang.jar org)
|
|
Packit Service |
311553 |
set(NATIVE_JAR "${CMAKE_CURRENT_BINARY_DIR}/libyang.jar")
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
# install so file
|
|
Packit Service |
311553 |
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${JAVA_SWIG_BINDING}.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
file(COPY "examples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
|
Packit Service |
311553 |
add_custom_command(TARGET ${JAVA_SWIG_BINDING} POST_BUILD
|
|
Packit Service |
311553 |
COMMAND ${Java_JAVAC_EXECUTABLE} -cp .:${NATIVE_JAR} ${CMAKE_SWIG_OUTDIR}/examples/Context.java
|
|
Packit Service |
311553 |
COMMAND ${Java_JAVAC_EXECUTABLE} -cp .:${NATIVE_JAR} ${CMAKE_SWIG_OUTDIR}/examples/ProcessTree.java
|
|
Packit Service |
311553 |
COMMAND ${Java_JAVAC_EXECUTABLE} -cp .:${NATIVE_JAR} ${CMAKE_SWIG_OUTDIR}/examples/Xpath.java
|
|
Packit Service |
311553 |
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
if (ENABLE_BUILD_TESTS)
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
file(COPY "tests" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
|
Packit Service |
311553 |
set(JAVA_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/tests)
|
|
Packit Service |
311553 |
set(JUNIT_JAR ${JAVA_TEST_DIR}/junit-4.12.jar:${JAVA_TEST_DIR}/hamcrest-core-1.3.jar)
|
|
Packit Service |
311553 |
set(JAVA_TEST_SRC
|
|
Packit Service |
311553 |
LibyangTest
|
|
Packit Service |
311553 |
TreeDataTest
|
|
Packit Service |
311553 |
TreeSchemaTest)
|
|
Packit Service |
311553 |
configure_file("${JAVA_TEST_DIR}/Constants.java.in" "${JAVA_TEST_DIR}/Constants.java" ESCAPE_QUOTES @ONLY)
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
foreach(JTEST ${JAVA_TEST_SRC})
|
|
Packit Service |
311553 |
add_custom_command(TARGET ${JAVA_SWIG_BINDING} POST_BUILD
|
|
Packit Service |
311553 |
COMMAND ${Java_JAVAC_EXECUTABLE} -cp ${NATIVE_JAR}:${JUNIT_JAR}:${JAVA_TEST_DIR} ${JAVA_TEST_DIR}/${JTEST}.java
|
|
Packit Service |
311553 |
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
Packit Service |
311553 |
endforeach()
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
add_subdirectory(tests)
|
|
Packit Service |
311553 |
endif()
|