mirror of
https://github.com/sched-ext/scx.git
synced 2024-12-11 03:12:27 +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>
15 lines
470 B
Meson
15 lines
470 B
Meson
if serialize
|
|
sched_deps = [libbpf, bpftool_target, sched]
|
|
else
|
|
sched_deps = [libbpf, bpftool_target]
|
|
endif
|
|
|
|
sched = custom_target('scx_rlfifo',
|
|
output: '@PLAINNAME@.__PHONY__',
|
|
input: 'Cargo.toml',
|
|
command: [cargo, 'build', '--manifest-path=@INPUT@', '--target-dir=@OUTDIR@',
|
|
cargo_build_args],
|
|
env: cargo_env,
|
|
depends: sched_deps,
|
|
build_always_stale: true)
|