meson: Use files() for source lists for boot and fundamental
authorJan Janssen <medhefgo@web.de>
Wed, 26 Jan 2022 23:35:36 +0000 (23:35 +0000)
committerLuca Boccassi <bluca@debian.org>
Wed, 26 Jan 2022 23:35:36 +0000 (23:35 +0000)
Origin: https://github.com/systemd/systemd/commit/b3c5a7074cd434bc02c4b560afe933d3df24759e

This fixes build reproducibility as otherwise the full path
of the source files ends up in the output binary.

Gbp-Pq: Name meson-Use-files-for-source-lists-for-boot-and-fundam.patch

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

index f98dbf68d26a843d37f21419ddd782b39c92d94b..ea4f024a171542386279f017a78ae0640b8dcc2d 100644 (file)
@@ -297,9 +297,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',
@@ -307,31 +308,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'],
                  [],
@@ -344,9 +348,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 : [efi_cc, '-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