Skip to content

Commit 250c556

Browse files
committed
meson: de-duplicate binaries using symlinks
1 parent 3d30b6f commit 250c556

File tree

5 files changed

+57
-29
lines changed

5 files changed

+57
-29
lines changed

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ project('OpenRC', 'c',
66
'prefix=/usr',
77
'warning_level=3',
88
],
9-
meson_version : '>=0.53.2')
9+
meson_version : '>=0.61.0')
1010

1111
cc = meson.get_compiler('c')
1212
fs = import('fs')

src/einfo/meson.build

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
einfo_execs = [
22
'einfon',
3-
'einfo',
43
'ewarnn',
54
'ewarn',
65
'eerrorn',
@@ -22,11 +21,19 @@ einfo_execs = [
2221
'veoutdent',
2322
]
2423

24+
executable('einfo',
25+
['einfo.c', version_h],
26+
include_directories: [incdir, einfo_incdir, rc_incdir],
27+
link_with: [libeinfo, librc],
28+
install: true,
29+
install_dir: rc_bindir)
30+
2531
foreach exec: einfo_execs
26-
executable(exec,
27-
['einfo.c', version_h],
28-
include_directories: [incdir, einfo_incdir, rc_incdir],
29-
link_with: [libeinfo, librc],
30-
install: true,
31-
install_dir: rc_bindir)
32+
custom_target(exec,
33+
build_by_default: true,
34+
command: ['ln', '-fns', 'einfo', '@OUTPUT@'],
35+
output: exec)
36+
install_symlink(exec,
37+
install_dir: rc_bindir,
38+
pointing_to: 'einfo')
3239
endforeach

src/mark_service/meson.build

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
mark_service_execs = [
2-
'mark_service_starting',
32
'mark_service_started',
43
'mark_service_stopping',
54
'mark_service_stopped',
@@ -10,11 +9,19 @@ mark_service_execs = [
109
'mark_service_crashed',
1110
]
1211

12+
executable('mark_service_starting',
13+
['mark_service.c', misc_c, version_h],
14+
include_directories: [incdir, einfo_incdir, rc_incdir],
15+
link_with: [libeinfo,librc],
16+
install: true,
17+
install_dir: rc_sbindir)
18+
1319
foreach exec : mark_service_execs
14-
executable(exec,
15-
['mark_service.c', misc_c, version_h],
16-
include_directories: [incdir, einfo_incdir, rc_incdir],
17-
link_with: [libeinfo,librc],
18-
install: true,
19-
install_dir: rc_sbindir)
20+
custom_target(exec,
21+
build_by_default: true,
22+
command: ['ln', '-fns', 'mark_service_starting', '@OUTPUT@'],
23+
output: exec)
24+
install_symlink(exec,
25+
install_dir: rc_sbindir,
26+
pointing_to: 'mark_service_starting')
2027
endforeach

src/service/meson.build

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
service_execs = [
2-
'service_starting',
32
'service_started',
43
'service_stopping',
54
'service_stopped',
@@ -10,11 +9,19 @@ service_execs = [
109
'service_crashed',
1110
]
1211

12+
executable('service_starting',
13+
['service.c', misc_c, version_h],
14+
include_directories: [incdir, einfo_incdir, rc_incdir],
15+
link_with: [libeinfo, librc],
16+
install: true,
17+
install_dir: rc_bindir)
18+
1319
foreach exec : service_execs
14-
executable(exec,
15-
['service.c', misc_c, version_h],
16-
include_directories: [incdir, einfo_incdir, rc_incdir],
17-
link_with: [libeinfo, librc],
18-
install: true,
19-
install_dir: rc_bindir)
20+
custom_target(exec,
21+
build_by_default: true,
22+
command: ['ln', '-fns', 'service_starting', '@OUTPUT@'],
23+
output: exec)
24+
install_symlink(exec,
25+
install_dir: rc_bindir,
26+
pointing_to: 'service_starting')
2027
endforeach

src/value/meson.build

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
value_execs = [
2-
'service_get_value',
32
'service_set_value',
43
'get_options',
54
'save_options',
65
]
76

7+
executable('service_get_value',
8+
['value.c', misc_c, version_h],
9+
include_directories: [incdir, einfo_incdir, rc_incdir],
10+
link_with: [libeinfo, librc],
11+
install: true,
12+
install_dir: rc_bindir)
13+
814
foreach exec : value_execs
9-
executable(exec,
10-
['value.c', misc_c, version_h],
11-
include_directories: [incdir, einfo_incdir, rc_incdir],
12-
link_with: [libeinfo, librc],
13-
install: true,
14-
install_dir: rc_bindir)
15+
custom_target(exec,
16+
build_by_default: true,
17+
command: ['ln', '-fns', 'service_get_value', '@OUTPUT@'],
18+
output: exec)
19+
install_symlink(exec,
20+
install_dir: rc_bindir,
21+
pointing_to: 'service_get_value')
1522
endforeach

0 commit comments

Comments
 (0)