tree 0188cf22edce000f2c4197e22cef7e5255f69ec1
parent ef86d92f52bd20995ccd8cdee860cf06555b8869
author csmartdalton <hello@rive.app> 1722025409 +0000
committer csmartdalton <hello@rive.app> 1722025409 +0000

Add a build_rive.sh script to unify the premake5 build process

Attempts to unify the build process across all projects with a
"build_rive.sh" script.

Rather than scattering custom build scripts all around the repo, the
idea here is that our "premake5.lua" scripts will all conform to the
same protocol, which we can then build using one single, global script.

To use this build_rive.sh:

  1) add packages/runtime/build to $PATH
  2) cd to directory with a premake5.lua
  3) run build_rive.sh with desired flags (in any order)

Build for the host machine:
```
  build_rive.sh                      # debug build
  build_rive.sh release              # release build
  build_rive.sh release clean        # clean, followed by a release build
  build_rive.sh ninja                # use ninja (experimental) for a debug build
  build_rive.sh ninja release        # use ninja (experimental) for a release build
  build_rive.sh ninja --with_vulkan  # extra parameters get forwarded to premake
```
Generate `compile_commands.json` for code completion engines:
```
  build_rive.sh compdb                        # code completion for a host build
  build_rive.sh compdb android --with_vulkan  # code completion for android with vulkan enabled
```
Specify build targets after "--":
```
  build_rive.sh -- gms goldens
  build_rive.sh ninja release -- imagediff
```
Build for android:
```
  build_rive.sh android            # debug build, defaults to arm64
  build_rive.sh ninja android arm  # release arm32 build using ninja
```
Build for ios:
```
  build_rive.sh ios          # debug build, arm64 only
  build_rive.sh ios release  # release build, arm64 only
  build_rive.sh iossim       # debug build, defaults to "universal" (x64 and arm64) architecture
```
Build for wasm:
```
  build_rive.sh ninja release wasm                # release build
  build_rive.sh ninja release wasm --with-webgpu  # release build, also enable webgpu
```
Incremental builds:
```
  build_rive.sh                            # initial build
  build_rive.sh                            # any repeat command does an incremental build
  build_rive.sh --with_vulkan <- FAILS!!   # a repeat build with different arguments fails
  build_rive.sh clean --with_vulkan        # a clean build with different arguments is OK
  build_rive.sh rebuild out/debug  # use "rebuild" on a specific OUT directory to relaunch the
                                   # build with whatever args it got configured with initially
  build_rive.sh rebuild out/debug gms goldens  # args after OUT get forwarded to the buildsystem
```

Diffs=
0a11e599f Add a build_rive.sh script to unify the premake5 build process (#7691)

Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
