diff --git a/CMakeLists.txt b/CMakeLists.txt
index d2c1d0a76053c3885aa2fdeb51383a5303c2c3db..ce1b50629a3e0ca97c986e7b3ce8d3df743f75e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -89,7 +89,8 @@ target_link_libraries(${module_name}
 )
 
 if(OpenMP_CXX_FOUND)
-    target_link_libraries(${module_name} PUBLIC OpenMP::OpenMP_CXX)
+    target_link_libraries(${module_name} PRIVATE OpenMP::OpenMP_CXX)
+    set(AIDGE_REQUIRES_OPENMP TRUE)
 endif()
 
 # Add definition _USE_MATH_DEFINES to enable math constant definitions from math.h/cmath.
diff --git a/aidge_backend_cpu-config.cmake.in b/aidge_backend_cpu-config.cmake.in
index 7582102c24a551db7f346e1b614d7dcaa4940b1d..35865c71a87aebbb04abe6cd964f54e0f08029a0 100644
--- a/aidge_backend_cpu-config.cmake.in
+++ b/aidge_backend_cpu-config.cmake.in
@@ -2,6 +2,10 @@
 
 include(CMakeFindDependencyMacro)
 find_dependency(aidge_core)
+set(AIDGE_REQUIRES_OPENMP @AIDGE_REQUIRES_OPENMP@)
+if (AIDGE_REQUIRES_OPENMP)
+    find_dependency(OpenMP)
+endif()
 set(AIDGE_REQUIRES_OPENSSL @AIDGE_REQUIRES_OPENSSL@)
 if (AIDGE_REQUIRES_OPENSSL)
     find_dependency(OpenSSL)