mirror of
https://github.com/hanzoai/pack.git
synced 2026-09-30 23:43:13 +00:00
* 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]>
29 lines
720 B
Go
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"),
|
|
})
|
|
}
|