gentoo-overlay/net-misc/netplan/files/0001-buildsystem-meson-fixe...

140 lines
4.6 KiB
Diff

From 89948ed72b80c2671981ce6bb995dccbb5e389b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20M=C3=A4rdian?= <slyon@ubuntu.com>
Date: Wed, 24 Aug 2022 12:34:51 +0200
Subject: [PATCH] buildsystem: meson fixes
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
- install all files
- POSIX shell compatibility in generators
- use custom_targets for generators
- fix dbus install directory
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
---
dbus/meson.build | 12 +++++++++++-
features_h_generator.sh | 6 ++++--
features_py_generator.sh | 6 ++++--
meson.build | 5 -----
netplan/meson.build | 15 +++++++++++++--
5 files changed, 32 insertions(+), 12 deletions(-)
diff --git a/dbus/meson.build b/dbus/meson.build
index 68a6ce39208d..fc34e2c2cbf7 100644
--- a/dbus/meson.build
+++ b/dbus/meson.build
@@ -1,6 +1,16 @@
+features_h = custom_target(
+ build_always_stale: true,
+ output: '_features.h',
+ input: join_paths(meson.project_source_root(), 'features_h_generator.sh'),
+ command: ['sh', '-c', '@INPUT@'],
+ install: false,
+ capture: true,
+)
+
executable(
'netplan-dbus',
'../src/dbus.c',
+ features_h,
include_directories: inc,
link_with: libnetplan,
dependencies: [libsystemd, glib, gio, yaml, uuid],
@@ -9,7 +19,7 @@ executable(
install_data(
'io.netplan.Netplan.conf',
- install_dir: join_paths(get_option('datadir'), 'dbus-1', 'systemd.d'))
+ install_dir: join_paths(get_option('datadir'), 'dbus-1', 'system.d'))
conf_data = configuration_data()
conf_data.set('ROOTLIBEXECDIR', join_paths(get_option('prefix'), get_option('libexecdir')))
diff --git a/features_h_generator.sh b/features_h_generator.sh
index ed9c3cc78cab..d38771515a2d 100755
--- a/features_h_generator.sh
+++ b/features_h_generator.sh
@@ -1,6 +1,8 @@
#!/bin/sh
-OUTPUT=src/_features.h
-INPUT=src/[^_]*.[hc]
+BASE=$(dirname $0)
+OUTPUT=$BASE/src/_features.h
+INPUT=$BASE/src/[!_]*.[hc]
printf "#include <stddef.h>\nstatic const char *feature_flags[] __attribute__((__unused__)) = {\n" > $OUTPUT
awk 'match ($0, /netplan-feature:.*/ ) { $0=substr($0, RSTART, RLENGTH); print "\""$2"\"," }' $INPUT >> $OUTPUT
echo "NULL, };" >> $OUTPUT
+cat $OUTPUT
diff --git a/features_py_generator.sh b/features_py_generator.sh
index ecb42af47e75..bbbe3a4e3e30 100755
--- a/features_py_generator.sh
+++ b/features_py_generator.sh
@@ -1,7 +1,9 @@
#!/bin/sh
-OUTPUT=netplan/_features.py
-INPUT=src/[^_]*.[hc]
+BASE=$(dirname $0)
+OUTPUT=$BASE/netplan/_features.py
+INPUT=$BASE/src/[!_]*.[hc]
echo "# Generated file" > $OUTPUT
echo "NETPLAN_FEATURE_FLAGS = [" >> $OUTPUT
awk 'match ($0, /netplan-feature:.*/ ) { $0=substr($0, RSTART, RLENGTH); print " \""$2"\"," }' $INPUT >> $OUTPUT
echo "]" >> $OUTPUT
+cat $OUTPUT
diff --git a/meson.build b/meson.build
index 3ab07765b38e..7f48cb4f244a 100644
--- a/meson.build
+++ b/meson.build
@@ -32,11 +32,6 @@ add_project_arguments(
'-D_XOPEN_SOURCE=700',
language: 'c')
-message('Generating the _features.[py|h] code')
-#XXX: this is ugly as it produces artifacts in the source directory
-run_command('features_h_generator.sh', check: true)
-run_command('features_py_generator.sh', check: true)
-
inc = include_directories('include')
subdir('include')
subdir('src')
diff --git a/netplan/meson.build b/netplan/meson.build
index 1313cb40ebad..07a13e2cc484 100644
--- a/netplan/meson.build
+++ b/netplan/meson.build
@@ -4,10 +4,21 @@ install_symlink(
pointing_to: '../share/netplan/netplan.script',
install_dir: get_option('sbindir'))
+netplan_module = join_paths(get_option('datadir'), meson.project_name(), 'netplan')
+features_py = custom_target(
+ build_always_stale: true,
+ output: '_features.py',
+ input: join_paths(meson.project_source_root(), 'features_py_generator.sh'),
+ command: ['sh', '-c', '@INPUT@'],
+ install: true,
+ install_dir: netplan_module,
+ capture: true,
+)
+
netplan_sources = files(
'__init__.py',
- '_features.py',
'configmanager.py',
+ 'libnetplan.py',
'terminal.py')
cli_sources = files(
@@ -26,9 +37,9 @@ commands_sources = files(
'cli/commands/ip.py',
'cli/commands/migrate.py',
'cli/commands/set.py',
+ 'cli/commands/sriov_rebind.py',
'cli/commands/try_command.py')
-netplan_module = join_paths(get_option('datadir'), meson.project_name(), 'netplan')
install_data(netplan_sources, install_dir: netplan_module)
install_data(cli_sources, install_dir: join_paths(netplan_module, 'cli'))
install_data(commands_sources, install_dir: join_paths(netplan_module, 'cli', 'commands'))
--
2.26.2