diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in
index 86bcc4d00f88..f9c946823b54 100644
--- a/Documentation/Doxyfile.in
+++ b/Documentation/Doxyfile.in
@@ -844,8 +844,8 @@ RECURSIVE              = YES
 EXCLUDE                = @TOP_SRCDIR@/include/libcamera/span.h \
 			 @TOP_SRCDIR@/src/libcamera/device_enumerator_sysfs.cpp \
 			 @TOP_SRCDIR@/src/libcamera/device_enumerator_udev.cpp \
-			 @TOP_SRCDIR@/src/libcamera/include/device_enumerator_sysfs.h \
-			 @TOP_SRCDIR@/src/libcamera/include/device_enumerator_udev.h \
+			 @TOP_SRCDIR@/src/libcamera/include/libcamera/device_enumerator_sysfs.h \
+			 @TOP_SRCDIR@/src/libcamera/include/libcamera/device_enumerator_udev.h \
 			 @TOP_SRCDIR@/src/libcamera/pipeline/ \
 			 @TOP_SRCDIR@/src/libcamera/proxy/
 
diff --git a/src/android/camera3_hal.cpp b/src/android/camera3_hal.cpp
index 34301ed971b6..11ce8c1ef230 100644
--- a/src/android/camera3_hal.cpp
+++ b/src/android/camera3_hal.cpp
@@ -7,9 +7,10 @@
 
 #include <hardware/camera_common.h>
 
+#include "libcamera/log.h"
+
 #include "camera_device.h"
 #include "camera_hal_manager.h"
-#include "log.h"
 
 using namespace libcamera;
 
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 76af70ebccfa..a82459602d05 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -11,8 +11,8 @@
 #include <libcamera/controls.h>
 #include <libcamera/property_ids.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 #include "camera_metadata.h"
 
diff --git a/src/android/camera_device.h b/src/android/camera_device.h
index 55eac317e0e4..3a603c5ba5fb 100644
--- a/src/android/camera_device.h
+++ b/src/android/camera_device.h
@@ -16,7 +16,7 @@
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "message.h"
+#include "libcamera/message.h"
 
 class CameraMetadata;
 
diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
index 5bd3bdba8a55..20d4cd43a831 100644
--- a/src/android/camera_hal_manager.cpp
+++ b/src/android/camera_hal_manager.cpp
@@ -9,7 +9,7 @@
 
 #include <libcamera/camera.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 #include "camera_device.h"
 
diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp
index 76965108c08b..0dd7a9648398 100644
--- a/src/android/camera_metadata.cpp
+++ b/src/android/camera_metadata.cpp
@@ -7,7 +7,7 @@
 
 #include "camera_metadata.h"
 
-#include "log.h"
+#include "libcamera/log.h"
 
 using namespace libcamera;
 
diff --git a/src/ipa/libipa/ipa_interface_wrapper.cpp b/src/ipa/libipa/ipa_interface_wrapper.cpp
index 21d8c98bddee..b55fe36c6bbf 100644
--- a/src/ipa/libipa/ipa_interface_wrapper.cpp
+++ b/src/ipa/libipa/ipa_interface_wrapper.cpp
@@ -14,8 +14,8 @@
 
 #include <ipa/ipa_interface.h>
 
-#include "byte_stream_buffer.h"
-#include "camera_sensor.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/camera_sensor.h"
 
 /**
  * \file ipa_interface_wrapper.h
diff --git a/src/ipa/libipa/ipa_interface_wrapper.h b/src/ipa/libipa/ipa_interface_wrapper.h
index 56507aafd81e..17e8016755ab 100644
--- a/src/ipa/libipa/ipa_interface_wrapper.h
+++ b/src/ipa/libipa/ipa_interface_wrapper.h
@@ -11,7 +11,7 @@
 
 #include <ipa/ipa_interface.h>
 
-#include "control_serializer.h"
+#include "libcamera/control_serializer.h"
 
 namespace libcamera {
 
diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
index 7f05d2c6b368..c835c7df7969 100644
--- a/src/ipa/raspberrypi/cam_helper.cpp
+++ b/src/ipa/raspberrypi/cam_helper.cpp
@@ -11,11 +11,11 @@
 #include <map>
 #include <string.h>
 
+#include "libcamera/v4l2_videodevice.h"
+
 #include "cam_helper.hpp"
 #include "md_parser.hpp"
 
-#include "v4l2_videodevice.h"
-
 using namespace RPi;
 
 static std::map<std::string, CamHelperCreateFunc> cam_helpers;
diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp
index 0c8aa29a4cff..c774df500d05 100644
--- a/src/ipa/raspberrypi/cam_helper.hpp
+++ b/src/ipa/raspberrypi/cam_helper.hpp
@@ -11,7 +11,7 @@
 #include "camera_mode.h"
 #include "md_parser.hpp"
 
-#include "v4l2_videodevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace RPi {
 
diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
index 3bcc08156902..d620dc762323 100644
--- a/src/ipa/raspberrypi/raspberrypi.cpp
+++ b/src/ipa/raspberrypi/raspberrypi.cpp
@@ -22,6 +22,10 @@
 #include <libcamera/span.h>
 #include <libipa/ipa_interface_wrapper.h>
 
+#include "libcamera/camera_sensor.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+
 #include <linux/bcm2835-isp.h>
 
 #include "agc_algorithm.hpp"
@@ -44,10 +48,6 @@
 #include "sdn_status.h"
 #include "sharpen_status.h"
 
-#include "camera_sensor.h"
-#include "log.h"
-#include "utils.h"
-
 namespace libcamera {
 
 /* Configure the sensor with these values initially. */
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index bfa88418fa7b..abdc36c2dfa6 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -22,8 +22,8 @@
 #include <libcamera/request.h>
 #include <libipa/ipa_interface_wrapper.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp
index 9271f2d8acff..11f0b9f28065 100644
--- a/src/ipa/vimc/vimc.cpp
+++ b/src/ipa/vimc/vimc.cpp
@@ -19,8 +19,8 @@
 
 #include <libipa/ipa_interface_wrapper.h>
 
-#include "file.h"
-#include "log.h"
+#include "libcamera/file.h"
+#include "libcamera/log.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/bound_method.cpp b/src/libcamera/bound_method.cpp
index 9aa59dc3678f..037ccbaa268a 100644
--- a/src/libcamera/bound_method.cpp
+++ b/src/libcamera/bound_method.cpp
@@ -7,9 +7,9 @@
 
 #include <libcamera/bound_method.h>
 
-#include "message.h"
-#include "semaphore.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/semaphore.h"
+#include "libcamera/thread.h"
 
 /**
  * \file bound_method.h
diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
index 0c5e56cf1062..be5e56814150 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -12,7 +12,7 @@
 #include <sys/mman.h>
 #include <unistd.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file buffer.h
diff --git a/src/libcamera/byte_stream_buffer.cpp b/src/libcamera/byte_stream_buffer.cpp
index 20d6a6552c5f..e102db1fe684 100644
--- a/src/libcamera/byte_stream_buffer.cpp
+++ b/src/libcamera/byte_stream_buffer.cpp
@@ -5,12 +5,12 @@
  * byte_stream_buffer.cpp - Byte stream buffer
  */
 
-#include "byte_stream_buffer.h"
+#include "libcamera/byte_stream_buffer.h"
 
 #include <stdint.h>
 #include <string.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 8c3bb2c2a01f..927ce2711249 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -14,9 +14,9 @@
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "log.h"
-#include "pipeline_handler.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
 
 /**
  * \file camera.h
diff --git a/src/libcamera/camera_controls.cpp b/src/libcamera/camera_controls.cpp
index 59dcede2ca36..5c5d1d5ef7a1 100644
--- a/src/libcamera/camera_controls.cpp
+++ b/src/libcamera/camera_controls.cpp
@@ -5,7 +5,7 @@
  * camera_controls.cpp - Camera controls
  */
 
