Files
pack/core/providers/cpp/meson.go
T
0bff0ecf6c feat: C/C++ providers (#319)
* Start working on ROS provider

* CMake provider, get ROS at least doing something

* update snapshots

* ROS builds now

* update snapshots

* ROS (I think) works

* Add Meson provider

* Add CMake docs

* fix cpp-cmake example

* fix docs build

* Add Meson docs

* ROS docs, allow specifying launch file

* Merge cmake and meson into C++ provider

* Merge docs

* UseMiseVersions()

* trigger ci

* Remove ROS provider

* fix: add cleanse implementation

* test: snapshot update

* test: missing py snapshot update

---------

Co-authored-by: Michael Bianco <[email protected]>
2025-11-20 16:06:15 -07:00

29 lines
720 B
Go

package cpp
import (
"github.com/railwayapp/railpack/core/generate"
"github.com/railwayapp/railpack/core/plan"
)
type meson struct{}
func (_ *CppProvider) DetectMeson(ctx *generate.GenerateContext) (buildSystem, bool) {
if ctx.App.HasFile("meson.build") {
return &meson{}, true
}
return nil, false
}
func (_ *meson) Install(ctx *generate.GenerateContext, mise *generate.MiseStepBuilder) {
mise.Default("meson", "latest")
mise.Default("ninja", "latest")
mise.UseMiseVersions(ctx, []string{"meson", "ninja"})
}
func (_ *meson) Build(build *generate.CommandStepBuilder) {
build.AddCommands([]plan.Command{
plan.NewExecCommand("meson setup /build"),
plan.NewExecCommand("meson compile -C /build"),
})
}