From f1cf2076637344b27e87f2d0130235a696194a6a Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Thu, 29 Oct 2020 12:48:03 +0300 Subject: [PATCH] Split java CMakeLists.txt into several ones (#2734) * Split java CMakeLists.txt into several ones * Replaced openjdk to OpenJDK * Build Java library before tests --- inference-engine/ie_bridges/java/CMakeLists.txt | 60 ++++++---------------- inference-engine/ie_bridges/java/README.md | 13 ++--- .../ie_bridges/java/samples/CMakeLists.txt | 29 +++++++++++ .../ie_bridges/java/tests/CMakeLists.txt | 15 ++++++ 4 files changed, 64 insertions(+), 53 deletions(-) create mode 100644 inference-engine/ie_bridges/java/samples/CMakeLists.txt create mode 100644 inference-engine/ie_bridges/java/tests/CMakeLists.txt diff --git a/inference-engine/ie_bridges/java/CMakeLists.txt b/inference-engine/ie_bridges/java/CMakeLists.txt index 4ffb059..f55ff6d 100644 --- a/inference-engine/ie_bridges/java/CMakeLists.txt +++ b/inference-engine/ie_bridges/java/CMakeLists.txt @@ -1,64 +1,36 @@ # Copyright (C) 2020 Intel Corporation +project(inference_engine_java_api) + +# Find Java + find_package(Java REQUIRED) include(UseJava) set(JAVA_AWT_INCLUDE_PATH NotNeeded) -project(inference_engine_java_api) +find_package(JNI REQUIRED) -set(InferenceEngine_LIBRARIES inference_engine) +# Build native part -find_package(JNI REQUIRED) +file(GLOB_RECURSE sources ${CMAKE_CURRENT_SOURCE_DIR}/cpp/*.cpp) -file(GLOB_RECURSE sources cpp/*.cpp) add_library(${PROJECT_NAME} SHARED ${sources}) -file(GLOB_RECURSE java_source org/intel/openvino/*.java) -add_jar(inference_engine_jar ${java_source} - OUTPUT_NAME ${PROJECT_NAME} - OUTPUT_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) - target_link_libraries(${PROJECT_NAME} PRIVATE inference_engine) target_include_directories(${PROJECT_NAME} PRIVATE ${JNI_INCLUDE_DIRS}) -if(ENABLE_TESTS) - file(DOWNLOAD https://search.maven.org/remotecontent?filepath=junit/junit/4.13/junit-4.13.jar - ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/junit-4.13.jar) - file(DOWNLOAD https://search.maven.org/remotecontent?filepath=org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar - ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/hamcrest-core-1.3.jar) +# Build java part - file(GLOB_RECURSE java_tests_src tests/*.java) - add_jar(ie_java_api_tests_jar - SOURCES ${java_tests_src} samples/ArgumentParser.java - OUTPUT_NAME ie_java_api_tests - OUTPUT_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} - INCLUDE_JARS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/*) +file(GLOB_RECURSE java_source ${CMAKE_CURRENT_SOURCE_DIR}/org/intel/openvino/*.java) +add_jar(inference_engine_jar ${java_source} + OUTPUT_NAME ${PROJECT_NAME} + OUTPUT_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + +if(ENABLE_TESTS) + add_subdirectory(tests) endif() if(ENABLE_SAMPLES) - find_package(OpenCV) - if(OpenCV_FOUND) - if(EXISTS "${OpenCV_INSTALL_PATH}/share/java") - file(GLOB_RECURSE java_opencv_src ${OpenCV_INSTALL_PATH}/share/java/*.jar) - elseif(EXISTS "${OpenCV_INSTALL_PATH}/bin") - file(GLOB java_opencv_src ${OpenCV_INSTALL_PATH}/bin/*.jar) - endif() - if(EXISTS "${java_opencv_src}") - file(GLOB java_samples samples/*) - foreach(sample ${java_samples}) - if(IS_DIRECTORY ${sample}) - get_filename_component(sample_name "${sample}" NAME) - file(GLOB_RECURSE sample_src ${sample}/*.java) - add_jar("${sample_name}_jar" - SOURCES ${sample_src} samples/ArgumentParser.java - OUTPUT_NAME ${sample_name} - OUTPUT_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} - INCLUDE_JARS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/* ${java_opencv_src}) - endif() - endforeach() - else() - message(WARNING ".jar file wasn't found for OpenCV. Java samples won't be build.") - endif() - endif() + add_subdirectory(samples) endif() diff --git a/inference-engine/ie_bridges/java/README.md b/inference-engine/ie_bridges/java/README.md index ad7935c..bb17bf5 100644 --- a/inference-engine/ie_bridges/java/README.md +++ b/inference-engine/ie_bridges/java/README.md @@ -1,17 +1,12 @@ ## Software Requirements -- openjdk 11 +- OpenJDK (version depends on target OS) ### Linux -To install openjdk: +To install OpenJDK: -* Ubuntu 18.04 +* Ubuntu systems: ```bash -sudo apt-get install -y openjdk-11-jdk -``` - -* Ubuntu 16.04 -```bash -sudo apt-get install -y openjdk-9-jdk +sudo apt-get install -y default-jdk ``` ## Building on Linux diff --git a/inference-engine/ie_bridges/java/samples/CMakeLists.txt b/inference-engine/ie_bridges/java/samples/CMakeLists.txt new file mode 100644 index 0000000..fe0751a --- /dev/null +++ b/inference-engine/ie_bridges/java/samples/CMakeLists.txt @@ -0,0 +1,29 @@ +# Copyright (C) 2020 Intel Corporation + +find_package(OpenCV) +if(NOT OpenCV_FOUND) + message(WARNING ".jar file wasn't found for OpenCV. Java samples won't be build.") + return() +endif() + +if(EXISTS "${OpenCV_INSTALL_PATH}/share/java") + file(GLOB_RECURSE java_opencv_src ${OpenCV_INSTALL_PATH}/share/java/*.jar) +elseif(EXISTS "${OpenCV_INSTALL_PATH}/bin") + file(GLOB java_opencv_src ${OpenCV_INSTALL_PATH}/bin/*.jar) +endif() + +if(EXISTS "${java_opencv_src}") + file(GLOB java_samples ${CMAKE_CURRENT_SOURCE_DIR}/samples/*) + foreach(sample IN LISTS java_samples) + if(IS_DIRECTORY "${sample}") + get_filename_component(sample_name "${sample}" NAME) + file(GLOB_RECURSE sample_src ${sample}/*.java) + add_jar("${sample_name}_jar" + SOURCES ${sample_src} + ${PROJECT_SOURCE_DIR}/samples/ArgumentParser.java + OUTPUT_NAME ${sample_name} + OUTPUT_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + INCLUDE_JARS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/* ${java_opencv_src}) + endif() + endforeach() +endif() diff --git a/inference-engine/ie_bridges/java/tests/CMakeLists.txt b/inference-engine/ie_bridges/java/tests/CMakeLists.txt new file mode 100644 index 0000000..cfcd022 --- /dev/null +++ b/inference-engine/ie_bridges/java/tests/CMakeLists.txt @@ -0,0 +1,15 @@ +# Copyright (C) 2020 Intel Corporation + +file(DOWNLOAD https://search.maven.org/remotecontent?filepath=junit/junit/4.13/junit-4.13.jar + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/junit-4.13.jar) +file(DOWNLOAD https://search.maven.org/remotecontent?filepath=org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/hamcrest-core-1.3.jar) + +file(GLOB_RECURSE java_tests_src ${CMAKE_CURRENT_SOURCE_DIR}/*.java) +add_jar(ie_java_api_tests_jar + SOURCES ${java_tests_src} ${PROJECT_SOURCE_DIR}/samples/ArgumentParser.java + OUTPUT_NAME ie_java_api_tests + OUTPUT_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + INCLUDE_JARS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/*) + +add_dependencies(ie_java_api_tests_jar inference_engine_jar) -- 2.7.4