| dofile('rive_tools_project.lua') |
| |
| newoption({ |
| trigger = 'no_tools_shader_hotloading', |
| description = 'do not compile in support for shader hotloading', |
| }) |
| |
| if not _OPTIONS['for_unreal'] then |
| rive_tools_project('bench', _OPTIONS['os'] == 'ios' and 'StaticLib' or _OPTIONS['all_tools_as_static'] and 'StaticLib' or 'ConsoleApp' ) |
| do |
| files({ 'bench/*.cpp' }) |
| end |
| end |
| |
| rive_tools_project('gms', 'RiveTool') |
| do |
| files({ 'gm/*.cpp'}) |
| -- Ore GM tests need Obj-C++ on Apple (ore headers include <Metal/Metal.h>). |
| -- .mm wrappers #include the .cpp files so every Apple generator compiles |
| -- them as Obj-C++ without needing compileas or buildoptions hacks. |
| -- On non-Apple, ore GMs are excluded from the gm/*.cpp glob but re-added |
| -- per-platform as the corresponding Ore backend lands. |
| removefiles({ 'gm/ore_*.cpp' }) |
| -- render_canvas GMs use RenderContext::makeRenderCanvas which is gated |
| -- behind RIVE_CANVAS; only compile them when with_rive_canvas is on. |
| filter({ 'options:not with_rive_canvas' }) |
| do |
| removefiles({ 'gm/render_canvas*.cpp' }) |
| end |
| filter('system:macosx or ios') |
| do |
| files({ 'gm/*.mm' }) |
| buildoptions({ '-fobjc-arc' }) |
| end |
| -- D3D11 Ore backend: include ore GMs on Windows when with_rive_canvas is on. |
| filter({ 'system:windows', 'options:with_rive_canvas' }) |
| do |
| files({ 'gm/ore_*.cpp' }) |
| end |
| -- GL Ore backend: include ore GMs on Android/Emscripten/Linux. |
| filter({ 'system:android or emscripten or linux', 'options:with_rive_canvas' }) |
| do |
| files({ 'gm/ore_*.cpp' }) |
| end |
| -- Console builds: include ore GMs to exercise ORE_BACKEND_VK paths. |
| filter({ 'options:_console_only_ore_vk', 'options:with_rive_canvas' }) |
| do |
| files({ 'gm/ore_*.cpp' }) |
| end |
| filter({}) |
| filter({ 'options:not no_tools_shader_hotloading' }) |
| do |
| files({RIVE_PLS_DIR .. '/shader_hotload/**.cpp' }) |
| end |
| filter({ 'options:for_unreal' }) |
| do |
| defines({ 'RIVE_UNREAL' }) |
| end |
| filter('system:emscripten') |
| do |
| files({ 'gm/gms.html' }) |
| end |
| end |
| |
| rive_tools_project('goldens', 'RiveTool') |
| do |
| exceptionhandling('On') |
| files({ 'goldens/goldens.cpp'}) |
| filter({ 'options:not no_tools_shader_hotloading' }) |
| do |
| files({RIVE_PLS_DIR .. '/shader_hotload/**.cpp' }) |
| end |
| filter({ 'options:for_unreal' }) |
| do |
| defines({ 'RIVE_UNREAL' }) |
| end |
| filter('system:emscripten') |
| do |
| files({ 'goldens/goldens.html' }) |
| end |
| end |
| |
| rive_tools_project('player', 'RiveTool') |
| do |
| files({ 'player/player.cpp'}) |
| filter('system:emscripten') |
| do |
| files({ 'player/player.html' }) |
| end |
| |
| filter({ 'options:not no_tools_shader_hotloading' }) |
| do |
| files({RIVE_PLS_DIR .. '/shader_hotload/**.cpp' }) |
| end |
| end |