diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-05-27 12:00:13 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-05-27 12:00:13 +0900 |
| commit | 7816f8b523eae98a30a088732626cb0ae1084cb9 (patch) | |
| tree | 3f8eddfc405674bd3c0a1f55ba8e46386a16789b | |
| parent | 91e4229e32272c36086e07cc302f4025f4387c7a (diff) | |
internal/rosa/package: cairo
Required by sway, which is required by vm test suite.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | internal/rosa/meson.go | 6 | ||||
| -rw-r--r-- | internal/rosa/package/cairo.az | 52 | ||||
| -rw-r--r-- | internal/rosa/state.go | 11 |
3 files changed, 64 insertions, 5 deletions
diff --git a/internal/rosa/meson.go b/internal/rosa/meson.go index 003b32cd..4281e1f9 100644 --- a/internal/rosa/meson.go +++ b/internal/rosa/meson.go @@ -20,6 +20,8 @@ type MesonHelper struct { Setup []KV // Whether to skip meson test. SkipTest bool + // Run tests with interactive input/output. + InteractiveTest bool } var _ Helper = new(MesonHelper) @@ -55,6 +57,10 @@ func (attr *MesonHelper) script(t Toolchain, name string) string { scriptTest = ` meson test \ --print-errorlogs` + if attr.InteractiveTest { + scriptTest += ` \ + --interactive` + } } return ` diff --git a/internal/rosa/package/cairo.az b/internal/rosa/package/cairo.az new file mode 100644 index 00000000..b8a5469e --- /dev/null +++ b/internal/rosa/package/cairo.az @@ -0,0 +1,52 @@ +package cairo { + description = "a 2D graphics library with support for multiple output devices"; + website = "https://www.cairographics.org"; + anitya = 247; + + version# = "1.18.4"; + source = remoteGitLab { + domain = "gitlab.freedesktop.org"; + suffix = "cairo/cairo"; + ref = version; + checksum = "_Ztw0ttmYLIiElqS27x2Iu4EneXOMNHp2or6bJA6suLeF3NRvORzUMPPQy9Wr5gT"; + }; + + exec = meson { + setup = { + "Ddwrite": "enabled"; + "Dfontconfig": "enabled"; + "Dfreetype": "enabled"; + + "Dpng": "enabled"; + "Dtee": "enabled"; + "Dxcb": "enabled"; + "Dxlib": "disabled"; + "Dxlib-xcb": "disabled"; + "Dzlib": "enabled"; + }; + // runs the entire test suite in a single meson test + interactiveTest = true; + // only works with specific dependency versions + skipTest = true; + }; + + inputs = [ + gawk, + + zlib, + libpng, + fontconfig, + freetype, + pixman, + xcb, + ]; + + runtime = [ + zlib, + libpng, + fontconfig, + freetype, + pixman, + xcb, + ]; +} diff --git a/internal/rosa/state.go b/internal/rosa/state.go index e04027ec..1aa37ea9 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -819,11 +819,12 @@ func (s *S) getFrame() azalea.Frame { ) (v any, set bool, err error) { var attr MesonHelper if err = args.Apply(map[unique.Handle[azalea.Ident]]any{ - k("preCompile"): &attr.ScriptCompileEarly, - k("postCompile"): &attr.ScriptCompiled, - k("postInstall"): &attr.Script, - k("setup"): &attr.Setup, - k("skipTest"): &attr.SkipTest, + k("preCompile"): &attr.ScriptCompileEarly, + k("postCompile"): &attr.ScriptCompiled, + k("postInstall"): &attr.Script, + k("setup"): &attr.Setup, + k("skipTest"): &attr.SkipTest, + k("interactiveTest"): &attr.InteractiveTest, }); err != nil { return } |
