diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt
index 296f5b3c5e0d9b316ad3c52918c366c736f7415e..816a428c6b5e15380a7bbc573e66a33344cde884 100644
--- a/intern/ghost/CMakeLists.txt
+++ b/intern/ghost/CMakeLists.txt
@@ -4,7 +4,6 @@
 
 set(INC
   PUBLIC .
-  ../../source/blender/imbuf
 )
 
 set(INC_SYS
@@ -72,6 +71,7 @@ set(SRC
 set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
 )
 
diff --git a/source/blender/blenfont/CMakeLists.txt b/source/blender/blenfont/CMakeLists.txt
index ea8c5b856f507d017d313aa0e464b813033c1e27..eb548c2522b5fac1a450338a9cdc4732c76ec57f 100644
--- a/source/blender/blenfont/CMakeLists.txt
+++ b/source/blender/blenfont/CMakeLists.txt
@@ -7,7 +7,6 @@ set(INC
   ../blenkernel
   ../blentranslation
   ../gpu
-  ../imbuf
   ../makesrna
 )
 
@@ -34,6 +33,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::dna
   bf_gpu
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 
   ${FREETYPE_LIBRARIES} ${BROTLI_LIBRARIES}
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 07e4b04fcc6fa4ba455812af0e29a3bc9bb1fccf..620e58cad3bd240bebd91405c935bc4182a7628c 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -13,7 +13,6 @@ set(INC
   ../gpencil_modifiers_legacy
   ../gpu
   ../ikplugin
-  ../imbuf
   ../makesrna
   ../modifiers
   ../nodes
@@ -550,7 +549,7 @@ set(LIB
   bf_gpencil_modifiers_legacy
   bf_gpu
   bf_ikplugin
-  bf_imbuf
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   bf_intern_ghost
   PRIVATE bf::intern::guardedalloc
diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt
index 3f1faf7b9c623259d9cb414cae1fb646231ed527..5207f0291676fe546b66e4fc8991bc42a02184c8 100644
--- a/source/blender/blenloader/CMakeLists.txt
+++ b/source/blender/blenloader/CMakeLists.txt
@@ -9,7 +9,6 @@ set(INC
   ../draw
   ../editors/include
   ../gpu
-  ../imbuf
   ../makesrna
   ../nodes
   ../render
@@ -63,6 +62,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
 )
diff --git a/source/blender/blentranslation/CMakeLists.txt b/source/blender/blentranslation/CMakeLists.txt
index 841bc1819121cfbef605e4822aa5984516bd32b0..a1d655233d765e0c883a0bee77a3e2ef8dcfc13d 100644
--- a/source/blender/blentranslation/CMakeLists.txt
+++ b/source/blender/blentranslation/CMakeLists.txt
@@ -5,7 +5,6 @@
 set(INC
   .
   ../blenkernel
-  ../imbuf
   ../makesrna
   ../../../intern/locale
 )
@@ -25,6 +24,7 @@ set(LIB
   bf_blenkernel
   PRIVATE bf::blenlib
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/compositor/CMakeLists.txt b/source/blender/compositor/CMakeLists.txt
index dfaa4c91ed2e174fb9152428451aae73ce63f738..9976ffcb40d1fcbb35ba90f20224033a182aeb2f 100644
--- a/source/blender/compositor/CMakeLists.txt
+++ b/source/blender/compositor/CMakeLists.txt
@@ -12,7 +12,6 @@ if(WITH_COMPOSITOR_CPU)
     operations
     ../blenkernel
     ../blentranslation
-    ../imbuf
     ../makesrna
     ../nodes
     ../windowmanager
@@ -600,6 +599,7 @@ if(WITH_COMPOSITOR_CPU)
     PRIVATE bf::blenlib
     PRIVATE bf::depsgraph
     PRIVATE bf::dna
+    PRIVATE bf::imbuf
     PRIVATE bf::intern::clog
     PRIVATE bf::intern::guardedalloc
     extern_clew
diff --git a/source/blender/compositor/realtime_compositor/CMakeLists.txt b/source/blender/compositor/realtime_compositor/CMakeLists.txt
index 904b1891046b253b99af769329da8691770556b1..862a8d312653c121d654a63ac724190da662e2a9 100644
--- a/source/blender/compositor/realtime_compositor/CMakeLists.txt
+++ b/source/blender/compositor/realtime_compositor/CMakeLists.txt
@@ -10,7 +10,6 @@ set(INC
   ../../blentranslation
   ../../draw
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../nodes
   ../../render
@@ -112,7 +111,7 @@ set(LIB
   bf_gpu
   PRIVATE bf::intern::guardedalloc
   bf_nodes
-  bf_imbuf
+  PRIVATE bf::imbuf
   bf_render
   PRIVATE bf::blenlib
   bf_blenkernel
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt
index 94d12c3682827ace57ab564f0c7fe8f52f0af4d1..953084554b6eeea8434c76a7d4d8e05f14eaaf53 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -15,7 +15,6 @@ set(INC
   ../functions
   ../gpu
   ../gpu/intern
-  ../imbuf
   ../makesrna
   ../nodes
   ../render
@@ -352,6 +351,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   bf_realtime_compositor
diff --git a/source/blender/editors/gpencil_legacy/CMakeLists.txt b/source/blender/editors/gpencil_legacy/CMakeLists.txt
index 5a1d4e0b60504a07f33266be35801a7527376ad4..3cad3cae98ec606317ad9aa92facd85ebe422752 100644
--- a/source/blender/editors/gpencil_legacy/CMakeLists.txt
+++ b/source/blender/editors/gpencil_legacy/CMakeLists.txt
@@ -8,7 +8,6 @@ set(INC
   ../../blentranslation
   ../../bmesh
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../windowmanager
   # RNA_prototypes.h
@@ -61,6 +60,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/editors/grease_pencil/CMakeLists.txt b/source/blender/editors/grease_pencil/CMakeLists.txt
index e9c644863b11c6eb36eb2a48d0ed6d32f1ca1709..affe0af50f5e212d47f4a3668f50cbe25c384323 100644
--- a/source/blender/editors/grease_pencil/CMakeLists.txt
+++ b/source/blender/editors/grease_pencil/CMakeLists.txt
@@ -8,7 +8,6 @@ set(INC
   ../../blentranslation
   ../../bmesh
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../windowmanager
   ../../../../extern/curve_fit_nd
@@ -36,6 +35,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   extern_curve_fit_nd
 )
diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt
index 3dca992a8ce019ec6bcbfb4e0dff2409826bbf57..797e4078e6049f824debbf7b3b958d0d4601be60 100644
--- a/source/blender/editors/interface/CMakeLists.txt
+++ b/source/blender/editors/interface/CMakeLists.txt
@@ -12,7 +12,6 @@ set(INC
   ../../draw
   ../../functions
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../nodes
   ../../python
@@ -101,6 +100,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_editor_datafiles
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   PRIVATE bf::animrig
 )
diff --git a/source/blender/editors/mesh/CMakeLists.txt b/source/blender/editors/mesh/CMakeLists.txt
index a6e7001299ce567f5dde524d60734fcd00f67e6f..adadfb976694c38995d54596b95ab09b4b48b2b1 100644
--- a/source/blender/editors/mesh/CMakeLists.txt
+++ b/source/blender/editors/mesh/CMakeLists.txt
@@ -12,7 +12,6 @@ set(INC
   ../../functions
   ../../geometry
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../render
   ../../windowmanager
@@ -66,6 +65,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   bf_windowmanager
diff --git a/source/blender/editors/object/CMakeLists.txt b/source/blender/editors/object/CMakeLists.txt
index 69c63252ae8be892d7853f27e42b9dfb63a3cc0e..db6bb5afac4041d800c587fecf31a5410630e13a 100644
--- a/source/blender/editors/object/CMakeLists.txt
+++ b/source/blender/editors/object/CMakeLists.txt
@@ -12,7 +12,6 @@ set(INC
   ../../gpencil_modifiers_legacy
   ../../gpu
   ../../ikplugin
-  ../../imbuf
   ../../makesrna
   ../../modifiers
   ../../python
@@ -68,6 +67,7 @@ set(LIB
   PRIVATE bf::dna
   bf_editor_mesh
   bf_editor_grease_pencil
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   bf_render
diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt
index 20eab2ce2ee26a115e4caa06115f9f29832eda26..4e0d88c3814bc6c4a150243d6fae3d458eff5ae4 100644
--- a/source/blender/editors/render/CMakeLists.txt
+++ b/source/blender/editors/render/CMakeLists.txt
@@ -10,7 +10,6 @@ set(INC
   ../../bmesh
   ../../draw
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../nodes
   ../../render
@@ -40,6 +39,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_draw
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/editors/screen/CMakeLists.txt b/source/blender/editors/screen/CMakeLists.txt
index 8daaa7e05e44c218f92ff9e2fecf61d060db9fae..73678c61cdc4fcb5ae0686845d575db74bcf5e71 100644
--- a/source/blender/editors/screen/CMakeLists.txt
+++ b/source/blender/editors/screen/CMakeLists.txt
@@ -11,7 +11,6 @@ set(INC
   ../../blentranslation
   ../../bmesh
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../sequencer
   ../../windowmanager
@@ -49,6 +48,7 @@ set(LIB
   PRIVATE bf::dna
   bf_editor_datafiles
   bf_editor_space_sequencer
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/editors/sculpt_paint/CMakeLists.txt b/source/blender/editors/sculpt_paint/CMakeLists.txt
index 56c7355357696d050be0d11e99bdc8622dae1c59..08efb9160520e0e86e075b73f20c2ff6c4af2728 100644
--- a/source/blender/editors/sculpt_paint/CMakeLists.txt
+++ b/source/blender/editors/sculpt_paint/CMakeLists.txt
@@ -12,7 +12,6 @@ set(INC
   ../../functions
   ../../geometry
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../nodes
   ../../render
@@ -99,6 +98,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::atomic
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
diff --git a/source/blender/editors/space_clip/CMakeLists.txt b/source/blender/editors/space_clip/CMakeLists.txt
index dbd0bb6a993a8ab9ee0727578355a45ee8df1818..d685025a06e0626f71f79cfc66e2dc7ea850b39c 100644
--- a/source/blender/editors/space_clip/CMakeLists.txt
+++ b/source/blender/editors/space_clip/CMakeLists.txt
@@ -8,7 +8,6 @@ set(INC
   ../../blenloader
   ../../blentranslation
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../windowmanager
 
@@ -50,6 +49,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/editors/space_file/CMakeLists.txt b/source/blender/editors/space_file/CMakeLists.txt
index 18dac396a49ccb77d090919f4162df0559bf1172..8371edaa98e1a00ab239136f36167563ddbe61d4 100644
--- a/source/blender/editors/space_file/CMakeLists.txt
+++ b/source/blender/editors/space_file/CMakeLists.txt
@@ -10,7 +10,6 @@ set(INC
   ../../blenloader
   ../../blentranslation
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../render
   ../../windowmanager
@@ -49,6 +48,7 @@ set(LIB
   bf_blenkernel
   PRIVATE bf::blenlib
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   extern_fmtlib
   PRIVATE bf::intern::atomic
diff --git a/source/blender/editors/space_image/CMakeLists.txt b/source/blender/editors/space_image/CMakeLists.txt
index 6e7fc792a20cbde05d8e91fa52b94972daa30d70..5cc9777074cf25478eaba6ca6cd5a71ef8d5318b 100644
--- a/source/blender/editors/space_image/CMakeLists.txt
+++ b/source/blender/editors/space_image/CMakeLists.txt
@@ -10,7 +10,6 @@ set(INC
   ../../bmesh
   ../../draw
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../render
   ../../windowmanager
@@ -41,6 +40,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_editor_uvedit
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
 )
diff --git a/source/blender/editors/space_info/CMakeLists.txt b/source/blender/editors/space_info/CMakeLists.txt
index 49df2011f403ed9b7f56fa4ec47aeb20a0257953..89f5867023d2f3cda0cb9fbe2cf4b754e1ca618b 100644
--- a/source/blender/editors/space_info/CMakeLists.txt
+++ b/source/blender/editors/space_info/CMakeLists.txt
@@ -9,7 +9,6 @@ set(INC
   ../../blentranslation
   ../../bmesh
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../windowmanager
 
@@ -37,6 +36,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt
index f1d25b7e9298b9b0fb4a4a0c6baf76a3530a0b98..6cde5dfe6d6383229ecf44a728aa38014d297e44 100644
--- a/source/blender/editors/space_node/CMakeLists.txt
+++ b/source/blender/editors/space_node/CMakeLists.txt
@@ -13,7 +13,6 @@ set(INC
   ../../functions
   ../../geometry
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../nodes
   ../../render
@@ -57,6 +56,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_editor_screen
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   extern_fmtlib
 )
diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt
index 26df8082a1c0440e4ea3b91e0292d3d8eea9c302..42e7c0313212e1fc3d5771969ab8d9244e1fffb0 100644
--- a/source/blender/editors/space_outliner/CMakeLists.txt
+++ b/source/blender/editors/space_outliner/CMakeLists.txt
@@ -8,7 +8,6 @@ set(INC
   ../../blenloader
   ../../blentranslation
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../sequencer
   ../../windowmanager
@@ -135,6 +134,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_editor_undo
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
 )
diff --git a/source/blender/editors/space_sequencer/CMakeLists.txt b/source/blender/editors/space_sequencer/CMakeLists.txt
index 3f72e5f6616f5d66ddc898e31c4ad7eb72c67a30..ca6a2da3901ecfc03a06761457f63242a85d4857 100644
--- a/source/blender/editors/space_sequencer/CMakeLists.txt
+++ b/source/blender/editors/space_sequencer/CMakeLists.txt
@@ -9,7 +9,6 @@ set(INC
   ../../blentranslation
   ../../draw
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../sequencer
   ../../windowmanager
@@ -52,6 +51,7 @@ set(LIB
   PRIVATE bf::dna
   bf_editor_interface
   bf_editor_util
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::atomic
   PRIVATE bf::intern::guardedalloc
 )
diff --git a/source/blender/editors/space_view3d/CMakeLists.txt b/source/blender/editors/space_view3d/CMakeLists.txt
index 52945d2d5c0dd22593f487607c4affd328da5613..b66a2383aac606f4a9811ece314857c6f97b9268 100644
--- a/source/blender/editors/space_view3d/CMakeLists.txt
+++ b/source/blender/editors/space_view3d/CMakeLists.txt
@@ -12,7 +12,6 @@ set(INC
   ../../bmesh
   ../../draw
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../render
   ../../windowmanager
@@ -86,6 +85,7 @@ set(LIB
   bf_editor_curves
   bf_editor_lattice
   bf_editor_mesh
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt
index a43fd1bf0b862b6e8adcfa01ba0c985e5de20cdf..fef9a241a5be579a69e9eba3984d857aa6a4c1b4 100644
--- a/source/blender/editors/util/CMakeLists.txt
+++ b/source/blender/editors/util/CMakeLists.txt
@@ -10,7 +10,6 @@ set(INC
   ../../blentranslation
   ../../bmesh
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../sequencer
   ../../windowmanager
@@ -112,6 +111,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
 )
diff --git a/source/blender/freestyle/CMakeLists.txt b/source/blender/freestyle/CMakeLists.txt
index b2cd7a51347c28b83d7119a74f88108ca4872b69..084d79e10651f4fb49aed64cd86b9b3b200ca1cf 100644
--- a/source/blender/freestyle/CMakeLists.txt
+++ b/source/blender/freestyle/CMakeLists.txt
@@ -533,6 +533,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   bf_python_mathutils
 
@@ -544,7 +545,6 @@ set(INC
   .
   ../blenkernel
   ../blentranslation
-  ../imbuf
   ../makesrna
   ../python
   ../python/intern
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index 5143bc26a992c5fc9c1ca95850a8f01cb7cb58ac..eadeec9d0d3f17de0b4a1c8bdb271c9c52ebf480 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -12,7 +12,6 @@ set(INC
   ../blenkernel
   ../bmesh
   ../draw
-  ../imbuf
   ../makesrna
 
   # For theme color access.
@@ -330,6 +329,7 @@ set(METAL_SRC
 set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::atomic
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt
index 62f9310355aeccc0470d2ca0b005b327977794f5..7af2e7cdb58d34a34e93cc2b5ad0d6925d0d0bcc 100644
--- a/source/blender/imbuf/CMakeLists.txt
+++ b/source/blender/imbuf/CMakeLists.txt
@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 set(INC
-  .
+  PUBLIC .
   ../blenkernel
   ../blenloader
   ../gpu
@@ -188,3 +188,4 @@ set_source_files_properties(
 )
 
 blender_add_lib(bf_imbuf "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
+add_library(bf::imbuf ALIAS bf_imbuf)
diff --git a/source/blender/io/avi/CMakeLists.txt b/source/blender/io/avi/CMakeLists.txt
index a64b9826f2b7f08133342ced8ef544ed87a5926d..61f73162b98e3fa67b52a00778705ea2a2f3b83a 100644
--- a/source/blender/io/avi/CMakeLists.txt
+++ b/source/blender/io/avi/CMakeLists.txt
@@ -4,7 +4,6 @@
 
 set(INC
   .
-  ../../imbuf
 )
 
 set(INC_SYS
@@ -32,6 +31,7 @@ set(LIB
   ${JPEG_LIBRARIES}
   PRIVATE bf::blenlib
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/io/collada/CMakeLists.txt b/source/blender/io/collada/CMakeLists.txt
index 32c5e0e877df6a5355aa8acb9e972b5f94d87801..9585c915bcdfdc59a3ada9c330bab8aa031bc12a 100644
--- a/source/blender/io/collada/CMakeLists.txt
+++ b/source/blender/io/collada/CMakeLists.txt
@@ -25,7 +25,6 @@ set(INC
   ../../blentranslation
   ../../editors/include
   ../../ikplugin
-  ../../imbuf
   ../../makesrna
   ../../windowmanager
   ../../../../intern/iksolver/extern
@@ -117,6 +116,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/io/usd/CMakeLists.txt b/source/blender/io/usd/CMakeLists.txt
index cc35680b152c14aab26929b795e222fbc6ddcf65..bf26de8ac082ddbeaef6015f0ae7ddc926c4f4b5 100644
--- a/source/blender/io/usd/CMakeLists.txt
+++ b/source/blender/io/usd/CMakeLists.txt
@@ -62,7 +62,6 @@ set(INC
   ../../blentranslation
   ../../bmesh
   ../../editors/include
-  ../../imbuf
   ../../makesrna
   ../../nodes
   ../../python/intern
@@ -184,7 +183,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   PRIVATE bf::animrig
-  bf_imbuf
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   bf_io_common
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 21c76090975538f9aff35995c6ca5e7b5b7ac315..9850d1cdbd4b625f41aeec072038a528a6df3295 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -61,7 +61,6 @@ set(INC
   ../functions
   ../geometry
   ../gpu
-  ../imbuf
   ../makesrna
   ../modifiers
   ../render
@@ -127,6 +126,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_functions
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   bf_nodes_composite
   bf_nodes_function
diff --git a/source/blender/nodes/composite/CMakeLists.txt b/source/blender/nodes/composite/CMakeLists.txt
index 7edb0de82788a3deb942ea2c74971da61a51ddfd..c10cb2e8d8817895cef1d353226a4bcde912f523 100644
--- a/source/blender/nodes/composite/CMakeLists.txt
+++ b/source/blender/nodes/composite/CMakeLists.txt
@@ -11,7 +11,6 @@ set(INC
   ../../blentranslation
   ../../functions
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../render
   ../../windowmanager
@@ -129,6 +128,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   bf_realtime_compositor
 )
diff --git a/source/blender/nodes/geometry/CMakeLists.txt b/source/blender/nodes/geometry/CMakeLists.txt
index 70fd56b94e33f51b616a0e3b5968afdb5b6af2bc..5d304d9def2ec62662a9c6c6fb7170a85a361c53 100644
--- a/source/blender/nodes/geometry/CMakeLists.txt
+++ b/source/blender/nodes/geometry/CMakeLists.txt
@@ -13,7 +13,6 @@ set(INC
   ../../functions
   ../../geometry
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../modifiers
   ../../render
@@ -216,6 +215,7 @@ set(LIB
   PRIVATE bf::dna
   bf_functions
   bf_geometry
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   bf_nodes
   extern_fmtlib
diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt
index 845fe16a42029123d48b88a3cdff8991ad044c64..4385cd1be607780d539c866594857c9b8c6740ab 100644
--- a/source/blender/nodes/shader/CMakeLists.txt
+++ b/source/blender/nodes/shader/CMakeLists.txt
@@ -11,7 +11,6 @@ set(INC
   ../../editors/include
   ../../functions
   ../../gpu
-  ../../imbuf
   ../../makesrna
   ../../render
   ../../windowmanager
@@ -130,6 +129,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_functions
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   bf_intern_sky
diff --git a/source/blender/nodes/texture/CMakeLists.txt b/source/blender/nodes/texture/CMakeLists.txt
index 71734e76e2babc98e8200a229240b71219d3c001..ed4c7501c896317051b9d5129aee938a95cdeed2 100644
--- a/source/blender/nodes/texture/CMakeLists.txt
+++ b/source/blender/nodes/texture/CMakeLists.txt
@@ -10,7 +10,6 @@ set(INC
   ../../blenkernel
   ../../blentranslation
   ../../bmesh
-  ../../imbuf
   ../../makesrna
   ../../render
   ../../windowmanager
@@ -60,6 +59,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   bf_nodes
 )
diff --git a/source/blender/python/gpu/CMakeLists.txt b/source/blender/python/gpu/CMakeLists.txt
index d3fad4318c398cb2ac32831f6b87bb80380b2a5d..0260024d40700ed8b633d231429afbf351e80cd2 100644
--- a/source/blender/python/gpu/CMakeLists.txt
+++ b/source/blender/python/gpu/CMakeLists.txt
@@ -7,7 +7,6 @@ set(INC
   ../../blenkernel
   ../../editors/include
   ../../gpu
-  ../../imbuf
 )
 
 set(INC_SYS
@@ -62,6 +61,7 @@ set(LIB
   ${PYTHON_LIBRARIES}
   PRIVATE bf::blenlib
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt
index 84b16de91a4370abf8e8ea024b78d009c9626709..c510c79da68acf3ed3427cf59ce524c05507a2c0 100644
--- a/source/blender/python/intern/CMakeLists.txt
+++ b/source/blender/python/intern/CMakeLists.txt
@@ -9,7 +9,6 @@ set(INC
   ../../blentranslation
   ../../editors/include
   ../../gpu
-  ../../imbuf
   ../../imbuf/intern/oiio
   ../../makesrna
   ../../windowmanager
@@ -124,6 +123,7 @@ set(LIB
   bf_editor_animation
   bf_editor_interface
   bf_editor_space_api
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   PRIVATE bf::animrig
diff --git a/source/blender/python/mathutils/CMakeLists.txt b/source/blender/python/mathutils/CMakeLists.txt
index 45693def4a7224867d12519369da3e29b81f9be1..15d525bb040bd2a470707b124b0d5bba240060e9 100644
--- a/source/blender/python/mathutils/CMakeLists.txt
+++ b/source/blender/python/mathutils/CMakeLists.txt
@@ -6,7 +6,6 @@ set(INC
   .
   ../../blenkernel
   ../../bmesh
-  ../../imbuf
 )
 
 set(INC_SYS
@@ -43,7 +42,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
-  bf_imbuf
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   bf_python_ext
 
diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt
index 7faa439362745b196104c781af3c2f6febd23a3b..57e08031f3d533630be5df4f8cd87cae67e3ab71 100644
--- a/source/blender/render/CMakeLists.txt
+++ b/source/blender/render/CMakeLists.txt
@@ -13,7 +13,6 @@ set(INC
   ../draw
   ../gpu
   ../gpu/intern
-  ../imbuf
   ../makesrna
   ../nodes
   ../sequencer
@@ -62,6 +61,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
   bf_realtime_compositor
   PRIVATE bf::intern::atomic
diff --git a/source/blender/render/hydra/CMakeLists.txt b/source/blender/render/hydra/CMakeLists.txt
index d9740ef1231ae08b19c2ab0ea9d935a102234a65..8bf56942c25100984ab0886d319cf68bc013732c 100644
--- a/source/blender/render/hydra/CMakeLists.txt
+++ b/source/blender/render/hydra/CMakeLists.txt
@@ -39,7 +39,6 @@ set(INC
   ../../../../intern/guardedalloc
   ../../blenkernel
   ../../blenlib
-  ../../imbuf
   ../../makesdna
   ../../makesrna
   ../../nodes
@@ -69,6 +68,7 @@ set(LIB
   ${USD_LIBRARIES}
   ${TBB_LIBRARIES}
   PRIVATE bf::depsgraph
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   bf_io_usd
 )
diff --git a/source/blender/sequencer/CMakeLists.txt b/source/blender/sequencer/CMakeLists.txt
index 70cdfc60886eb3e06c81e788126740d2d07cd8d6..3737b32e62369e23a7f9d5ef20dff667124baa24 100644
--- a/source/blender/sequencer/CMakeLists.txt
+++ b/source/blender/sequencer/CMakeLists.txt
@@ -8,7 +8,6 @@ set(INC
   ../blenkernel
   ../blenloader
   ../blentranslation
-  ../imbuf
   ../makesrna
   ../render
   ../windowmanager
@@ -84,6 +83,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::atomic
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
diff --git a/source/blender/simulation/CMakeLists.txt b/source/blender/simulation/CMakeLists.txt
index e32dfb319e34795d34e38a7cac9ad296ad95895e..dc60d0a137a11fabac71cb3750b42cd0302857b6 100644
--- a/source/blender/simulation/CMakeLists.txt
+++ b/source/blender/simulation/CMakeLists.txt
@@ -7,7 +7,6 @@ set(INC
   intern
   ../blenkernel
   ../functions
-  ../imbuf
   ../makesrna
   ../nodes
 )
@@ -34,6 +33,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::guardedalloc
 )
 
diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt
index 6737ddeb6fda34581f4d2f79f1c879cda918a458..77a423783aa9b1a5ac808a8afa840a4a3e2f6a64 100644
--- a/source/blender/windowmanager/CMakeLists.txt
+++ b/source/blender/windowmanager/CMakeLists.txt
@@ -14,7 +14,6 @@ set(INC
   ../editors/include
   ../draw
   ../gpu
-  ../imbuf
   ../makesrna
   ../nodes
   ../render
@@ -101,6 +100,7 @@ set(LIB
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
   bf_editor_screen
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   PRIVATE bf::animrig
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index 6d35edb52682593d9e8c5431901b1bcc6919ad25..9ec40f1d4e83f86afd454a7c08c4d2c8b33130e9 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -6,7 +6,6 @@ set(INC
   ../blender/blenkernel
   ../blender/editors/include
   ../blender/gpu
-  ../blender/imbuf
   ../blender/io/usd
   ../blender/bmesh
   ../blender/makesrna
@@ -18,6 +17,7 @@ set(LIB
   PRIVATE bf::blenlib
   PRIVATE bf::depsgraph
   PRIVATE bf::dna
+  PRIVATE bf::imbuf
   PRIVATE bf::intern::clog
   PRIVATE bf::intern::guardedalloc
   bf_windowmanager