Split java CMakeLists.txt into several ones (#2734)
authorIlya Lavrenov <ilya.lavrenov@intel.com>
Thu, 29 Oct 2020 09:48:03 +0000 (12:48 +0300)
committerGitHub <noreply@github.com>
Thu, 29 Oct 2020 09:48:03 +0000 (12:48 +0300)
* Split java CMakeLists.txt into several ones

* Replaced openjdk to OpenJDK

* Build Java library before tests

inference-engine/ie_bridges/java/CMakeLists.txt
inference-engine/ie_bridges/java/README.md
inference-engine/ie_bridges/java/samples/CMakeLists.txt [new file with mode: 0644]
inference-engine/ie_bridges/java/tests/CMakeLists.txt [new file with mode: 0644]

index 4ffb059..f55ff6d 100644 (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)
+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()
index ad7935c..bb17bf5 100644 (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
diff --git a/inference-engine/ie_bridges/java/samples/CMakeLists.txt b/inference-engine/ie_bridges/java/samples/CMakeLists.txt
new file mode 100644 (file)
index 0000000..fe0751a
--- /dev/null
@@ -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 (file)
index 0000000..cfcd022
--- /dev/null
@@ -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)