-#include "camera_controls.h"
+#include "libcamera/camera_controls.h"
 
 #include <libcamera/camera.h>
 #include <libcamera/controls.h>
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index fddf7349ec15..580ac5b2816a 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -13,12 +13,12 @@
 #include <libcamera/camera.h>
 #include <libcamera/event_dispatcher.h>
 
-#include "device_enumerator.h"
-#include "event_dispatcher_poll.h"
-#include "log.h"
-#include "pipeline_handler.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/event_dispatcher_poll.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file camera_manager.h
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index 31a916a92722..d65ab32351a8 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -5,7 +5,7 @@
  * camera_sensor.cpp - A camera sensor
  */
 
-#include "camera_sensor.h"
+#include "libcamera/camera_sensor.h"
 
 #include <algorithm>
 #include <float.h>
@@ -16,9 +16,9 @@
 
 #include <libcamera/property_ids.h>
 
-#include "formats.h"
-#include "utils.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/formats.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_subdevice.h"
 
 /**
  * \file camera_sensor.h
diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp
index fcff5e56fbf7..b2c6512575ab 100644
--- a/src/libcamera/control_serializer.cpp
+++ b/src/libcamera/control_serializer.cpp
@@ -5,7 +5,7 @@
  * control_serializer.cpp - Control (de)serializer
  */
 
-#include "control_serializer.h"
+#include "libcamera/control_serializer.h"
 
 #include <algorithm>
 #include <memory>
@@ -16,8 +16,8 @@
 #include <libcamera/controls.h>
 #include <libcamera/span.h>
 
-#include "byte_stream_buffer.h"
-#include "log.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/log.h"
 
 /**
  * \file control_serializer.h
diff --git a/src/libcamera/control_validator.cpp b/src/libcamera/control_validator.cpp
index 8e5cf3c3e3ee..925dad05673f 100644
--- a/src/libcamera/control_validator.cpp
+++ b/src/libcamera/control_validator.cpp
@@ -5,7 +5,7 @@
  * control_validator.cpp - Control validator
  */
 
-#include "control_validator.h"
+#include "libcamera/control_validator.h"
 
 /**
  * \file control_validator.h
diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
index 08df7f29e938..4e3b2c041f28 100644
--- a/src/libcamera/controls.cpp
+++ b/src/libcamera/controls.cpp
@@ -12,9 +12,9 @@
 #include <string>
 #include <string.h>
 
-#include "control_validator.h"
-#include "log.h"
-#include "utils.h"
+#include "libcamera/control_validator.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file controls.h
diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
index dd17e3e32e6c..21ddc1735115 100644
--- a/src/libcamera/device_enumerator.cpp
+++ b/src/libcamera/device_enumerator.cpp
@@ -5,14 +5,14 @@
  * device_enumerator.cpp - Enumeration and matching
  */
 
-#include "device_enumerator.h"
-#include "device_enumerator_sysfs.h"
-#include "device_enumerator_udev.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/device_enumerator_sysfs.h"
+#include "libcamera/device_enumerator_udev.h"
 
 #include <string.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 /**
  * \file device_enumerator.h
diff --git a/src/libcamera/device_enumerator_sysfs.cpp b/src/libcamera/device_enumerator_sysfs.cpp
index 3446db59e9d4..44b32fac5140 100644
--- a/src/libcamera/device_enumerator_sysfs.cpp
+++ b/src/libcamera/device_enumerator_sysfs.cpp
@@ -5,7 +5,7 @@
  * device_enumerator_sysfs.cpp - sysfs-based device enumerator
  */
 
-#include "device_enumerator_sysfs.h"
+#include "libcamera/device_enumerator_sysfs.h"
 
 #include <dirent.h>
 #include <fcntl.h>
@@ -17,8 +17,8 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp
index 2e33c898aeef..27dd9e6da68b 100644
--- a/src/libcamera/device_enumerator_udev.cpp
+++ b/src/libcamera/device_enumerator_udev.cpp
@@ -5,7 +5,7 @@
  * device_enumerator_udev.cpp - udev-based device enumerator
  */
 
-#include "device_enumerator_udev.h"
+#include "libcamera/device_enumerator_udev.h"
 
 #include <algorithm>
 #include <fcntl.h>
@@ -19,8 +19,8 @@
 
 #include <libcamera/event_notifier.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/event_dispatcher.cpp b/src/libcamera/event_dispatcher.cpp
index bb4fddfffe86..b318e2a8726b 100644
--- a/src/libcamera/event_dispatcher.cpp
+++ b/src/libcamera/event_dispatcher.cpp
@@ -7,7 +7,7 @@
 
 #include <libcamera/event_dispatcher.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file event_dispatcher.h
diff --git a/src/libcamera/event_dispatcher_poll.cpp b/src/libcamera/event_dispatcher_poll.cpp
index 51ac5adf2f74..284a7aabf984 100644
--- a/src/libcamera/event_dispatcher_poll.cpp
+++ b/src/libcamera/event_dispatcher_poll.cpp
@@ -5,7 +5,7 @@
  * event_dispatcher_poll.cpp - Poll-based event dispatcher
  */
 
-#include "event_dispatcher_poll.h"
+#include "libcamera/event_dispatcher_poll.h"
 
 #include <algorithm>
 #include <chrono>
@@ -19,9 +19,9 @@
 #include <libcamera/event_notifier.h>
 #include <libcamera/timer.h>
 
-#include "log.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file event_dispatcher_poll.h
diff --git a/src/libcamera/event_notifier.cpp b/src/libcamera/event_notifier.cpp
index a9be686f79ae..c0202a04c179 100644
--- a/src/libcamera/event_notifier.cpp
+++ b/src/libcamera/event_notifier.cpp
@@ -10,8 +10,8 @@
 #include <libcamera/camera_manager.h>
 #include <libcamera/event_dispatcher.h>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
 
 /**
  * \file event_notifier.h
diff --git a/src/libcamera/file.cpp b/src/libcamera/file.cpp
index 8223743d5f6b..052e899b5c66 100644
--- a/src/libcamera/file.cpp
+++ b/src/libcamera/file.cpp
@@ -5,7 +5,7 @@
  * file.cpp - File I/O operations
  */
 
-#include "file.h"
+#include "libcamera/file.h"
 
 #include <errno.h>
 #include <fcntl.h>
@@ -14,7 +14,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file file.h
diff --git a/src/libcamera/file_descriptor.cpp b/src/libcamera/file_descriptor.cpp
index 88385476d890..a5094c0aff32 100644
--- a/src/libcamera/file_descriptor.cpp
+++ b/src/libcamera/file_descriptor.cpp
@@ -11,7 +11,7 @@
 #include <unistd.h>
 #include <utility>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file file_descriptor.h
diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
index b3af0f7fcfcc..7edccdfea56a 100644
--- a/src/libcamera/formats.cpp
+++ b/src/libcamera/formats.cpp
@@ -5,11 +5,11 @@
  * formats.cpp - libcamera image formats
  */
 
-#include "formats.h"
+#include "libcamera/formats.h"
 
 #include <errno.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file formats.h
diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp
index a37b564c6701..c002b66675dc 100644
--- a/src/libcamera/framebuffer_allocator.cpp
+++ b/src/libcamera/framebuffer_allocator.cpp
@@ -13,8 +13,8 @@
 #include <libcamera/camera.h>
 #include <libcamera/stream.h>
 
