diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake index 1061baa1af..dfc94597bb 100644 --- a/cmake/OpenCVFindLibsPerf.cmake +++ b/cmake/OpenCVFindLibsPerf.cmake @@ -204,6 +204,8 @@ if(WITH_FASTCV) ) if (NOT BUILD_SHARED_LIBS) 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() set(FASTCV_LIBRARY "fastcv" CACHE PATH "FastCV library") list(APPEND OPENCV_LINKER_LIBS ${FASTCV_LIBRARY}) diff --git a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake index df48ae0848..c5b7ab13df 100644 --- a/cmake/OpenCVGenConfig.cmake +++ b/cmake/OpenCVGenConfig.cmake @@ -68,6 +68,14 @@ else() set(USE_IPPIW FALSE) 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) 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. @@ -92,6 +100,11 @@ if(USE_IPPIW) ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPIW.cmake.in" IPPIW_CONFIGCMAKE @ONLY) 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) ocv_path_join(__install_nested "${OPENCV_CONFIG_INSTALL_PATH}" "${NESTED_PATH}") ocv_path_join(__tmp_nested "${TMP_DIR}" "${NESTED_PATH}") diff --git a/cmake/templates/OpenCVConfig-FastCV.cmake.in b/cmake/templates/OpenCVConfig-FastCV.cmake.in new file mode 100644 index 0000000000..9ce3d5ef33 --- /dev/null +++ b/cmake/templates/OpenCVConfig-FastCV.cmake.in @@ -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() diff --git a/cmake/templates/OpenCVConfig.cmake.in b/cmake/templates/OpenCVConfig.cmake.in index 2e9022a355..c642863e9a 100644 --- a/cmake/templates/OpenCVConfig.cmake.in +++ b/cmake/templates/OpenCVConfig.cmake.in @@ -99,6 +99,8 @@ endif() @IPPICV_CONFIGCMAKE@ @IPPIW_CONFIGCMAKE@ +@FASTCV_CONFIGCMAKE@ + # Some additional settings are required if OpenCV is built as static libs set(OpenCV_SHARED @BUILD_SHARED_LIBS@) diff --git a/platforms/android/fastcv.config.py b/platforms/android/fastcv.config.py new file mode 100644 index 0000000000..c96b534e68 --- /dev/null +++ b/platforms/android/fastcv.config.py @@ -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')), +]