diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
index c8c900eba66a..36de1c2a393c 100644
--- a/include/libcamera/meson.build
+++ b/include/libcamera/meson.build
@@ -47,7 +47,9 @@ controls_map = {
 
 control_headers = []
 controls_files = []
+controls_files_names = []
 properties_files = []
+properties_files_names = []
 
 foreach mode, entry : controls_map
     files_list = []
@@ -70,10 +72,12 @@ foreach mode, entry : controls_map
     outfile = ''
     if mode == 'controls'
         outfile = 'control_ids.h'
-        controls_files += files_list
+        controls_files += input_files
+        controls_files_names += files_list
     else
         outfile = 'property_ids.h'
-        properties_files += files_list
+        properties_files += input_files
+        properties_files_names += files_list
     endif
 
     template_file = files(outfile + '.in')
diff --git a/meson.build b/meson.build
index 59293e478b00..432ae1337b4a 100644
--- a/meson.build
+++ b/meson.build
@@ -278,8 +278,8 @@ py_mod.find_installation('python3', modules : py_modules)
 summary({
             'Enabled pipelines': pipelines,
             'Enabled IPA modules': enabled_ipa_names,
-            'Controls files': controls_files,
-            'Properties files': properties_files,
+            'Controls files': controls_files_names,
+            'Properties files': properties_files_names,
             'Hotplug support': libudev.found(),
             'Tracing support': tracing_enabled,
             'Android support': android_enabled,
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index c3efc5278ec8..79b8cbaf1311 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -134,8 +134,6 @@ controls_mode_files = {
 }
 
 foreach mode, input_files : controls_mode_files
-    input_files = files(input_files)
-
     if mode == 'controls'
         template_file = files('control_ids.cpp.in')
     else
diff --git a/src/py/libcamera/meson.build b/src/py/libcamera/meson.build
index 4807ca7d75ed..2e67407598db 100644
--- a/src/py/libcamera/meson.build
+++ b/src/py/libcamera/meson.build
@@ -28,32 +28,21 @@ pycamera_sources = files([
 
 # Generate controls
 
-gen_py_controls_input_files = []
 gen_py_controls_template = files('py_controls_generated.cpp.in')
-
 gen_py_controls = files('gen-py-controls.py')
 
-foreach file : controls_files
-    gen_py_controls_input_files += files('../../libcamera/' + file)
-endforeach
-
 pycamera_sources += custom_target('py_gen_controls',
-                                  input : gen_py_controls_input_files,
+                                  input : controls_files,
                                   output : ['py_controls_generated.cpp'],
                                   command : [gen_py_controls, '--mode', 'controls', '-o', '@OUTPUT@',
                                              '-t', gen_py_controls_template, '@INPUT@'])
 
 # Generate properties
 
-gen_py_property_enums_input_files = []
 gen_py_properties_template = files('py_properties_generated.cpp.in')
 
-foreach file : properties_files
-    gen_py_property_enums_input_files += files('../../libcamera/' + file)
-endforeach
-
 pycamera_sources += custom_target('py_gen_properties',
-                                  input : gen_py_property_enums_input_files,
+                                  input : properties_files,
                                   output : ['py_properties_generated.cpp'],
                                   command : [gen_py_controls, '--mode', 'properties', '-o', '@OUTPUT@',
                                              '-t', gen_py_properties_template, '@INPUT@'])
