cmake_minimum_required(VERSION 3.18) project(MyYoloSdk CXX) set(CMAKE_CXX_STANDARD 17) if(WIN32) find_package(JNI COMPONENTS JNI REQUIRED) message(STATUS "Configuring for Windows (using vcpkg OpenCV + manual ONNX)") # find_package(OpenCV REQUIRED) # set(ORT_MANUAL_PATH ${CMAKE_SOURCE_DIR}/../prebuilt_libs/onnxruntime-win-x64-1.23.2) elseif(UNIX) set(JNI_INCLUDE_DIRS "/usr/lib/jvm/java-11-openjdk-amd64/include" "/usr/lib/jvm/java-11-openjdk-amd64/include/linux" ) set(JNI_LIBRARIES "/usr/lib/jvm/java-11-openjdk-amd64/lib/server/libjvm.so") message(STATUS "Configuring for Linux (using apt OpenCV + manual ONNX)") # # find_package(OpenCV REQUIRED) # set(ORT_MANUAL_PATH ${CMAKE_SOURCE_DIR}/../prebuilt_libs/onnxruntime-linux-x64-1.23.2) endif() # --- 3. # find_path(ONNXRuntime_INCLUDE_DIRS NAMES onnxruntime_cxx_api.h HINTS ${ORT_MANUAL_PATH}/include ) find_library(ONNXRuntime_LIBRARY NAMES onnxruntime HINTS ${ORT_MANUAL_PATH}/lib ) # if(NOT OpenCV_FOUND) message(FATAL_ERROR "Failed to find OpenCV. On Linux, run 'sudo apt install libopencv-dev'. On Windows, ensure vcpkg is setup.") endif() if(NOT ONNXRuntime_INCLUDE_DIRS OR NOT ONNXRuntime_LIBRARY) message(FATAL_ERROR "Failed to find manual ONNX Runtime at ${ORT_MANUAL_PATH}") endif() message(STATUS "Found OpenCV: ${OpenCV_LIBS}") message(STATUS "Found ONNX Runtime Include: ${ONNXRuntime_INCLUDE_DIRS}") message(STATUS "Found ONNX Runtime Library: ${ONNXRuntime_LIBRARY}") # --- 4. add_library(my_yolo_sdk SHARED src/YoloCore.cpp src/YoloSdk_JNI.cpp ) # --- 5. target_include_directories(my_yolo_sdk PUBLIC ${JNI_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${ONNXRuntime_INCLUDE_DIRS} include ) target_link_libraries(my_yolo_sdk PRIVATE ${JNI_LIBRARIES} ${OpenCV_LIBS} # ${ONNXRuntime_LIBRARY} ) # --- 6. if(UNIX) message(STATUS "Setting RPATH for Linux") set_target_properties(my_yolo_sdk PROPERTIES INSTALL_RPATH "$ORIGIN" # ) endif()