flutter_tools shells out to bare `ninja -C <dir> install` with no -j flag, so ninja defaults to nproc+2 parallel compile/link jobs. On this 6-core/7.6GiB box that's enough concurrent clang jobs (sqlite3's single-TU amalgamation is the worst offender) to trip systemd-oomd well before swap fills up. Add tools/ninja-jcap, a PATH-shadowing ninja shim that caps jobs via NINJA_JOBS (default 2), and have the Taskfile prepend it inline in the run command. Task's `env:` block can't override PATH itself (the OS env wins), so the shim has to go on PATH via the shell command line. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
20 lines
973 B
YAML
20 lines
973 B
YAML
version: '3'
|
|
|
|
vars:
|
|
FLUTTER: /var/home/ironmagma/Code/.flutter-sdk/bin/flutter
|
|
|
|
tasks:
|
|
default:
|
|
desc: Launch Layer Wizard
|
|
env:
|
|
# GTK/glib/etc. come from Homebrew (brew install gtk+3), not rpm-ostree,
|
|
# since they're only needed to build this one app, not the OS image.
|
|
PKG_CONFIG_PATH: /home/linuxbrew/.linuxbrew/lib/pkgconfig:/home/linuxbrew/.linuxbrew/share/pkgconfig:/home/linuxbrew/.linuxbrew/opt/xorgproto/share/pkgconfig
|
|
cmds:
|
|
# flutter_tools shells out to bare `ninja -C <dir> install` with no -j
|
|
# flag, so ninja defaults to nproc+2 parallel compile/link jobs. That's
|
|
# enough to trip systemd-oomd on this machine (6 cores, 7.6GiB RAM).
|
|
# (Task's `env:` block can't override PATH itself -- the OS env wins --
|
|
# so the shim has to be prepended inline here instead.) See
|
|
# tools/ninja-jcap for the shim that caps it.
|
|
- 'PATH="{{.ROOT_DIR}}/tools/ninja-jcap:$PATH" {{.FLUTTER}} run -d linux'
|