diff --git a/adapters/opencv/kleidicv_hal.h b/adapters/opencv/kleidicv_hal.h index dee7e9367d0f2d0be4ec66113060f3d6c3c09b94..9245de5c6a1a73abac703e7aec7cb3011f5a407b 100644 --- a/adapters/opencv/kleidicv_hal.h +++ b/adapters/opencv/kleidicv_hal.h @@ -174,8 +174,10 @@ int scharr_deriv(const uchar *src_data, size_t src_step, int16_t *dst_data, } // namespace hal } // namespace kleidicv +#if KLEIDICV_USE_CV_NAMESPACE_IN_OPENCV_HAL // Other HAL implementations might require the cv namespace namespace cv { +#endif // KLEIDICV_USE_CV_NAMESPACE_IN_OPENCV_HAL // If the KleidiCV function has a signature matching the OpenCV HAL interface // AND it never returns KLEIDICV_NOT_IMPLEMENTED then we can call it directly @@ -665,6 +667,8 @@ static inline int kleidicv_ScharrDeriv_with_fallback(const uchar *src_data, // Remove no longer needed macro definitions. #undef KLEIDICV_HAL_FALLBACK_FORWARD +#if KLEIDICV_USE_CV_NAMESPACE_IN_OPENCV_HAL } // namespace cv +#endif // KLEIDICV_USE_CV_NAMESPACE_IN_OPENCV_HAL #endif // KLEIDICV_OPENCV_HAL_H diff --git a/kleidicv/CMakeLists.txt b/kleidicv/CMakeLists.txt index f48bb2a8832fcb91ab9b9275bf1c72599453d355..ff6a1cb47e77fc0eeb3a6e24936dda8e603eb082 100644 --- a/kleidicv/CMakeLists.txt +++ b/kleidicv/CMakeLists.txt @@ -39,6 +39,11 @@ option( "Limits SVE2 code paths to selected algorithms. Has no effect if KLEIDICV_ENABLE_SVE2 is false." ON ) +option( + KLEIDICV_USE_CV_NAMESPACE_IN_OPENCV_HAL + "Controls whether to use the cv namespace. Other OpenCV HAL implementations might require this, but it can cause issues as well." + ON +) option( KLEIDICV_ENABLE_ALL_OPENCV_HAL "Internal - Enable all KleidiCV operations in the OpenCV HAL. diff --git a/kleidicv/include/kleidicv/config.h.in b/kleidicv/include/kleidicv/config.h.in index 39930f9b358e9d43288f9a8a61b067e186f4c894..2460c116e30587d307cb82279134b0575650ec44 100644 --- a/kleidicv/include/kleidicv/config.h.in +++ b/kleidicv/include/kleidicv/config.h.in @@ -13,6 +13,8 @@ #cmakedefine01 KLEIDICV_ASSUME_128BIT_SVE2 +#cmakedefine01 KLEIDICV_USE_CV_NAMESPACE_IN_OPENCV_HAL + #cmakedefine01 KLEIDICV_ENABLE_ALL_OPENCV_HAL #cmakedefine01 KLEIDICV_PREFER_INTERLEAVING_LOAD_STORE