-#include "log.h"
-#include "pipeline_handler.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
 
 /**
  * \file framebuffer_allocator.h
diff --git a/src/libcamera/include/byte_stream_buffer.h b/src/libcamera/include/libcamera/byte_stream_buffer.h
similarity index 100%
rename from src/libcamera/include/byte_stream_buffer.h
rename to src/libcamera/include/libcamera/byte_stream_buffer.h
diff --git a/src/libcamera/include/camera_controls.h b/src/libcamera/include/libcamera/camera_controls.h
similarity index 93%
rename from src/libcamera/include/camera_controls.h
rename to src/libcamera/include/libcamera/camera_controls.h
index 265c1fe379db..e84a1ac89a18 100644
--- a/src/libcamera/include/camera_controls.h
+++ b/src/libcamera/include/libcamera/camera_controls.h
@@ -7,7 +7,7 @@
 #ifndef __LIBCAMERA_CAMERA_CONTROLS_H__
 #define __LIBCAMERA_CAMERA_CONTROLS_H__
 
-#include "control_validator.h"
+#include "libcamera/control_validator.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/camera_sensor.h b/src/libcamera/include/libcamera/camera_sensor.h
similarity index 97%
rename from src/libcamera/include/camera_sensor.h
rename to src/libcamera/include/libcamera/camera_sensor.h
index 30cf5f34f485..e5e2a1eafb70 100644
--- a/src/libcamera/include/camera_sensor.h
+++ b/src/libcamera/include/libcamera/camera_sensor.h
@@ -14,8 +14,8 @@
 #include <libcamera/controls.h>
 #include <libcamera/geometry.h>
 
-#include "formats.h"
-#include "log.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/control_serializer.h b/src/libcamera/include/libcamera/control_serializer.h
similarity index 100%
rename from src/libcamera/include/control_serializer.h
rename to src/libcamera/include/libcamera/control_serializer.h
diff --git a/src/libcamera/include/control_validator.h b/src/libcamera/include/libcamera/control_validator.h
similarity index 100%
rename from src/libcamera/include/control_validator.h
rename to src/libcamera/include/libcamera/control_validator.h
diff --git a/src/libcamera/include/device_enumerator.h b/src/libcamera/include/libcamera/device_enumerator.h
similarity index 100%
rename from src/libcamera/include/device_enumerator.h
rename to src/libcamera/include/libcamera/device_enumerator.h
diff --git a/src/libcamera/include/device_enumerator_sysfs.h b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
similarity index 93%
rename from src/libcamera/include/device_enumerator_sysfs.h
rename to src/libcamera/include/libcamera/device_enumerator_sysfs.h
index 5a5c9b0f5a31..a059de01983b 100644
--- a/src/libcamera/include/device_enumerator_sysfs.h
+++ b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
@@ -10,7 +10,7 @@
 #include <memory>
 #include <string>
 
-#include "device_enumerator.h"
+#include "libcamera/device_enumerator.h"
 
 class MediaDevice;
 
diff --git a/src/libcamera/include/device_enumerator_udev.h b/src/libcamera/include/libcamera/device_enumerator_udev.h
similarity index 97%
rename from src/libcamera/include/device_enumerator_udev.h
rename to src/libcamera/include/libcamera/device_enumerator_udev.h
index fdce4520f33a..7c2f3eaa77ab 100644
--- a/src/libcamera/include/device_enumerator_udev.h
+++ b/src/libcamera/include/libcamera/device_enumerator_udev.h
@@ -14,7 +14,7 @@
 #include <string>
 #include <sys/types.h>
 
-#include "device_enumerator.h"
+#include "libcamera/device_enumerator.h"
 
 struct udev;
 struct udev_device;
diff --git a/src/libcamera/include/event_dispatcher_poll.h b/src/libcamera/include/libcamera/event_dispatcher_poll.h
similarity index 100%
rename from src/libcamera/include/event_dispatcher_poll.h
rename to src/libcamera/include/libcamera/event_dispatcher_poll.h
diff --git a/src/libcamera/include/file.h b/src/libcamera/include/libcamera/file.h
similarity index 100%
rename from src/libcamera/include/file.h
rename to src/libcamera/include/libcamera/file.h
diff --git a/src/libcamera/include/formats.h b/src/libcamera/include/libcamera/formats.h
similarity index 96%
rename from src/libcamera/include/formats.h
rename to src/libcamera/include/libcamera/formats.h
index 291a1108aa33..35c058a3ed66 100644
--- a/src/libcamera/include/formats.h
+++ b/src/libcamera/include/libcamera/formats.h
@@ -14,7 +14,7 @@
 #include <libcamera/geometry.h>
 #include <libcamera/pixelformats.h>
 
-#include "v4l2_pixelformat.h"
+#include "libcamera/v4l2_pixelformat.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_context_wrapper.h b/src/libcamera/include/libcamera/ipa_context_wrapper.h
similarity index 97%
rename from src/libcamera/include/ipa_context_wrapper.h
rename to src/libcamera/include/libcamera/ipa_context_wrapper.h
index 0db022ef5a1b..6ac7d828d279 100644
--- a/src/libcamera/include/ipa_context_wrapper.h
+++ b/src/libcamera/include/libcamera/ipa_context_wrapper.h
@@ -9,7 +9,7 @@
 
 #include <ipa/ipa_interface.h>
 
-#include "control_serializer.h"
+#include "libcamera/control_serializer.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_manager.h b/src/libcamera/include/libcamera/ipa_manager.h
similarity index 90%
rename from src/libcamera/include/ipa_manager.h
rename to src/libcamera/include/libcamera/ipa_manager.h
index aa6b9adb1f87..ef80ea109b7f 100644
--- a/src/libcamera/include/ipa_manager.h
+++ b/src/libcamera/include/libcamera/ipa_manager.h
@@ -13,9 +13,9 @@
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "ipa_module.h"
-#include "pipeline_handler.h"
-#include "pub_key.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/pub_key.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_module.h b/src/libcamera/include/libcamera/ipa_module.h
similarity index 94%
rename from src/libcamera/include/ipa_module.h
rename to src/libcamera/include/libcamera/ipa_module.h
index 15022e19edce..df8466d43998 100644
--- a/src/libcamera/include/ipa_module.h
+++ b/src/libcamera/include/libcamera/ipa_module.h
@@ -14,8 +14,8 @@
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "log.h"
-#include "pipeline_handler.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_proxy.h b/src/libcamera/include/libcamera/ipa_proxy.h
similarity index 100%
rename from src/libcamera/include/ipa_proxy.h
rename to src/libcamera/include/libcamera/ipa_proxy.h
diff --git a/src/libcamera/include/ipc_unixsocket.h b/src/libcamera/include/libcamera/ipc_unixsocket.h
similarity index 100%
rename from src/libcamera/include/ipc_unixsocket.h
rename to src/libcamera/include/libcamera/ipc_unixsocket.h
diff --git a/src/libcamera/include/log.h b/src/libcamera/include/libcamera/log.h
similarity index 99%
rename from src/libcamera/include/log.h
rename to src/libcamera/include/libcamera/log.h
index ee0b4069bd32..c0d626e4f958 100644
--- a/src/libcamera/include/log.h
+++ b/src/libcamera/include/libcamera/log.h
@@ -10,7 +10,7 @@
 #include <chrono>
 #include <sstream>
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/media_device.h b/src/libcamera/include/libcamera/media_device.h
similarity index 97%
rename from src/libcamera/include/media_device.h
rename to src/libcamera/include/libcamera/media_device.h
index 4d9f76618ec0..3fb67011bfcc 100644
--- a/src/libcamera/include/media_device.h
+++ b/src/libcamera/include/libcamera/media_device.h
@@ -16,8 +16,8 @@
 
 #include <libcamera/signal.h>
 
-#include "log.h"
-#include "media_object.h"
+#include "libcamera/log.h"
+#include "libcamera/media_object.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/media_object.h b/src/libcamera/include/libcamera/media_object.h
similarity index 100%
rename from src/libcamera/include/media_object.h
rename to src/libcamera/include/libcamera/media_object.h
diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/libcamera/meson.build
similarity index 100%
rename from src/libcamera/include/meson.build
rename to src/libcamera/include/libcamera/meson.build
diff --git a/src/libcamera/include/message.h b/src/libcamera/include/libcamera/message.h
similarity index 100%
rename from src/libcamera/include/message.h
rename to src/libcamera/include/libcamera/message.h
diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/libcamera/pipeline_handler.h
similarity index 99%
rename from src/libcamera/include/pipeline_handler.h
rename to src/libcamera/include/libcamera/pipeline_handler.h
index 706413fa6e9f..9e48948a6786 100644
--- a/src/libcamera/include/pipeline_handler.h
+++ b/src/libcamera/include/libcamera/pipeline_handler.h
@@ -19,7 +19,7 @@
 #include <libcamera/object.h>
 #include <libcamera/stream.h>
 
-#include "ipa_proxy.h"
+#include "libcamera/ipa_proxy.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/process.h b/src/libcamera/include/libcamera/process.h
similarity index 100%
rename from src/libcamera/include/process.h
rename to src/libcamera/include/libcamera/process.h
diff --git a/src/libcamera/include/pub_key.h b/src/libcamera/include/libcamera/pub_key.h
similarity index 100%
rename from src/libcamera/include/pub_key.h
rename to src/libcamera/include/libcamera/pub_key.h
diff --git a/src/libcamera/include/semaphore.h b/src/libcamera/include/libcamera/semaphore.h
similarity index 95%
rename from src/libcamera/include/semaphore.h
rename to src/libcamera/include/libcamera/semaphore.h
index c6b286536eb3..de8a27ff211a 100644
--- a/src/libcamera/include/semaphore.h
+++ b/src/libcamera/include/libcamera/semaphore.h
@@ -9,7 +9,7 @@
 
 #include <condition_variable>
 
-#include "thread.h"
+#include "libcamera/thread.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/thread.h b/src/libcamera/include/libcamera/thread.h
similarity index 97%
rename from src/libcamera/include/thread.h
rename to src/libcamera/include/libcamera/thread.h
index d700f111a3ae..5eca8e3171e1 100644
--- a/src/libcamera/include/thread.h
+++ b/src/libcamera/include/libcamera/thread.h
@@ -14,7 +14,7 @@
 
 #include <libcamera/signal.h>
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/utils.h b/src/libcamera/include/libcamera/utils.h
similarity index 100%
rename from src/libcamera/include/utils.h
rename to src/libcamera/include/libcamera/utils.h
diff --git a/src/libcamera/include/v4l2_controls.h b/src/libcamera/include/libcamera/v4l2_controls.h
similarity index 100%
rename from src/libcamera/include/v4l2_controls.h
rename to src/libcamera/include/libcamera/v4l2_controls.h
diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/libcamera/v4l2_device.h
similarity index 95%
rename from src/libcamera/include/v4l2_device.h
rename to src/libcamera/include/libcamera/v4l2_device.h
index e604a40df4c9..8e40731d5a39 100644
--- a/src/libcamera/include/v4l2_device.h
+++ b/src/libcamera/include/libcamera/v4l2_device.h
@@ -13,8 +13,8 @@
 
 #include <linux/videodev2.h>
 
-#include "log.h"
-#include "v4l2_controls.h"
+#include "libcamera/log.h"
+#include "libcamera/v4l2_controls.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/v4l2_pixelformat.h b/src/libcamera/include/libcamera/v4l2_pixelformat.h
similarity index 100%
rename from src/libcamera/include/v4l2_pixelformat.h
rename to src/libcamera/include/libcamera/v4l2_pixelformat.h
diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/libcamera/v4l2_subdevice.h
similarity index 92%
rename from src/libcamera/include/v4l2_subdevice.h
rename to src/libcamera/include/libcamera/v4l2_subdevice.h
index d0e565dbdaab..b84995e81178 100644
--- a/src/libcamera/include/v4l2_subdevice.h
+++ b/src/libcamera/include/libcamera/v4l2_subdevice.h
@@ -12,10 +12,10 @@
 
 #include <libcamera/geometry.h>
 
-#include "formats.h"
-#include "log.h"
-#include "media_object.h"
-#include "v4l2_device.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
+#include "libcamera/media_object.h"
+#include "libcamera/v4l2_device.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/v4l2_videodevice.h b/src/libcamera/include/libcamera/v4l2_videodevice.h
similarity index 97%
rename from src/libcamera/include/v4l2_videodevice.h
rename to src/libcamera/include/libcamera/v4l2_videodevice.h
index 94565b97b6b1..df4ca1eeca70 100644
--- a/src/libcamera/include/v4l2_videodevice.h
+++ b/src/libcamera/include/libcamera/v4l2_videodevice.h
@@ -20,10 +20,10 @@
 #include <libcamera/pixelformats.h>
 #include <libcamera/signal.h>
 
-#include "formats.h"
-#include "log.h"
-#include "v4l2_device.h"
-#include "v4l2_pixelformat.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
+#include "libcamera/v4l2_device.h"
+#include "libcamera/v4l2_pixelformat.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/ipa_context_wrapper.cpp b/src/libcamera/ipa_context_wrapper.cpp
index 0bd3a1aeca95..3725a78af553 100644
--- a/src/libcamera/ipa_context_wrapper.cpp
+++ b/src/libcamera/ipa_context_wrapper.cpp
@@ -5,15 +5,15 @@
  * ipa_context_wrapper.cpp - Image Processing Algorithm context wrapper
  */
 
