if(VISP_INITIAL_PASS) # generator for JNI/JAR source code and documentation signatures add_subdirectory(generator) endif() if(APPLE_FRAMEWORK OR WINRT OR NOT PYTHON_DEFAULT_AVAILABLE OR NOT (ANT_EXECUTABLE OR ANDROID_PROJECTS_BUILD_TYPE STREQUAL "GRADLE") OR NOT (JNI_FOUND OR (ANDROID AND (NOT DEFINED ANDROID_NATIVE_API_LEVEL OR ANDROID_NATIVE_API_LEVEL GREATER 7)))) vp_module_disable(java) endif() # Java wrapping support for each module is specified in its /CMakeLists.txt file # Below we add those modules which need to be built(compile their C++ code) for the visp_java module # Understand that above 2 lines are totally different. set(the_description "The java bindings") vp_add_module(java BINDINGS visp_core PRIVATE_REQUIRED visp_java_bindings_generator) include(${CMAKE_CURRENT_SOURCE_DIR}/common.cmake) # UTILITY: glob specific sources and append them to list (type is in H, CPP, JAVA, AIDL) macro(glob_more_specific_sources _type _root _output) unset(_masks) if(${_type} STREQUAL "H") set(_masks "${_root}/cpp/*.h" "${root}/cpp/*.hpp") elseif(${_type} STREQUAL "CPP") set(_masks "${_root}/cpp/*.cpp") elseif(${_type} STREQUAL "JAVA") set(_masks "${_root}/java/*.java" "${_root}/java/*.java.in") elseif(${_type} STREQUAL "AIDL") set(_masks "${_root}/java/*.aidl") endif() if (_masks) file(GLOB _result ${_masks}) list(APPEND ${_output} ${_result}) else() message(WARNING "Bad argument passed to macro: skipped") endif() endmacro() # UTILITY: copy common java test files and add them to _deps # copy_common_tests( ) macro(copy_common_tests _src_location _dst_location _deps) set(_src ${_src_location}) set(_dst ${_dst_location}) file(GLOB_RECURSE _files RELATIVE "${_src}" "${_src}/res/*" "${_src}/src/*") foreach(f ${_files}) add_custom_command( OUTPUT "${_dst}/${f}" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_src}/${f}" "${_dst}/${f}" MAIN_DEPENDENCY "${_src}/${f}" COMMENT "Copying ${f}") list(APPEND ${_deps} "${_src}/${f}" "${_dst}/${f}") endforeach() unset(_files) unset(_src) unset(_dst) endmacro() add_subdirectory(jni) # generates ${the_module} target (${the_module}_jni doesn't work properly with Android samples) if(ANDROID) add_subdirectory(android_sdk) # generates ${the_module}_android target else() add_subdirectory(jar) # generates ${the_module}_jar target endif() #if(BUILD_TESTS) # if(ANDROID) # add_subdirectory(test/android_test) # else() # add_subdirectory(test/pure_test) # endif() #endif()