mirror of
https://github.com/sched-ext/scx.git
synced 2024-11-29 06:00:23 +00:00
cf4883fbf8
With commit 5d20f89a
("scheds-rust: build rust schedulers in sequence"),
schedulers are now built serially one after the other to prevent meson
and cargo from forking NxN parallel tasks.
However, this change has made building a single scheduler much more
cumbersome, due to the chain of dependencies.
For example, building scx_rusty using the specific meson target would
still result in all schedulers being built, because they all depend on
each other.
To address this issue, introduce the new meson build option
`serialize=true|false` (default is false).
This option allows to disable the schedulers' build chain, restoring the
old behavior.
With this option enabled, it is now possible to build just a single
scheduler, parallelizing the cargo build properly, without triggering
the build of the others. Example:
$ meson setup build -Dbuildtype=release -Dserialize=false
$ meson compile -C build scx_rusty
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
43 lines
2.0 KiB
Plaintext
43 lines
2.0 KiB
Plaintext
option('bpf_clang', type: 'string', value: 'clang',
|
|
description: 'clang to use when compiling .bpf.c')
|
|
option('bpftool', type: 'string',
|
|
description: 'bpftool to use when generating .bpf.skel.h. By default, bpftool is automatically downloaded and built during setup. To use an existing bpftool binary, point this to the bpftool path or set it to "disabled" to have meson try to find it automatically')
|
|
option('libbpf_a', type: 'string',
|
|
description: 'By default, libbpf is automatically downloaded and built during setup. To use an existing static library, point this to the libbpf.a file or set it to "disabled" to use dynamic linking')
|
|
option('libbpf_h', type: 'array',
|
|
description: 'libbpf header directories, only meaningful with libbpf_a option')
|
|
option('cargo', type: 'string', value: 'cargo',
|
|
description: 'cargo to use when building rust sub-projects')
|
|
option('cargo_home', type: 'string',
|
|
description: 'CARGO_HOME env to use when invoking cargo')
|
|
option('offline', type: 'boolean', value: 'false',
|
|
description: 'Compilation step should not access the internet')
|
|
option('enable_rust', type: 'boolean', value: 'true',
|
|
description: 'Enable rust sub-projects')
|
|
option('serialize', type: 'boolean', value: 'true',
|
|
description: 'Serialize the build of all schedulers')
|
|
option('enable_stress', type: 'boolean', value: 'true',
|
|
description: 'Enable stress tests')
|
|
option('kernel', type: 'string', value: 'vmlinuz',
|
|
description: 'kernel image used to test schedulers')
|
|
option('kernel_headers', type: 'string', value: '',
|
|
description: 'kernel headers to build the schedulers')
|
|
option(
|
|
'systemd',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'sd-notify support via libsystemd and install systemd unit files'
|
|
)
|
|
option(
|
|
'openrc',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'openrc init.d service file'
|
|
)
|
|
option(
|
|
'libalpm',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'install pacman hooks'
|
|
)
|