Try to add FastCV to OpenCV4AndroidSDK

This commit is contained in:
Alexander Smorkalov 2025-05-21 13:13:34 +03:00
parent 0bc95d9256
commit 0806124ac7
5 changed files with 30 additions and 0 deletions

View File

@ -204,6 +204,8 @@ if(WITH_FASTCV)
) )
if (NOT BUILD_SHARED_LIBS) if (NOT BUILD_SHARED_LIBS)
install(FILES "${FastCV_LIB_PATH}/libfastcv.a" DESTINATION "${OPENCV_3P_LIB_INSTALL_PATH}" COMPONENT "dev") install(FILES "${FastCV_LIB_PATH}/libfastcv.a" DESTINATION "${OPENCV_3P_LIB_INSTALL_PATH}" COMPONENT "dev")
set(FASTCV_LOCATION_PATH "${FastCV_LIB_PATH}/libfastcv.a" CACHE INTERNAL "" FORCE)
set(FASTCV_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_3P_LIB_INSTALL_PATH}/libfastcv.a" CACHE INTERNAL "" FORCE)
endif() endif()
set(FASTCV_LIBRARY "fastcv" CACHE PATH "FastCV library") set(FASTCV_LIBRARY "fastcv" CACHE PATH "FastCV library")
list(APPEND OPENCV_LINKER_LIBS ${FASTCV_LIBRARY}) list(APPEND OPENCV_LINKER_LIBS ${FASTCV_LIBRARY})

View File

@ -68,6 +68,14 @@ else()
set(USE_IPPIW FALSE) set(USE_IPPIW FALSE)
endif() endif()
if(TARGET fastcv AND NOT BUILD_SHARED_LIBS)
file(RELATIVE_PATH FASTCV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_BINARY_DIR}" "${FASTCV_LOCATION_PATH}")
ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-FastCV.cmake.in" FASTCV_CONFIGCMAKE @ONLY)
set(USE_FASTCV TRUE)
else()
set(USE_FASTCV FALSE)
endif()
ocv_cmake_hook(PRE_CMAKE_CONFIG_BUILD) ocv_cmake_hook(PRE_CMAKE_CONFIG_BUILD)
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" @ONLY) configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" @ONLY)
#support for version checking when finding opencv. find_package(OpenCV 2.3.1 EXACT) should now work. #support for version checking when finding opencv. find_package(OpenCV 2.3.1 EXACT) should now work.
@ -92,6 +100,11 @@ if(USE_IPPIW)
ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPIW.cmake.in" IPPIW_CONFIGCMAKE @ONLY) ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPIW.cmake.in" IPPIW_CONFIGCMAKE @ONLY)
endif() endif()
if(USE_FASTCV)
file(RELATIVE_PATH FASTCV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}" "${FASTCV_INSTALL_PATH}")
ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-FastCV.cmake.in" FASTCV_CONFIGCMAKE @ONLY)
endif()
function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME) function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME)
ocv_path_join(__install_nested "${OPENCV_CONFIG_INSTALL_PATH}" "${NESTED_PATH}") ocv_path_join(__install_nested "${OPENCV_CONFIG_INSTALL_PATH}" "${NESTED_PATH}")
ocv_path_join(__tmp_nested "${TMP_DIR}" "${NESTED_PATH}") ocv_path_join(__tmp_nested "${TMP_DIR}" "${NESTED_PATH}")

View File

@ -0,0 +1,7 @@
if(NOT TARGET fastcv)
add_library(fastcv STATIC IMPORTED)
set_target_properties(fastcv PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES ""
IMPORTED_LOCATION "${OpenCV_INSTALL_PATH}/@FASTCV_INSTALL_PATH_RELATIVE_CONFIGCMAKE@"
)
endif()

View File

@ -99,6 +99,8 @@ endif()
@IPPICV_CONFIGCMAKE@ @IPPICV_CONFIGCMAKE@
@IPPIW_CONFIGCMAKE@ @IPPIW_CONFIGCMAKE@
@FASTCV_CONFIGCMAKE@
# Some additional settings are required if OpenCV is built as static libs # Some additional settings are required if OpenCV is built as static libs
set(OpenCV_SHARED @BUILD_SHARED_LIBS@) set(OpenCV_SHARED @BUILD_SHARED_LIBS@)

View File

@ -0,0 +1,6 @@
ABIs = [
ABI("2", "armeabi-v7a", None, 21, cmake_vars=dict(ANDROID_ABI='armeabi-v7a with NEON', WITH_FASTCV='ON')),
ABI("3", "arm64-v8a", None, 21, cmake_vars=dict(ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES='ON', WITH_FASTCV='ON')),
ABI("5", "x86_64", None, 21, cmake_vars=dict(ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES='ON')),
ABI("4", "x86", None, 21, cmake_vars=dict(WITH_IPP='OFF')),
]