diff --git a/src/ipc/CMakeLists.txt b/src/ipc/CMakeLists.txt
index e898dfd62a214..7edf6a2936c6c 100644
--- a/src/ipc/CMakeLists.txt
+++ b/src/ipc/CMakeLists.txt
@@ -2,12 +2,7 @@
 # Distributed under the MIT software license, see the accompanying
 # file COPYING or https://opensource.org/license/mit/.
 
-# Don't use internal libmultiprocess library if an external one is enabled.
-  add_subdirectory(libmultiprocess EXCLUDE_FROM_ALL)
-  # Share MP_INCLUDE_DIR variable with parent scope so target_capnp_sources
-  # build rules can find the libmultiprocess include directory and avoid
-  # "error: Import failed: /mp/proxy.capnp" errors from capnp.
-  set(MP_INCLUDE_DIR "${MP_INCLUDE_DIR}" PARENT_SCOPE)
+add_subdirectory(libmultiprocess EXCLUDE_FROM_ALL)
 
 add_library(bitcoin_ipc STATIC EXCLUDE_FROM_ALL
   capnp/mining.cpp
@@ -25,6 +20,8 @@ target_capnp_sources(bitcoin_ipc ${PROJECT_SOURCE_DIR}
   EXTERNAL_MPGEN ${MPGEN}
 )
 
+target_link_libraries(multiprocess PRIVATE $<BUILD_INTERFACE:core_interface>)
+
 target_link_libraries(bitcoin_ipc
   PRIVATE
     core_interface