diff --git a/src/app/docs/extend/build-recipe.component.html b/src/app/docs/extend/build-recipe.component.html index 255e1e1c..ef986cef 100644 --- a/src/app/docs/extend/build-recipe.component.html +++ b/src/app/docs/extend/build-recipe.component.html @@ -1,3 +1,92 @@
-
TODO: build recipe docs
+
+

Ecsact Build Recipes

+

+ Ecsact build recipes are YAML files that configure a build for a + runtime implementation. + These recipe files get consumed by the + Ecsact CLI build subcommand. +

+
+ +
+

How to use an Ecsact Build Recipe

+

+ Build recipes are usually used in an integration pretty seamlessly. Most + of the time you won't even need to pay attention to it. If customizing the + build recipe is available there should be a dropdown or a simple way to + select build recipes in the game engine integration settings. +

+

+ For custom integrations or projects not using an engine you'll want to use + the Ecsact CLI{{ ' ' }} + build subcommand directly. +

+
+ +
+

Writing a build recipe

+

+ Writing a build recipe is simple, but creating an Ecsact runtime + implementation is no trivial feat. For that reason, learning how to write + a build recipe is considered an advanced topic. +

+

+ Build recipes are likely going to change dramatically as Ecsact develops. + For that reason this article is not going to dive deep into the build + recipe YAML format. Instead we'll go over the high level concepts and some + recommendations for distributing your build recipes. If that doesn't scare + you away then take a look at the + + open_in_new ecsact_rt_entt build recipe + for an example. +

+ +

Sources

+

+ The build recipe includes a list of sources that are required to build the + runtime implementation. Source files include programming language source + files or codegen plugins that should run on the .ecsact files + included when building the runtime. +

+ +

Exports

+

+ A list of exported Ecsact runtime module functions are listed in the build + recipe. These are functions that the runtime implementation implements. + The exported functions will be used by another runtime (see imports) or by the game or game engine directly. +

+ +

Imports

+

+ A list of imported Ecsact runtime module functions are listed in the build + recipe. These are functions that the + exported functions + utilise at runtime. This allows multiple recipes to be combined to create + a single runtime. +

+ +

Distribution

+

+ Distributing a build recipe YAML file is fine, but it does have some down + sides. Namely all the source files and codegen plugins need to be + carefully placed next to the build recipe in order for them to be + discoverable. This can be error proned when developers are installing your + build recipe. Instead we recommend using the + Ecsact CLI + recipe-bundle command which will generate a + .ecsact-recipe-bundle with all your source files and plugins + all packaged neatly into 1 file. +

+
diff --git a/src/app/docs/extend/build-recipe.component.ts b/src/app/docs/extend/build-recipe.component.ts index fdf04c63..4c334539 100644 --- a/src/app/docs/extend/build-recipe.component.ts +++ b/src/app/docs/extend/build-recipe.component.ts @@ -1,7 +1,9 @@ import {Component} from '@angular/core'; +import {RouterLink} from '@angular/router'; @Component({ templateUrl: './build-recipe.component.html', standalone: true, + imports: [RouterLink], }) export class ExtendBuildRecipeComponent {}