--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -156,6 +156,7 @@
         "${_sp_src}/third_party/protobuf-lite" # for "google/protobuf/port_def.inc"
         "${_sp_src}/third_party/" # for "absl/strings/string_view.h" and "darts_clone/darts.h"
         "${_sp_src}" # for "third_party/absl/strings/string_view.h"
+        "${sentencepiece_BINARY_DIR}" # for "config.h"
         )
     else()
       target_include_directories(${TARGET_NAME} SYSTEM PRIVATE
@@ -180,27 +181,9 @@
 endfunction()
 
 function(ov_tokenizers_link_pcre2 TARGET_NAME)
-  FetchContent_Declare(
-      pcre2
-      URL https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.46/pcre2-10.46.zip
-      URL_HASH SHA256=d872153b2d2338f7bc7b6e9bcc2f7f0c8a529c34fe48c538fea0b3a4e062f046
-  )
-  FetchContent_GetProperties(pcre2)
-  if(NOT pcre2_POPULATED)
-    FetchContent_Populate(pcre2)
-
-    set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
-    set(CMAKE_POLICY_DEFAULT_CMP0126 NEW)
-    set(PCRE2_SUPPORT_JIT ON)
-    set(PCRE2_STATIC_PIC ON)
-    set(PCRE2_BUILD_TESTS OFF)
-    set(PCRE2_BUILD_PCRE2GREP OFF)
-
-    add_subdirectory(${pcre2_SOURCE_DIR} ${pcre2_BINARY_DIR} EXCLUDE_FROM_ALL)
-  endif()
-
-  target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${pcre2_BINARY_DIR})
-  target_link_libraries(${TARGET_NAME} PRIVATE pcre2-8)
+  find_package(PkgConfig REQUIRED)
+  pkg_check_modules(PCRE2_8 REQUIRED IMPORTED_TARGET libpcre2-8)
+  target_link_libraries(${TARGET_NAME} PRIVATE PkgConfig::PCRE2_8)
   target_compile_definitions(${TARGET_NAME} PRIVATE PCRE2_CODE_UNIT_WIDTH=8)
 endfunction()