-#include "ipa_context_wrapper.h"
+#include "libcamera/ipa_context_wrapper.h"
 
 #include <vector>
 
 #include <libcamera/controls.h>
 
-#include "byte_stream_buffer.h"
-#include "camera_sensor.h"
-#include "utils.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_context_wrapper.h
diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
index 1faa3dd38188..244aa92fe172 100644
--- a/src/libcamera/ipa_manager.cpp
+++ b/src/libcamera/ipa_manager.cpp
@@ -5,19 +5,19 @@
  * ipa_manager.cpp - Image Processing Algorithm module manager
  */
 
-#include "ipa_manager.h"
+#include "libcamera/ipa_manager.h"
 
 #include <algorithm>
 #include <dirent.h>
 #include <string.h>
 #include <sys/types.h>
 
-#include "file.h"
-#include "ipa_module.h"
-#include "ipa_proxy.h"
-#include "log.h"
-#include "pipeline_handler.h"
-#include "utils.h"
+#include "libcamera/file.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipa_proxy.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_manager.h
diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
index 3444a788b855..421ab9165fa2 100644
--- a/src/libcamera/ipa_module.cpp
+++ b/src/libcamera/ipa_module.cpp
@@ -5,7 +5,7 @@
  * ipa_module.cpp - Image Processing Algorithm module
  */
 
-#include "ipa_module.h"
+#include "libcamera/ipa_module.h"
 
 #include <algorithm>
 #include <array>
@@ -23,10 +23,10 @@
 
 #include <libcamera/span.h>
 
-#include "file.h"
-#include "log.h"
-#include "pipeline_handler.h"
-#include "utils.h"
+#include "libcamera/file.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_module.h
diff --git a/src/libcamera/ipa_proxy.cpp b/src/libcamera/ipa_proxy.cpp
index 401ac52d38d6..3ae650ed4fb1 100644
--- a/src/libcamera/ipa_proxy.cpp
+++ b/src/libcamera/ipa_proxy.cpp
@@ -5,16 +5,16 @@
  * ipa_proxy.cpp - Image Processing Algorithm proxy
  */
 
-#include "ipa_proxy.h"
+#include "libcamera/ipa_proxy.h"
 
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "ipa_module.h"
-#include "log.h"
-#include "utils.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_proxy.h
diff --git a/src/libcamera/ipa_pub_key.cpp.in b/src/libcamera/ipa_pub_key.cpp.in
index 7ffc1e24d67b..a6e8762e4d15 100644
--- a/src/libcamera/ipa_pub_key.cpp.in
+++ b/src/libcamera/ipa_pub_key.cpp.in
@@ -7,7 +7,7 @@
  * This file is auto-generated. Do not edit.
  */
 
