Adds support for building all in _only_ debug mode, _only_ release mode, or all (both debug + release).
Additionally updates the release script to build _only_ release libs, which should speed up overall release times.
The iOS runtime expects release builds of the c++ runtime, so by utilizing `build.sh all release` we can shrink build times, both locally and for releases.
Here are some rough timings. The times are an average of three runs:
- `build.sh all debug`: 6m15s
- `build.sh all release` 5m38s
- `build.sh all`: 11m54s
This shaves off almost 50% of the build time (which makes sense, since we're cutting out half of the builds).
Diffs=
820f8fe027 build(ios): support building all runtimes by debug or release (#8966)
Co-authored-by: David Skuza <david@rive.app>
This way clients don't have to configure a virtual environment and install it.
Diffs=
31bf5a44f Download python-ply inside of premake (#8285)
Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
See title. Additionally, this removes the skia build scripts and updates the major version dependency rule to v6.0.0 in the Preview app.
Diffs=
8773f56fc Update iOS contributing guide (#8018)
Co-authored-by: David Skuza <david@rive.app>
This is part 1 of the update to switch downstream rive-android to use submodule rive-runtime instead of rive-cpp
After this is merged, another PR in the downstream repo must be made to change the .gitmodules and also move submodules/rive-cpp to submodule/rive-runtime
Diffs=
345e07ecf Runtime ios switch to rive-runtime from rive-cpp (#8024)
Co-authored-by: rivessamr <suki@rive.app>
This is similar to the Android PR that added build variants to make it easier to build the example apps, see: https://github.com/rive-app/rive/pull/6088
With this PR we're now making use of additional targets that shares code with the parent examples (iOS and macOS respectively). Then there are two new schemes that you can select when playing `preview` and `preview (macOS)`, which will use the above mentioned targets that uses the hosted Rive dependency instead of the local one.
This works well, but is not as smooth of an implementation as Android, where it was simply switching out a build flag. With this implementation we'll also need to semi-manually bump the hosted version - see the additional docs in `CONTRIBUTING`.
There might be a way that we could make this smoother. It'll only be a headache for examples that make use of new features. Where after we release, we'd then need to do another PR that updates the minimum version for the `preview` targets. We could likely look into automating this by scripting the change in the Xcode config.
Diffs=
d78a6561a feat: add preview target to ios and macos runtime example (#6096)
Co-authored-by: Gordon <pggordonhayes@gmail.com>
Adds a "simd" namespace with vector utilities (SSE, NEON, WASM_SIMD),
and implements RawPath::bounds in SIMD. This namespace relies
exclusively on the latest clang vector extensions, so from here on, Rive
needs to be built with a recent clang. On our own bots, we had to bump
the Android builder to NDK r25b, the Ubuntu builder to 22.04, and the
MacOS builder to macos-12.
RawPathBounds bench result:
MacOS: 2.37ms -> .579 (4.1x)
Windows: 3.53ms -> 1.68 (2.1x)
Windows SSE can be optimized down to .927ms (3.8x) by forcing the SSE
min/max instructions, but they have different behavior with NaN, which
is why clang doesn't use them directly, so it seems like an
over-optimization at this point.
Diffs=
986b49674 Add a simd library for SSE / NEON / WASM_SIMD (#4199)
Getting this format to match the other runtimes new README format.
Diffs=
671b8172f Docs: Update docs for the iOS runtime README and CONTRIBUTING md files to the simplified format
… downstream
just tagging you all for visibility will pepper a few comments in here and hit merge....
Diffs=
90e1d4cf7 renamed release script to releaase & removed unused scripts
418044ebf updates to renderer build defines
a1af986be adding all the updates to make ios build from the mono repo, and push downstream