diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake index 4c46e66f49..c3a6b458fa 100644 --- a/cmake/OpenCVGenPkgconfig.cmake +++ b/cmake/OpenCVGenPkgconfig.cmake @@ -74,8 +74,8 @@ if(OpenCV_EXTRA_COMPONENTS) list(APPEND OpenCV_LIB_COMPONENTS_ "${extra_component}") elseif(extra_component MATCHES "[\\/]") get_filename_component(libdir "${extra_component}" PATH) - get_filename_component(libname "${extra_component}" NAME_WE) - string(REGEX REPLACE "^lib" "" libname "${libname}") + get_filename_component(libname "${extra_component}" NAME) + ocv_get_libname(libname "${libname}") list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libdir}" "-l${libname}") else() list(APPEND OpenCV_LIB_COMPONENTS_ "-l${extra_component}") diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake index 55a7acdaaf..6be808c2ed 100644 --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -749,6 +749,12 @@ function(ocv_source_group group) source_group(${group} FILES ${srcs}) endfunction() +macro(ocv_get_libname var_name) + get_filename_component(__libname "${ARGN}" NAME) + string(REGEX REPLACE "^lib(.+).(a|so)(.[.0-9]+)?$" "\\1" __libname "${__libname}") + set(${var_name} "${__libname}") +endmacro() + # build the list of simple dependencies, that links via "-l" # _all_libs - name of variable with input list # _simple - name of variable with output list of simple libs