-#include "ipa_manager.h"
+#include "libcamera/ipa_manager.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp
index 6e5cab894a93..4ef1e79260cd 100644
--- a/src/libcamera/ipc_unixsocket.cpp
+++ b/src/libcamera/ipc_unixsocket.cpp
@@ -5,14 +5,14 @@
  * ipc_unixsocket.cpp - IPC mechanism based on Unix sockets
  */
 
-#include "ipc_unixsocket.h"
+#include "libcamera/ipc_unixsocket.h"
 
 #include <poll.h>
 #include <string.h>
 #include <sys/socket.h>
 #include <unistd.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file ipc_unixsocket.h
diff --git a/src/libcamera/log.cpp b/src/libcamera/log.cpp
index fd1b5c39a52e..9e7a30027582 100644
--- a/src/libcamera/log.cpp
+++ b/src/libcamera/log.cpp
@@ -5,7 +5,7 @@
  * log.cpp - Logging infrastructure
  */
 
-#include "log.h"
+#include "libcamera/log.h"
 
 #if HAVE_BACKTRACE
 #include <execinfo.h>
@@ -22,8 +22,8 @@
 
 #include <libcamera/logging.h>
 
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file log.h
diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
index d4e7e1002224..91873884d51f 100644
--- a/src/libcamera/media_device.cpp
+++ b/src/libcamera/media_device.cpp
@@ -5,7 +5,7 @@
  * media_device.cpp - Media device handler
  */
 
-#include "media_device.h"
+#include "libcamera/media_device.h"
 
 #include <errno.h>
 #include <fcntl.h>
@@ -18,7 +18,7 @@
 
 #include <linux/media.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file media_device.h
diff --git a/src/libcamera/media_object.cpp b/src/libcamera/media_object.cpp
index ef32065c161d..add4c8bae616 100644
--- a/src/libcamera/media_object.cpp
+++ b/src/libcamera/media_object.cpp
@@ -5,7 +5,7 @@
  * media_object.cpp - Media device objects: entities, pads and links
  */
 
-#include "media_object.h"
+#include "libcamera/media_object.h"
 
 #include <errno.h>
 #include <string>
@@ -15,8 +15,8 @@
 
 #include <linux/media.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 /**
  * \file media_object.h
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index d8b4d7206aba..1ae85e2ae961 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -49,7 +49,7 @@ libcamera_sources = files([
     'v4l2_videodevice.cpp',
 ])
 
-subdir('include')
+subdir(join_paths('include', 'libcamera'))
 
 libcamera_internal_includes =  include_directories('include')
 
diff --git a/src/libcamera/message.cpp b/src/libcamera/message.cpp
index 77f2bdd5fbac..d82c3660423c 100644
--- a/src/libcamera/message.cpp
+++ b/src/libcamera/message.cpp
@@ -5,11 +5,11 @@
  * message.cpp - Message queue support
  */
 
-#include "message.h"
+#include "libcamera/message.h"
 
 #include <libcamera/signal.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file message.h
diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp
index 99c3bf9a709b..97ab11fc7e2d 100644
--- a/src/libcamera/object.cpp
+++ b/src/libcamera/object.cpp
@@ -11,11 +11,11 @@
 
 #include <libcamera/signal.h>
 
-#include "log.h"
-#include "message.h"
-#include "semaphore.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/message.h"
+#include "libcamera/semaphore.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file object.h
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 1988cb0ee551..38928df785c1 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -17,15 +17,15 @@
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 21a1d7f7cca3..e486203e5798 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -21,15 +21,16 @@
 #include <linux/drm_fourcc.h>
 #include <linux/videodev2.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_videodevice.h"
