]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: add source dir to include_directories automatically
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 1 Dec 2025 14:35:22 +0000 (15:35 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 1 Dec 2025 14:35:22 +0000 (15:35 +0100)
Quite often we need to specify include_directories('.'). Normally, meson
does this automatically, but we specify implicit_include_directories : false,
see 30d20907bddfe064cc3437a888dd8f00d14929e4 for an explanation.
Passing the include_directories argument through the template layers was rather
cumbersome. Let's simplify things by always including the directory of the
first source file. This makes the definitions simpler, at the cost of having an
unnecessary include directory in the list in some cases.

(Tests are excluded from this change, because they happen to not need this, but
also because some tests have source[0] which is a custom target, and we'd need
newer meson to support that.)

meson.build
src/core/meson.build
src/coredump/meson.build
src/home/meson.build
src/journal/meson.build
src/login/meson.build
src/nsresourced/meson.build
src/resolve/meson.build
src/sleep/meson.build
src/timesync/meson.build

index 8b08bb317831711a3d6a18225c03238139cfc887..85b8d1b407af1bfa60b753043a2ff44ca8473e71 100644 (file)
@@ -2334,7 +2334,6 @@ else
         }
 endif
 fuzz_additional_kwargs += {
-        'include_directories' : include_directories('src/fuzz'),
         'c_args' : test_cflags,
 }
 
@@ -2565,9 +2564,9 @@ foreach dict : executables
 
         kwargs = {}
         foreach key, val : dict
-                if key in ['name', 'dbus', 'public', 'conditions',
-                           'type', 'suite', 'timeout', 'parallel',
-                           'objects', 'sources', 'extract']
+                if key in ['name', 'dbus', 'public', 'conditions', 'type', 'suite',
+                           'timeout', 'parallel', 'objects', 'sources', 'extract',
+                           'include_directories']
                         continue
                 endif
 
@@ -2578,15 +2577,15 @@ foreach dict : executables
                 kwargs += { key : [ kwargs.get(key, []), val ]}
         endforeach
 
+        include_directories = dict['include_directories']
+        if not is_test
+                include_directories += fs.parent(exe_sources[0])
+        endif
+
         foreach val : dict.get('objects', [])
                 obj = objects_by_name[val]
-                kwargs += {
-                        'objects' : obj['objects'],
-                        'include_directories' : [
-                                kwargs.get('include_directories', []),
-                                obj['include_directories'],
-                        ],
-                }
+                kwargs += { 'objects' : obj['objects'] }
+                include_directories += obj['include_directories']
         endforeach
 
         if is_test
@@ -2597,6 +2596,7 @@ foreach dict : executables
         endif
 
         if is_fuzz
+                include_directories += include_directories('src/fuzz')
                 foreach key, val : fuzz_additional_kwargs
                         if key == 'sources'
                                 exe_sources += val
@@ -2611,6 +2611,7 @@ foreach dict : executables
                 sources : exe_sources,
                 kwargs : kwargs,
                 implicit_include_directories : false,
+                include_directories : include_directories,
         )
 
         executables_by_name += { name : exe }
index 1fa0e684964baf47c14a0e2d4022f7888e356af8..11f19ad1f4bd1b610e9aa79723a6c40fe5fb9f9b 100644 (file)
@@ -207,7 +207,6 @@ executables += [
                 'name' : 'systemd-executor',
                 'public' : true,
                 'sources' : systemd_executor_sources,
-                'include_directories' : core_includes,
                 'link_with' : executor_libs,
                 'dependencies' : [
                         libapparmor_cflags,
index 230eb0f3e6f8e17b1f85884cc9983a797e9217dd..355993d09ef1f60dbb69afb3b156df94db1a5b64 100644 (file)
@@ -37,7 +37,6 @@ executables += [
         libexec_template + {
                 'name' : 'systemd-coredump',
                 'sources' : systemd_coredump_sources,
-                'include_directories' : [libexec_template['include_directories'], include_directories('.')],
                 'extract' : systemd_coredump_extract_sources,
                 'link_with' : [libshared],
                 'dependencies' : common_dependencies,
index f913cb75e5dc143b07cb15415fbdeafb2701e26f..dbb374ce4a1248d2bb8e0e78c86fc2867eb20dcd 100644 (file)
@@ -63,8 +63,6 @@ executables += [
                 'dbus' : true,
                 'sources' : systemd_homed_sources,
                 'extract' : systemd_homed_extract_sources,
-                'include_directories' : includes +
-                                        include_directories('.'),
                 'dependencies' : [
                         libcrypt,
                         libm,
index fc5f557696ee3fe1cfedb84a460be610808d4845..1ad5c40dfa8bdb5ece96630675ecdba2aacfd66d 100644 (file)
@@ -66,7 +66,6 @@ executables += [
                 'name' : 'systemd-journald',
                 'sources' : systemd_journald_sources,
                 'extract' : systemd_journald_extract_sources,
-                'include_directories' : [libexec_template['include_directories'], include_directories('.')],
                 'dependencies' : [
                         liblz4_cflags,
                         libselinux_cflags,
index 435dcf4d27d98978c1709c43d749f0db82bb29d5..df3c23295912c951fe20cbafdf523dee6e1acf33 100644 (file)
@@ -47,7 +47,6 @@ executables += [
                 'dbus' : true,
                 'sources' : systemd_logind_sources,
                 'extract' : systemd_logind_extract_sources,
-                'include_directories' : [libexec_template['include_directories'], include_directories('.')],
                 'dependencies' : [
                         threads,
                 ],
index 4fb55f67f9d7ea4d5bda7deb4e98c68e049bbdde..6b6ae1558c0f7c66d875c5b2b3469cafbc9ecfd8 100644 (file)
@@ -32,7 +32,6 @@ executables += [
                 'name' : 'systemd-nsresourced',
                 'sources' : systemd_nsresourced_sources,
                 'extract' : systemd_nsresourced_extract_sources,
-                'include_directories' : [libexec_template['include_directories'], include_directories('.')],
                 'dependencies' : threads,
         },
         libexec_template + {
index b32e9526c8d7381af4803c011ac37879f7b81132..49ac293f5170728c1871ed9818bfa923bedd18e1 100644 (file)
@@ -83,7 +83,6 @@ executables += [
                 'dbus' : true,
                 'sources' : systemd_resolved_sources,
                 'extract' : systemd_resolved_extract_sources,
-                'include_directories' : [libexec_template['include_directories'], include_directories('.')],
         },
         executable_template + resolve_common_template + {
                 'name' : 'resolvectl',
index ff9ea74aa2e3b3c9727f08a2aff453d8c2025fde..7411aa1cebda0cee11eb6704881e87dab480b51b 100644 (file)
@@ -5,7 +5,6 @@ executables += [
                 'name' : 'systemd-sleep',
                 'sources' : files('sleep.c'),
                 'extract' : files('battery-capacity.c'),
-                'include_directories' : [libexec_template['include_directories'], include_directories('.')],
         },
         test_template + {
                 'sources' : files('test-battery-capacity.c'),
index 51e9d3f5c107f210006faed52c14f973887fab48..b30724577202a4cff57aa4305d25ecf7294bf14f 100644 (file)
@@ -34,7 +34,6 @@ executables += [
                 'name' : 'systemd-timesyncd',
                 'sources' : timesyncd_sources,
                 'extract' : timesyncd_extract_sources,
-                'include_directories' : [libexec_template['include_directories'], include_directories('.')],
                 'link_with' : timesyncd_link_with,
                 'dependencies' : [
                         libm,