Split java CMakeLists.txt into several ones (#2734)

* Split java CMakeLists.txt into several ones

* Replaced openjdk to OpenJDK

* Build Java library before tests
This commit is contained in:
Ilya Lavrenov 2020-10-29 12:48:03 +03:00 committed by GitHub
parent ce037da591
commit f1cf207663
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 65 additions and 54 deletions

View File

@ -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)
set(InferenceEngine_LIBRARIES inference_engine)
find_package(JNI REQUIRED)
file(GLOB_RECURSE sources cpp/*.cpp)
add_library(${PROJECT_NAME} SHARED ${sources})
# Build native part
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})
file(GLOB_RECURSE sources ${CMAKE_CURRENT_SOURCE_DIR}/cpp/*.cpp)
add_library(${PROJECT_NAME} SHARED ${sources})
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()

View File

@ -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

View File

@ -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()

View File

@ -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)