+
 #include "staggered_ctrl.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_videodevice.h"
 #include "vcsm.h"
 
 namespace libcamera {
diff --git a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
index 0403c087c686..51ea3f7b0ac5 100644
--- a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
+++ b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
@@ -12,9 +12,10 @@
 #include <unordered_map>
 
 #include <libcamera/controls.h>
-#include "log.h"
-#include "utils.h"
-#include "v4l2_videodevice.h"
+
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_videodevice.h"
 
 /* For logging... */
 using libcamera::LogCategory;
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 1e81a0048f09..badd3b655a61 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -20,16 +20,17 @@
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
+
 #include "timeline.h"
-#include "utils.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/rkisp1/timeline.cpp b/src/libcamera/pipeline/rkisp1/timeline.cpp
index f6c6434d7b53..6577da8ba93f 100644
--- a/src/libcamera/pipeline/rkisp1/timeline.cpp
+++ b/src/libcamera/pipeline/rkisp1/timeline.cpp
@@ -7,7 +7,7 @@
 
 #include "timeline.h"
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file timeline.h
diff --git a/src/libcamera/pipeline/rkisp1/timeline.h b/src/libcamera/pipeline/rkisp1/timeline.h
index 9d30e4eaf874..ec99e619a1f3 100644
--- a/src/libcamera/pipeline/rkisp1/timeline.h
+++ b/src/libcamera/pipeline/rkisp1/timeline.h
@@ -12,7 +12,7 @@
 
 #include <libcamera/timer.h>
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
index 6d88776dc2f0..41058512dea8 100644
--- a/src/libcamera/pipeline/simple/converter.cpp
+++ b/src/libcamera/pipeline/simple/converter.cpp
@@ -13,9 +13,9 @@
 #include <libcamera/geometry.h>
 #include <libcamera/signal.h>
 
-#include "log.h"
-#include "media_device.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 6673606153b8..9cf7cfd1e84b 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -24,13 +24,13 @@
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "converter.h"
 
diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
index f0c1337de862..86cc92764285 100644
--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
@@ -17,13 +17,13 @@
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index 128301e3d99b..dddea4ccdebc 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -22,16 +22,16 @@
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index 254d341fb8a4..49ab1dc393db 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -5,7 +5,7 @@
  * pipeline_handler.cpp - Pipeline handler infrastructure
  */
 
-#include "pipeline_handler.h"
+#include "libcamera/pipeline_handler.h"
 
 #include <sys/sysmacros.h>
 
@@ -13,10 +13,10 @@
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "utils.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/utils.h"
 
 /**
  * \file pipeline_handler.h
diff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp
index 3b4d0f10da67..6d54ea9bc217 100644
--- a/src/libcamera/process.cpp
+++ b/src/libcamera/process.cpp
@@ -5,7 +5,7 @@
  * process.cpp - Process object
  */
 
-#include "process.h"
+#include "libcamera/process.h"
 
 #include <algorithm>
 #include <dirent.h>
@@ -22,8 +22,8 @@
 
 #include <libcamera/event_notifier.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file process.h
diff --git a/src/libcamera/proxy/ipa_proxy_linux.cpp b/src/libcamera/proxy/ipa_proxy_linux.cpp
index 9e0f44cf314f..749199b1a1fd 100644
--- a/src/libcamera/proxy/ipa_proxy_linux.cpp
+++ b/src/libcamera/proxy/ipa_proxy_linux.cpp
@@ -10,11 +10,11 @@
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "ipa_module.h"
-#include "ipa_proxy.h"
-#include "ipc_unixsocket.h"
-#include "log.h"
-#include "process.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipa_proxy.h"
+#include "libcamera/ipc_unixsocket.h"
+#include "libcamera/log.h"
+#include "libcamera/process.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/proxy/ipa_proxy_thread.cpp b/src/libcamera/proxy/ipa_proxy_thread.cpp
index 81d2d68ee715..ee54cd7368c8 100644
--- a/src/libcamera/proxy/ipa_proxy_thread.cpp
+++ b/src/libcamera/proxy/ipa_proxy_thread.cpp
@@ -10,11 +10,11 @@
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "ipa_context_wrapper.h"
-#include "ipa_module.h"
-#include "ipa_proxy.h"
-#include "log.h"
-#include "thread.h"
+#include "libcamera/ipa_context_wrapper.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipa_proxy.h"
+#include "libcamera/log.h"
+#include "libcamera/thread.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
index 7d6287c7115b..e3bb0c2d8222 100644
--- a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
+++ b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
@@ -13,10 +13,10 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/logging.h>
 
-#include "ipa_module.h"
-#include "ipc_unixsocket.h"
-#include "log.h"
-#include "thread.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipc_unixsocket.h"
+#include "libcamera/log.h"
+#include "libcamera/thread.h"
 
 using namespace libcamera;
 
diff --git a/src/libcamera/pub_key.cpp b/src/libcamera/pub_key.cpp
index 064d2dd200e1..1d809cc61a4f 100644
--- a/src/libcamera/pub_key.cpp
+++ b/src/libcamera/pub_key.cpp
@@ -5,7 +5,7 @@
  * pub_key.cpp - Public key signature verification
  */
 
-#include "pub_key.h"
+#include "libcamera/pub_key.h"
 
 #if HAVE_GNUTLS
 #include <gnutls/abstract.h>
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index ea33736fbeb5..dd7863b886de 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -14,8 +14,8 @@
 #include <libcamera/control_ids.h>
 #include <libcamera/stream.h>
 
-#include "camera_controls.h"
-#include "log.h"
+#include "libcamera/camera_controls.h"
+#include "libcamera/log.h"
 
 /**
  * \file request.h
diff --git a/src/libcamera/semaphore.cpp b/src/libcamera/semaphore.cpp
index ce1eae4914ed..110b12ea851c 100644
--- a/src/libcamera/semaphore.cpp
+++ b/src/libcamera/semaphore.cpp
@@ -5,8 +5,8 @@
  * semaphore.cpp - General-purpose counting semaphore
  */
 
-#include "semaphore.h"
-#include "thread.h"
+#include "libcamera/semaphore.h"
+#include "libcamera/thread.h"
 
 /**
  * \file semaphore.h
diff --git a/src/libcamera/signal.cpp b/src/libcamera/signal.cpp
index 6eab1fa74d42..daf27072d12b 100644
--- a/src/libcamera/signal.cpp
+++ b/src/libcamera/signal.cpp
@@ -7,7 +7,7 @@
 
 #include <libcamera/signal.h>
 
-#include "thread.h"
+#include "libcamera/thread.h"
 
 /**
  * \file signal.h
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 86c0b17db313..886613b0ee8f 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -15,8 +15,8 @@
 
 #include <libcamera/request.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file stream.h
diff --git a/src/libcamera/thread.cpp b/src/libcamera/thread.cpp
index 85293c188c2a..fddbb406b9da 100644
--- a/src/libcamera/thread.cpp
+++ b/src/libcamera/thread.cpp
@@ -5,7 +5,7 @@
  * thread.cpp - Thread support
  */
 
-#include "thread.h"
+#include "libcamera/thread.h"
 
 #include <atomic>
 #include <condition_variable>
@@ -16,9 +16,9 @@
 
 #include <libcamera/event_dispatcher.h>
 
-#include "event_dispatcher_poll.h"
-#include "log.h"
-#include "message.h"
+#include "libcamera/event_dispatcher_poll.h"
+#include "libcamera/log.h"
+#include "libcamera/message.h"
 
 /**
  * \page thread Thread Support
diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp
index 24da51524efb..693d1f876aa9 100644
--- a/src/libcamera/timer.cpp
+++ b/src/libcamera/timer.cpp
@@ -12,10 +12,10 @@
 #include <libcamera/camera_manager.h>
 #include <libcamera/event_dispatcher.h>
 
-#include "log.h"
-#include "message.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file timer.h
diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp
index fbadf350908a..6a59883a6124 100644
--- a/src/libcamera/utils.cpp
+++ b/src/libcamera/utils.cpp
@@ -5,7 +5,7 @@
  * utils.cpp - Miscellaneous utility functions
  */
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 #include <dlfcn.h>
 #include <elf.h>
diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp
index 8e2415f2a6df..b03f3e6ac322 100644
--- a/src/libcamera/v4l2_controls.cpp
+++ b/src/libcamera/v4l2_controls.cpp
@@ -5,7 +5,7 @@
  * v4l2_controls.cpp - V4L2 Controls Support
  */
 
-#include "v4l2_controls.h"
+#include "libcamera/v4l2_controls.h"
 
 #include <string.h>
 
diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index d08ab531f034..fc458da1245c 100644
--- a/src/libcamera/v4l2_device.cpp
+++ b/src/libcamera/v4l2_device.cpp
@@ -5,7 +5,7 @@
  * v4l2_device.cpp - Common base for V4L2 video devices and subdevices
  */
 
-#include "v4l2_device.h"
+#include "libcamera/v4l2_device.h"
 
 #include <fcntl.h>
 #include <iomanip>
@@ -14,9 +14,9 @@
 #include <sys/syscall.h>
 #include <unistd.h>
 
-#include "log.h"
-#include "utils.h"
-#include "v4l2_controls.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
 
 /**
  * \file v4l2_device.h
diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp
index 561f9327780a..ff1047771e85 100644
--- a/src/libcamera/v4l2_pixelformat.cpp
+++ b/src/libcamera/v4l2_pixelformat.cpp
@@ -6,7 +6,7 @@
  * v4l2_pixelformat.cpp - V4L2 Pixel Format
  */
 
-#include "v4l2_pixelformat.h"
+#include "libcamera/v4l2_pixelformat.h"
 
 #include <ctype.h>
 #include <map>
@@ -16,8 +16,8 @@
 
 #include <libcamera/pixelformats.h>
 
-#include "formats.h"
-#include "log.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
 
 /**
  * \file v4l2_pixelformat.h
diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
index 2b756178fc0a..d5f1cd857ed1 100644
--- a/src/libcamera/v4l2_subdevice.cpp
+++ b/src/libcamera/v4l2_subdevice.cpp
@@ -5,7 +5,7 @@
  * v4l2_subdevice.cpp - V4L2 Subdevice
  */
 
-#include "v4l2_subdevice.h"
+#include "libcamera/v4l2_subdevice.h"
 
 #include <fcntl.h>
 #include <iomanip>
@@ -19,10 +19,10 @@
 
 #include <libcamera/geometry.h>
 
-#include "log.h"
-#include "media_device.h"
-#include "media_object.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+#include "libcamera/utils.h"
 
 /**
  * \file v4l2_subdevice.h
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 4b9f8b5c0413..45ec6a46c013 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -5,7 +5,7 @@
  * v4l2_videodevice.cpp - V4L2 Video Device
  */
 
-#include "v4l2_videodevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include <fcntl.h>
 #include <iomanip>
@@ -23,10 +23,10 @@
 #include <libcamera/event_notifier.h>
 #include <libcamera/file_descriptor.h>
 
-#include "log.h"
-#include "media_device.h"
-#include "media_object.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+#include "libcamera/utils.h"
 
 /**
  * \file v4l2_videodevice.h
diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
index ecbb70acfb8e..e16780387059 100644
--- a/src/v4l2/v4l2_camera.cpp
+++ b/src/v4l2/v4l2_camera.cpp
@@ -9,7 +9,7 @@
 
 #include <errno.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 using namespace libcamera;
 
diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
index 130995d95eb4..012e80993265 100644
--- a/src/v4l2/v4l2_camera.h
+++ b/src/v4l2/v4l2_camera.h
@@ -17,7 +17,7 @@
 #include <libcamera/file_descriptor.h>
 #include <libcamera/framebuffer_allocator.h>
 
-#include "semaphore.h"
+#include "libcamera/semaphore.h"
 
 using namespace libcamera;
 
diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 47d0528b324f..4ad0c1edf175 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -17,8 +17,9 @@
 #include <libcamera/camera.h>
 #include <libcamera/object.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+
 #include "v4l2_camera.h"
 #include "v4l2_compat_manager.h"
 
diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
index 961d06b3e39a..6b6b3b16344f 100644
--- a/src/v4l2/v4l2_compat_manager.cpp
+++ b/src/v4l2/v4l2_compat_manager.cpp
@@ -22,7 +22,7 @@
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 using namespace libcamera;
 
diff --git a/test/byte-stream-buffer.cpp b/test/byte-stream-buffer.cpp
index bc1d462ebf6f..22b8e99eed53 100644
--- a/test/byte-stream-buffer.cpp
+++ b/test/byte-stream-buffer.cpp
@@ -8,7 +8,8 @@
 #include <array>
 #include <iostream>
 
-#include "byte_stream_buffer.h"
+#include "libcamera/byte_stream_buffer.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/camera-sensor.cpp b/test/camera-sensor.cpp
index 6069d668e495..d37a9e707d2e 100644
--- a/test/camera-sensor.cpp
+++ b/test/camera-sensor.cpp
@@ -10,11 +10,11 @@
 
 #include <linux/media-bus-format.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "utils.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_subdevice.h"
 
 #include "test.h"
 
diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp
index 3f392cdc0732..b79cb998c96a 100644
--- a/test/camera/buffer_import.cpp
+++ b/test/camera/buffer_import.cpp
@@ -12,9 +12,9 @@
 #include <numeric>
 #include <vector>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "buffer_source.h"
 #include "camera_test.h"
diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
index eeb702db095b..0ce02cd8145d 100644
--- a/test/controls/control_info_map.cpp
+++ b/test/controls/control_info_map.cpp
@@ -12,7 +12,7 @@
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
 
-#include "camera_controls.h"
+#include "libcamera/camera_controls.h"
 
 #include "camera_test.h"
 #include "test.h"
diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
index d51ec47d61d3..d21cd3ff1d4b 100644
--- a/test/controls/control_list.cpp
+++ b/test/controls/control_list.cpp
@@ -12,7 +12,7 @@
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
 
-#include "camera_controls.h"
+#include "libcamera/camera_controls.h"
 
 #include "camera_test.h"
 #include "test.h"
diff --git a/test/event-dispatcher.cpp b/test/event-dispatcher.cpp
index 9f9cf17818f2..2417920f69ec 100644
--- a/test/event-dispatcher.cpp
+++ b/test/event-dispatcher.cpp
@@ -13,8 +13,9 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/event-thread.cpp b/test/event-thread.cpp
index 01120733eca4..acd3ddedd3d4 100644
--- a/test/event-thread.cpp
+++ b/test/event-thread.cpp
@@ -13,8 +13,9 @@
 #include <libcamera/event_notifier.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/event.cpp b/test/event.cpp
index 816060cc44a2..a33e9116c1bb 100644
--- a/test/event.cpp
+++ b/test/event.cpp
@@ -13,8 +13,9 @@
 #include <libcamera/event_notifier.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/file-descriptor.cpp b/test/file-descriptor.cpp
index e467f3a7145e..13fc7ce45eb8 100644
--- a/test/file-descriptor.cpp
+++ b/test/file-descriptor.cpp
@@ -13,8 +13,9 @@
 
 #include <libcamera/file_descriptor.h>
 
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "utils.h"
 
 using namespace libcamera;
 using namespace std;
diff --git a/test/file.cpp b/test/file.cpp
index 6558399808f8..d711d3b4d252 100644
--- a/test/file.cpp
+++ b/test/file.cpp
@@ -13,7 +13,8 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "file.h"
+#include "libcamera/file.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp
index 7fa88efee089..9f10fe17414b 100644
--- a/test/ipa/ipa_interface_test.cpp
+++ b/test/ipa/ipa_interface_test.cpp
@@ -18,12 +18,13 @@
 
 #include <ipa/ipa_vimc.h>
 
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "ipa_module.h"
-#include "pipeline_handler.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp
index e3aee190b410..2847098391ee 100644
--- a/test/ipa/ipa_module_test.cpp
+++ b/test/ipa/ipa_module_test.cpp
@@ -8,7 +8,7 @@
 #include <iostream>
 #include <string.h>
 
-#include "ipa_module.h"
+#include "libcamera/ipa_module.h"
 
 #include "test.h"
 
diff --git a/test/ipa/ipa_wrappers_test.cpp b/test/ipa/ipa_wrappers_test.cpp
index 4de132123525..32830dea74c7 100644
--- a/test/ipa/ipa_wrappers_test.cpp
+++ b/test/ipa/ipa_wrappers_test.cpp
@@ -15,11 +15,11 @@
 #include <libcamera/controls.h>
 #include <libipa/ipa_interface_wrapper.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_context_wrapper.h"
-#include "media_device.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_context_wrapper.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
 
 #include "test.h"
 
diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
index f53042b88720..0d10f40de03b 100644
--- a/test/ipc/unixsocket.cpp
+++ b/test/ipc/unixsocket.cpp
@@ -18,10 +18,11 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "ipc_unixsocket.h"
+#include "libcamera/ipc_unixsocket.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "thread.h"
-#include "utils.h"
 
 #define CMD_CLOSE	0
 #define CMD_REVERSE	1
diff --git a/test/libtest/buffer_source.cpp b/test/libtest/buffer_source.cpp
index d1dad2a0f8cf..8d7ab8da78c5 100644
--- a/test/libtest/buffer_source.cpp
+++ b/test/libtest/buffer_source.cpp
@@ -10,7 +10,7 @@
 #include <iostream>
 #include <memory>
 
-#include "device_enumerator.h"
+#include "libcamera/device_enumerator.h"
 
 #include "test.h"
 
diff --git a/test/libtest/buffer_source.h b/test/libtest/buffer_source.h
index ae0879c99480..15b49d14074d 100644
--- a/test/libtest/buffer_source.h
+++ b/test/libtest/buffer_source.h
@@ -9,8 +9,8 @@
 
 #include <libcamera/libcamera.h>
 
-#include "media_device.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_videodevice.h"
 
 using namespace libcamera;
 
diff --git a/test/log/log_api.cpp b/test/log/log_api.cpp
index 33622f841253..39e2f775f6df 100644
--- a/test/log/log_api.cpp
+++ b/test/log/log_api.cpp
@@ -18,7 +18,8 @@
 
 #include <libcamera/logging.h>
 
-#include "log.h"
+#include "libcamera/log.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
index 2df4aa43713c..82114a76b7ac 100644
--- a/test/log/log_process.cpp
+++ b/test/log/log_process.cpp
@@ -18,11 +18,12 @@
 #include <libcamera/logging.h>
 #include <libcamera/timer.h>
 
-#include "log.h"
-#include "process.h"
+#include "libcamera/log.h"
+#include "libcamera/process.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "thread.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/media_device/media_device_print_test.cpp b/test/media_device/media_device_print_test.cpp
index 5018906c75e7..eadfad4061c9 100644
--- a/test/media_device/media_device_print_test.cpp
+++ b/test/media_device/media_device_print_test.cpp
@@ -10,7 +10,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
-#include "media_device.h"
+#include "libcamera/media_device.h"
 
 #include "test.h"
 
diff --git a/test/media_device/media_device_test.h b/test/media_device/media_device_test.h
index cdbd14841d5c..87be6ff8e486 100644
--- a/test/media_device/media_device_test.h
+++ b/test/media_device/media_device_test.h
@@ -9,8 +9,8 @@
 
 #include <memory>
 
-#include "device_enumerator.h"
-#include "media_device.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
 
 #include "test.h"
 
diff --git a/test/message.cpp b/test/message.cpp
index 478bc79dffa6..1fa2f69254fb 100644
--- a/test/message.cpp
+++ b/test/message.cpp
@@ -9,8 +9,9 @@
 #include <iostream>
 #include <thread>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp
index fa162c838c78..7c1b704f4096 100644
--- a/test/object-invoke.cpp
+++ b/test/object-invoke.cpp
@@ -11,8 +11,9 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/object.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/object.cpp b/test/object.cpp
index 16118971c755..5e38308a8e2d 100644
--- a/test/object.cpp
+++ b/test/object.cpp
@@ -9,8 +9,8 @@
 
 #include <libcamera/object.h>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
 
 #include "test.h"
 
diff --git a/test/pipeline/ipu3/ipu3_pipeline_test.cpp b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
index a5c6be0955df..f1edc1dd59be 100644
--- a/test/pipeline/ipu3/ipu3_pipeline_test.cpp
+++ b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
@@ -13,9 +13,10 @@
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "media_object.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
index d46c928fbaf7..0f40485155b4 100644
--- a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
+++ b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
@@ -16,9 +16,10 @@
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "media_object.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
index 7e7b3c2c8bf3..6a3be85b6260 100644
--- a/test/process/process_test.cpp
+++ b/test/process/process_test.cpp
@@ -12,10 +12,11 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "process.h"
+#include "libcamera/process.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "thread.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/serialization/control_serialization.cpp b/test/serialization/control_serialization.cpp
index 111365241eb8..c82471b5f627 100644
--- a/test/serialization/control_serialization.cpp
+++ b/test/serialization/control_serialization.cpp
@@ -11,8 +11,9 @@
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
 
-#include "byte_stream_buffer.h"
-#include "control_serializer.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/control_serializer.h"
+
 #include "serialization_test.h"
 #include "test.h"
 
diff --git a/test/signal-threads.cpp b/test/signal-threads.cpp
index f77733ebc030..3682701a19a8 100644
--- a/test/signal-threads.cpp
+++ b/test/signal-threads.cpp
@@ -9,10 +9,11 @@
 #include <iostream>
 #include <thread>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/threads.cpp b/test/threads.cpp
index 0454761de12c..b36c847e94c0 100644
--- a/test/threads.cpp
+++ b/test/threads.cpp
@@ -9,7 +9,8 @@
 #include <iostream>
 #include <thread>
 
-#include "thread.h"
+#include "libcamera/thread.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/timer-thread.cpp b/test/timer-thread.cpp
index 32853b4e80ef..30a843f1b12c 100644
--- a/test/timer-thread.cpp
+++ b/test/timer-thread.cpp
@@ -11,8 +11,9 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/timer.cpp b/test/timer.cpp
index 2bdb006edccb..98eaa7ac043c 100644
--- a/test/timer.cpp
+++ b/test/timer.cpp
@@ -11,8 +11,9 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/utils.cpp b/test/utils.cpp
index 55ce9365a53e..efea38b6a8f4 100644
--- a/test/utils.cpp
+++ b/test/utils.cpp
@@ -12,8 +12,9 @@
 
 #include <libcamera/geometry.h>
 
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/v4l2_subdevice/list_formats.cpp b/test/v4l2_subdevice/list_formats.cpp
index 067dc5ed30f4..7c757b46811c 100644
--- a/test/v4l2_subdevice/list_formats.cpp
+++ b/test/v4l2_subdevice/list_formats.cpp
@@ -11,7 +11,8 @@
 
 #include <libcamera/geometry.h>
 
-#include "v4l2_subdevice.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "v4l2_subdevice_test.h"
 
 using namespace std;
diff --git a/test/v4l2_subdevice/test_formats.cpp b/test/v4l2_subdevice/test_formats.cpp
index 5cf5d5664b04..7a1f4c48c8e3 100644
--- a/test/v4l2_subdevice/test_formats.cpp
+++ b/test/v4l2_subdevice/test_formats.cpp
@@ -8,7 +8,8 @@
 #include <iostream>
 #include <limits.h>
 
-#include "v4l2_subdevice.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "v4l2_subdevice_test.h"
 
 using namespace std;
diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.cpp b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
index 562a638cb28e..35f9b655a7ac 100644
--- a/test/v4l2_subdevice/v4l2_subdevice_test.cpp
+++ b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
@@ -9,9 +9,10 @@
 #include <string.h>
 #include <sys/stat.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "v4l2_subdevice_test.h"
 
 using namespace std;
diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.h b/test/v4l2_subdevice/v4l2_subdevice_test.h
index 3bce6691f8ef..7097ba1c2659 100644
--- a/test/v4l2_subdevice/v4l2_subdevice_test.h
+++ b/test/v4l2_subdevice/v4l2_subdevice_test.h
@@ -10,10 +10,11 @@
 
 #include <libcamera/buffer.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "test.h"
-#include "v4l2_subdevice.h"
 
 using namespace libcamera;
 
diff --git a/test/v4l2_videodevice/buffer_sharing.cpp b/test/v4l2_videodevice/buffer_sharing.cpp
index 14d3055ad7d1..a03b9dd29819 100644
--- a/test/v4l2_videodevice/buffer_sharing.cpp
+++ b/test/v4l2_videodevice/buffer_sharing.cpp
@@ -16,7 +16,8 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "thread.h"
+#include "libcamera/thread.h"
+
 #include "v4l2_videodevice_test.h"
 
 class BufferSharingTest : public V4L2VideoDeviceTest
diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
index b38aabc6263d..ae52cb92151a 100644
--- a/test/v4l2_videodevice/capture_async.cpp
+++ b/test/v4l2_videodevice/capture_async.cpp
@@ -11,7 +11,8 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "thread.h"
+#include "libcamera/thread.h"
+
 #include "v4l2_videodevice_test.h"
 
 class CaptureAsyncTest : public V4L2VideoDeviceTest
diff --git a/test/v4l2_videodevice/controls.cpp b/test/v4l2_videodevice/controls.cpp
index 347af2112f1a..4ff60110f007 100644
--- a/test/v4l2_videodevice/controls.cpp
+++ b/test/v4l2_videodevice/controls.cpp
@@ -10,7 +10,7 @@
 #include <iostream>
 #include <limits.h>
 
-#include "v4l2_videodevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "v4l2_videodevice_test.h"
 
diff --git a/test/v4l2_videodevice/formats.cpp b/test/v4l2_videodevice/formats.cpp
index a74214215faf..bfd5bf5bbbdf 100644
--- a/test/v4l2_videodevice/formats.cpp
+++ b/test/v4l2_videodevice/formats.cpp
@@ -8,8 +8,8 @@
 #include <iostream>
 #include <limits.h>
 
-#include "utils.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "v4l2_videodevice_test.h"
 
diff --git a/test/v4l2_videodevice/v4l2_m2mdevice.cpp b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
index d20e5dfc3077..57a81e40725d 100644
--- a/test/v4l2_videodevice/v4l2_m2mdevice.cpp
+++ b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
@@ -11,10 +11,10 @@
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "thread.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/thread.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "test.h"
 
diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.cpp b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
index 93b9e72da5b4..cf260fffa4c7 100644
--- a/test/v4l2_videodevice/v4l2_videodevice_test.cpp
+++ b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
@@ -9,11 +9,11 @@
 
 #include <linux/media-bus-format.h>
 
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+
 #include "v4l2_videodevice_test.h"
 
-#include "device_enumerator.h"
-#include "media_device.h"
-
 using namespace std;
 using namespace libcamera;
 
diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.h b/test/v4l2_videodevice/v4l2_videodevice_test.h
index 9acaceb84fe0..5d4f5f1995ed 100644
--- a/test/v4l2_videodevice/v4l2_videodevice_test.h
+++ b/test/v4l2_videodevice/v4l2_videodevice_test.h
@@ -11,14 +11,14 @@
 
 #include <libcamera/buffer.h>
 
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
+
 #include "test.h"
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
-
 using namespace libcamera;
 
 class V4L2VideoDeviceTest : public Test
