]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: Use files() for source lists for boot and fundamental
authorJan Janssen <medhefgo@web.de>
Fri, 7 Jan 2022 20:55:50 +0000 (21:55 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 9 Jan 2022 17:02:34 +0000 (18:02 +0100)
This fixes build reproducibility as otherwise the full path
of the source files ends up in the output binary.

src/boot/efi/meson.build
src/fundamental/meson.build

index 8587b11cd6b15f90bcc9ac240088f0e7746cc108..b4f006fac495125773e25c42697aa59535819957 100644 (file)
@@ -312,9 +312,10 @@ efi_headers = files(
         'shim.h',
         'splash.h',
         'util.h',
-        'xbootldr.h')
+        'xbootldr.h',
+)
 
-common_sources = [
+common_sources = files(
         'assert.c',
         'devicetree.c',
         'disk.c',
@@ -322,31 +323,34 @@ common_sources = [
         'measure.c',
         'pe.c',
         'secure-boot.c',
-        'util.c']
+        'util.c',
+)
 
-systemd_boot_sources = [
+systemd_boot_sources = files(
         'boot.c',
         'console.c',
         'drivers.c',
         'random-seed.c',
         'shim.c',
-        'xbootldr.c']
+        'xbootldr.c',
+)
 
-stub_sources = [
+stub_sources = files(
         'cpio.c',
         'initrd.c',
         'splash.c',
-        'stub.c']
+        'stub.c',
+)
 
 if efi_arch[1] in ['ia32', 'x86_64']
-        stub_sources += 'linux_x86.c'
+        stub_sources += files('linux_x86.c')
 else
-        stub_sources += 'linux.c'
+        stub_sources += files('linux.c')
 endif
 
 # BCD parser only makes sense on arches that Windows supports.
 if efi_arch[1] in ['ia32', 'x86_64', 'arm', 'aarch64']
-        systemd_boot_sources += 'bcd.c'
+        systemd_boot_sources += files('bcd.c')
         tests += [
                 [['src/boot/efi/test-bcd.c'],
                  [],
@@ -362,9 +366,10 @@ endif
 systemd_boot_objects = []
 stub_objects = []
 foreach file : fundamental_source_paths + common_sources + systemd_boot_sources + stub_sources
-        o_file = custom_target(file.split('/')[-1] + '.o',
+        # FIXME: replace ''.format(file) with fs.name(file) when meson_version requirement is >= 0.59.0
+        o_file = custom_target('@0@.o'.format(file).split('/')[-1],
                                input : file,
-                               output : file.split('/')[-1] + '.o',
+                               output : '@0@.o'.format(file).split('/')[-1],
                                command : [cc.cmd_array(), '-c', '@INPUT@', '-o', '@OUTPUT@', efi_cflags],
                                depend_files : efi_headers + fundamental_headers)
         if (fundamental_source_paths + common_sources + systemd_boot_sources).contains(file)
index 287f0fe36ad9775af37e023fffb77436a1be8011..f927788c3adb67f606e7dcaddfaab53645c9c161 100644 (file)
@@ -8,20 +8,16 @@ fundamental_headers = files(
         'macro-fundamental.h',
         'sha256.h',
         'string-util-fundamental.h',
-        'types-fundamental.h')
-
-sources = '''
-        bootspec-fundamental.c
-        efivars-fundamental.c
-        string-util-fundamental.c
-        sha256.c
-'''.split()
+        'types-fundamental.h',
+)
 
 # for sd-boot
-fundamental_source_paths = []
-foreach source : sources
-        fundamental_source_paths += meson.current_source_dir() / source
-endforeach
+fundamental_source_paths = files(
+        'bootspec-fundamental.c',
+        'efivars-fundamental.c',
+        'sha256.c',
+        'string-util-fundamental.c',
+)
 
 # for libbasic
-fundamental_sources = files(sources) + fundamental_headers
+fundamental_sources = fundamental_source_paths + fundamental_headers