diff --git a/.rive_head b/.rive_head index b014ec4..2010db6 100644 --- a/.rive_head +++ b/.rive_head @@ -1 +1 @@ -e7142dcfedf6710265bd49fe031c26e663b37f99 +41554dc0986cfd84041f8e64988f5b61f92790c0 diff --git a/Config/Base.xcconfig b/Config/Base.xcconfig index 6502105..20378c3 100644 --- a/Config/Base.xcconfig +++ b/Config/Base.xcconfig @@ -9,5 +9,5 @@ // Configuration settings file format documentation can be found at: // https://developer.apple.com/documentation/xcode/adding-a-build-configuration-file-to-your-project -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) WITH_RIVE_AUDIO WITH_RIVE_TEXT -SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) WITH_RIVE_AUDIO WITH_RIVE_TEXT +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) WITH_RIVE_AUDIO WITH_RIVE_TEXT WITH_RIVE_SCRIPTING +SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) WITH_RIVE_AUDIO WITH_RIVE_TEXT WITH_RIVE_SCRIPTING diff --git a/Config/Catalyst.xcconfig b/Config/Catalyst.xcconfig index 4077a2f..a1593da 100644 --- a/Config/Catalyst.xcconfig +++ b/Config/Catalyst.xcconfig @@ -12,5 +12,5 @@ #include "Base.xcconfig" SUPPORTS_MACCATALYST=YES -OTHER_LDFLAGS[sdk=macosx*] = -lrive_maccatalyst -lrive_harfbuzz_maccatalyst -lrive_sheenbidi_maccatalyst -lrive_yoga_maccatalyst -lminiaudio_maccatalyst -lrive_pls_renderer_maccatalyst -lrive_cg_renderer_maccatalyst -lrive_decoders_maccatalyst -SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) WITH_RIVE_AUDIO WITH_RIVE_TEXT RIVE_MAC_CATALYST +OTHER_LDFLAGS[sdk=macosx*] = -lrive_maccatalyst -lrive_harfbuzz_maccatalyst -lrive_sheenbidi_maccatalyst -lrive_yoga_maccatalyst -lminiaudio_maccatalyst -lrive_pls_renderer_maccatalyst -lrive_cg_renderer_maccatalyst -lrive_decoders_maccatalyst -lluau_vm_maccatalyst +SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) WITH_RIVE_AUDIO WITH_RIVE_TEXT WITH_RIVE_SCRIPTING RIVE_MAC_CATALYST diff --git a/Config/macOS.xcconfig b/Config/macOS.xcconfig index 29f35c6..9244188 100644 --- a/Config/macOS.xcconfig +++ b/Config/macOS.xcconfig @@ -12,4 +12,4 @@ #include "Base.xcconfig" SUPPORTS_MACCATALYST=NO -OTHER_LDFLAGS[sdk=macosx*] = -lrive_macos -lrive_harfbuzz_macos -lrive_sheenbidi_macos -lrive_yoga_macos -lminiaudio_macos -lrive_pls_renderer_macos -lrive_cg_renderer_macos -lrive_decoders_macos +OTHER_LDFLAGS[sdk=macosx*] = -lrive_macos -lrive_harfbuzz_macos -lrive_sheenbidi_macos -lrive_yoga_macos -lminiaudio_macos -lrive_pls_renderer_macos -lrive_cg_renderer_macos -lrive_decoders_macos -lluau_vm_macos diff --git a/Example-iOS/Assets/blinko.riv b/Example-iOS/Assets/blinko.riv new file mode 100644 index 0000000..5cbde7e Binary files /dev/null and b/Example-iOS/Assets/blinko.riv differ diff --git a/Example-iOS/Assets/centaur_game.riv b/Example-iOS/Assets/centaur_game.riv deleted file mode 100644 index 522ed7f..0000000 Binary files a/Example-iOS/Assets/centaur_game.riv and /dev/null differ diff --git a/Example-iOS/RiveExample.xcodeproj/project.pbxproj b/Example-iOS/RiveExample.xcodeproj/project.pbxproj index 8216e33..5de5e3e 100644 --- a/Example-iOS/RiveExample.xcodeproj/project.pbxproj +++ b/Example-iOS/RiveExample.xcodeproj/project.pbxproj @@ -356,6 +356,14 @@ F2C852EB2CD17B8200F0D81F /* RiveRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04A8F6BD26452E10002C909A /* RiveRuntime.framework */; }; F2C852EC2CD17B8200F0D81F /* RiveRuntime.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 04A8F6BD26452E10002C909A /* RiveRuntime.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; F2C852F22CD19F6A00F0D81F /* marty.riv in Resources */ = {isa = PBXBuildFile; fileRef = 83C89ACE2988709400044C17 /* marty.riv */; }; + F2E2F2762F1176CD000F3E20 /* blinko.riv in Resources */ = {isa = PBXBuildFile; fileRef = F2E2F2752F1176CD000F3E20 /* blinko.riv */; }; + F2E2F2772F1176CD000F3E20 /* blinko.riv in Resources */ = {isa = PBXBuildFile; fileRef = F2E2F2752F1176CD000F3E20 /* blinko.riv */; }; + F2E2F2782F1176CD000F3E20 /* blinko.riv in Resources */ = {isa = PBXBuildFile; fileRef = F2E2F2752F1176CD000F3E20 /* blinko.riv */; }; + F2E2F2792F1176CD000F3E20 /* blinko.riv in Resources */ = {isa = PBXBuildFile; fileRef = F2E2F2752F1176CD000F3E20 /* blinko.riv */; }; + F2E2F2852F118819000F3E20 /* BlinkoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2E2F2842F118819000F3E20 /* BlinkoView.swift */; }; + F2E2F2862F118819000F3E20 /* BlinkoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2E2F2842F118819000F3E20 /* BlinkoView.swift */; }; + F2E2F2892F1188AC000F3E20 /* ExamplesMaster.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3357CA0280F42EC00F03B6F /* ExamplesMaster.swift */; }; + F2E2F28A2F1188AC000F3E20 /* ExamplesMaster.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3357CA0280F42EC00F03B6F /* ExamplesMaster.swift */; }; F8772AF02AD94A4400AB5920 /* marty.riv in Resources */ = {isa = PBXBuildFile; fileRef = 83C89ACE2988709400044C17 /* marty.riv */; }; F8772AF12AD94A4400AB5920 /* paper.riv in Resources */ = {isa = PBXBuildFile; fileRef = 83C89AD0298870A700044C17 /* paper.riv */; }; F8772AF22AD94A4400AB5920 /* Bear.riv in Resources */ = {isa = PBXBuildFile; fileRef = 83DE4CB42AB3974300B88B72 /* Bear.riv */; }; @@ -554,6 +562,8 @@ F2C852D52CD1772300F0D81F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; F2C852D72CD1772400F0D81F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; F2C852DA2CD1772400F0D81F /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + F2E2F2752F1176CD000F3E20 /* blinko.riv */ = {isa = PBXFileReference; lastKnownFileType = file; path = blinko.riv; sourceTree = ""; }; + F2E2F2842F118819000F3E20 /* BlinkoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlinkoView.swift; sourceTree = ""; }; F8DA7B442AF523A800FF3CBF /* DismissableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DismissableView.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -751,6 +761,7 @@ C3D187F8280770EA008B739A /* truck.riv */, C9BD3925263B5FC700696C37 /* truck_v7.riv */, 046AFA6E2673AF04004ED497 /* blendmodes.riv */, + F2E2F2752F1176CD000F3E20 /* blinko.riv */, ); path = Assets; sourceTree = ""; @@ -776,6 +787,7 @@ F2C623382C874E690006E0CA /* SwiftFallbackFonts.swift */, F259E5822D35B7FA00B78FEF /* DataBindingView.swift */, F2C291652DB6D599009A2918 /* RewardsView.swift */, + F2E2F2842F118819000F3E20 /* BlinkoView.swift */, ); path = SwiftUI; sourceTree = ""; @@ -1100,6 +1112,7 @@ 040553992B7A274B008F076A /* asset_load_check.riv in Resources */, 0405539A2B7A274B008F076A /* rbutton.riv in Resources */, 0405539B2B7A274B008F076A /* constrained.riv in Resources */, + F2E2F2762F1176CD000F3E20 /* blinko.riv in Resources */, 0405539C2B7A274B008F076A /* nothing.riv in Resources */, 0405539D2B7A274B008F076A /* artboard_animations.riv in Resources */, 0405539E2B7A274B008F076A /* testtext.riv in Resources */, @@ -1190,6 +1203,7 @@ 040554142B7A2858008F076A /* testanimation.riv in Resources */, 040554152B7A2858008F076A /* truck.riv in Resources */, 040554162B7A2858008F076A /* simple_assets.riv in Resources */, + F2E2F2782F1176CD000F3E20 /* blinko.riv in Resources */, 040554172B7A2858008F076A /* Preview Assets.xcassets in Resources */, 040554182B7A2858008F076A /* bullet_man_game.riv in Resources */, 040554192B7A2858008F076A /* ui_swipe_left_to_delete.riv in Resources */, @@ -1237,6 +1251,7 @@ E5B5C2192B238829006E57C8 /* asset_load_check.riv in Resources */, 04E51C512A151C230075E473 /* rbutton.riv in Resources */, 04E51C522A151C230075E473 /* constrained.riv in Resources */, + F2E2F2792F1176CD000F3E20 /* blinko.riv in Resources */, 04E51C532A151C230075E473 /* nothing.riv in Resources */, 04E51C542A151C230075E473 /* artboard_animations.riv in Resources */, E57798AC2A731C5800FF25C3 /* testtext.riv in Resources */, @@ -1327,6 +1342,7 @@ C3D187F9280770EA008B739A /* truck.riv in Resources */, 043026062B012C5000320F2E /* simple_assets.riv in Resources */, C9C73EA124FC471E00EF9516 /* Preview Assets.xcassets in Resources */, + F2E2F2772F1176CD000F3E20 /* blinko.riv in Resources */, C3E2B58A2833ECB500A8651B /* bullet_man_game.riv in Resources */, 042C88DD2644447500E7DBB2 /* ui_swipe_left_to_delete.riv in Resources */, 042C88E52644447500E7DBB2 /* explorer.riv in Resources */, @@ -1389,6 +1405,7 @@ 040553852B7A274B008F076A /* SwiftEvents.swift in Sources */, 040553862B7A274B008F076A /* Example__macOS_App.swift in Sources */, 040553882B7A274B008F076A /* DismissableView.swift in Sources */, + F2E2F2892F1188AC000F3E20 /* ExamplesMaster.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1430,6 +1447,7 @@ 040553ED2B7A2858008F076A /* SwiftSimpleAnimation.swift in Sources */, 040553EE2B7A2858008F076A /* SimpleOutOfBand.swift in Sources */, 040553EF2B7A2858008F076A /* SwiftTestText.swift in Sources */, + F2E2F2862F118819000F3E20 /* BlinkoView.swift in Sources */, 040553F02B7A2858008F076A /* SwiftStateMachine.swift in Sources */, 040553F12B7A2858008F076A /* DismissableView.swift in Sources */, 2E83910A2C050B0F003BCF2A /* SwiftNestedInputs.swift in Sources */, @@ -1444,6 +1462,7 @@ E5964AAC2A9CD49200140479 /* SwiftEvents.swift in Sources */, 04E51C362A151A1E0075E473 /* Example__macOS_App.swift in Sources */, F8DA7B462AF523A800FF3CBF /* DismissableView.swift in Sources */, + F2E2F28A2F1188AC000F3E20 /* ExamplesMaster.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1485,6 +1504,7 @@ 04026DC427CE3ED6002B3DBF /* SwiftSimpleAnimation.swift in Sources */, 0453FCB92B012DA9001185C8 /* SimpleOutOfBand.swift in Sources */, E57798A92A730A9B00FF25C3 /* SwiftTestText.swift in Sources */, + F2E2F2852F118819000F3E20 /* BlinkoView.swift in Sources */, 04026DCE27CE3F0F002B3DBF /* SwiftStateMachine.swift in Sources */, F8DA7B452AF523A800FF3CBF /* DismissableView.swift in Sources */, 2E83910B2C050B0F003BCF2A /* SwiftNestedInputs.swift in Sources */, diff --git a/Example-iOS/Source/Examples/SwiftUI/BlinkoView.swift b/Example-iOS/Source/Examples/SwiftUI/BlinkoView.swift new file mode 100644 index 0000000..cb8eb62 --- /dev/null +++ b/Example-iOS/Source/Examples/SwiftUI/BlinkoView.swift @@ -0,0 +1,24 @@ +// +// Blinko.swift +// RiveExample +// +// Created by David Skuza on 1/9/26. +// Copyright © 2026 Rive. All rights reserved. +// + +import SwiftUI +import RiveRuntime + +struct BlinkoView: DismissableView { + var dismiss: () -> Void = {} + + @StateObject var viewModel: RiveViewModel = { + let viewModel = RiveViewModel(fileName: "blinko") + viewModel.riveModel?.enableAutoBind { _ in } + return viewModel + }() + + var body: some View { + viewModel.view() + } +} diff --git a/Example-iOS/Source/ExamplesMaster.swift b/Example-iOS/Source/ExamplesMaster.swift index b6b131a..812757b 100644 --- a/Example-iOS/Source/ExamplesMaster.swift +++ b/Example-iOS/Source/ExamplesMaster.swift @@ -33,6 +33,7 @@ class ExamplesMasterTableViewController: UITableViewController { private lazy var swiftViews: [(String, AnyView)] = [ ("Data Binding", typeErased(dismissableView: DataBindingView())), ("Data Binding (Rewards)", typeErased(dismissableView: RewardsView())), + ("Blinko", typeErased(dismissableView: BlinkoView())), ("Touch Events!", typeErased(dismissableView: SwiftTouchEvents())), ("Widget Collection", typeErased(dismissableView: SwiftWidgets())), ("Animation Player", typeErased(dismissableView: SwiftSimpleAnimation())), diff --git a/RiveRuntime.xcodeproj/project.pbxproj b/RiveRuntime.xcodeproj/project.pbxproj index 5cd2d3e..300508c 100644 --- a/RiveRuntime.xcodeproj/project.pbxproj +++ b/RiveRuntime.xcodeproj/project.pbxproj @@ -91,7 +91,6 @@ E57798AB2A7310B700FF25C3 /* testtext.riv in Resources */ = {isa = PBXBuildFile; fileRef = E57798AA2A7310B700FF25C3 /* testtext.riv */; }; E5964A962A965A9300140479 /* RiveEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = E5964A952A965A9300140479 /* RiveEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; E5964A982A9697B600140479 /* RiveEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = E5964A972A9697B600140479 /* RiveEvent.mm */; }; - E599DCF92AAFA06100D1E49A /* rating_animation.riv in Resources */ = {isa = PBXBuildFile; fileRef = E599DCF82AAFA06100D1E49A /* rating_animation.riv */; }; E599DCFA2AAFA06100D1E49A /* rating_animation.riv in Resources */ = {isa = PBXBuildFile; fileRef = E599DCF82AAFA06100D1E49A /* rating_animation.riv */; }; F20808E22E05C3FF0082A281 /* View+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F20808E12E05C3FF0082A281 /* View+Extensions.swift */; }; F21C3D1B2DDFCD93005F82F4 /* RiveRenderImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F21C3D1A2DDFCD93005F82F4 /* RiveRenderImage+Extensions.swift */; }; @@ -694,7 +693,6 @@ buildActionMask = 2147483647; files = ( 2E54F23A2BE428990013016C /* PrivacyInfo.xcprivacy in Resources */, - E599DCF92AAFA06100D1E49A /* rating_animation.riv in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1015,6 +1013,7 @@ "-lrive_cg_renderer_appletvos", "-lrive_decoders_appletvos", "-lrive_webp_appletvos", + "-lluau_vm_appletvos", ); "OTHER_LDFLAGS[sdk=appletvsimulator*]" = ( "-lrive_appletvsimulator", @@ -1026,6 +1025,7 @@ "-lrive_cg_renderer_appletvsimulator", "-lrive_decoders_appletvsimulator", "-lrive_webp_appletvsimulator", + "-lluau_vm_appletvsimulator", ); "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-lrive", @@ -1036,6 +1036,7 @@ "-lrive_pls_renderer", "-lrive_cg_renderer", "-lrive_decoders", + "-lluau_vm", ); "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( "-lrive_sim", @@ -1046,6 +1047,7 @@ "-lrive_pls_renderer_sim", "-lrive_cg_renderer_sim", "-lrive_decoders_sim", + "-lluau_vm_sim", ); "OTHER_LDFLAGS[sdk=xros*]" = ( "-lrive_xros", @@ -1056,6 +1058,7 @@ "-lrive_pls_renderer_xros", "-lrive_cg_renderer_xros", "-lrive_decoders_xros", + "-lluau_vm_xros", ); "OTHER_LDFLAGS[sdk=xrsimulator*]" = ( "-lrive_xrsimulator", @@ -1066,6 +1069,7 @@ "-lrive_pls_renderer_xrsimulator", "-lrive_cg_renderer_xrsimulator", "-lrive_decoders_xrsimulator", + "-lluau_vm_xrsimulator", ); PRODUCT_BUNDLE_IDENTIFIER = rive.app.ios.runtime.RiveRuntime; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; @@ -1140,6 +1144,7 @@ "-lrive_cg_renderer_appletvos", "-lrive_decoders_appletvos", "-lrive_webp_appletvos", + "-lluau_vm_appletvos", ); "OTHER_LDFLAGS[sdk=appletvsimulator*]" = ( "-lrive_appletvsimulator", @@ -1151,6 +1156,7 @@ "-lrive_cg_renderer_appletvsimulator", "-lrive_decoders_appletvsimulator", "-lrive_webp_appletvsimulator", + "-lluau_vm_appletvsimulator", ); "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-lrive", @@ -1161,6 +1167,7 @@ "-lrive_pls_renderer", "-lrive_cg_renderer", "-lrive_decoders", + "-lluau_vm", ); "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( "-lrive_sim", @@ -1171,6 +1178,7 @@ "-lrive_pls_renderer_sim", "-lrive_cg_renderer_sim", "-lrive_decoders_sim", + "-lluau_vm_sim", ); "OTHER_LDFLAGS[sdk=xros*]" = ( "-lrive_xros", @@ -1181,6 +1189,7 @@ "-lrive_pls_renderer_xros", "-lrive_cg_renderer_xros", "-lrive_decoders_xros", + "-lluau_vm_xros", ); "OTHER_LDFLAGS[sdk=xrsimulator*]" = ( "-lrive_xrsimulator", @@ -1191,6 +1200,7 @@ "-lrive_pls_renderer_xrsimulator", "-lrive_cg_renderer_xrsimulator", "-lrive_decoders_xrsimulator", + "-lluau_vm_xrsimulator", ); PRODUCT_BUNDLE_IDENTIFIER = rive.app.ios.runtime.RiveRuntime; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; @@ -1385,6 +1395,7 @@ "-lrive_cg_renderer_appletvos", "-lrive_decoders_appletvos", "-lrive_webp_appletvos", + "-lluau_vm_appletvos", ); "OTHER_LDFLAGS[sdk=appletvsimulator*]" = ( "-lrive_appletvsimulator", @@ -1396,6 +1407,7 @@ "-lrive_cg_renderer_appletvsimulator", "-lrive_decoders_appletvsimulator", "-lrive_webp_appletvsimulator", + "-lluau_vm_appletvsimulator", ); "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-lrive", @@ -1406,6 +1418,7 @@ "-lrive_pls_renderer", "-lrive_cg_renderer", "-lrive_decoders", + "-lluau_vm", ); "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( "-lrive_sim", @@ -1416,6 +1429,7 @@ "-lrive_pls_renderer_sim", "-lrive_cg_renderer_sim", "-lrive_decoders_sim", + "-lluau_vm_sim", ); "OTHER_LDFLAGS[sdk=xros*]" = ( "-lrive_xros", @@ -1426,6 +1440,7 @@ "-lrive_pls_renderer_xros", "-lrive_cg_renderer_xros", "-lrive_decoders_xros", + "-lluau_vm_xros", ); "OTHER_LDFLAGS[sdk=xrsimulator*]" = ( "-lrive_xrsimulator", @@ -1436,6 +1451,7 @@ "-lrive_pls_renderer_xrsimulator", "-lrive_cg_renderer_xrsimulator", "-lrive_decoders_xrsimulator", + "-lluau_vm_xrsimulator", ); PRODUCT_BUNDLE_IDENTIFIER = rive.app.ios.runtime.RiveRuntime; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; @@ -1607,6 +1623,7 @@ "-lrive_cg_renderer_appletvos", "-lrive_decoders_appletvos", "-lrive_webp_appletvos", + "-lluau_vm_appletvos", ); "OTHER_LDFLAGS[sdk=appletvsimulator*]" = ( "-lrive_appletvsimulator", @@ -1618,6 +1635,7 @@ "-lrive_cg_renderer_appletvsimulator", "-lrive_decoders_appletvsimulator", "-lrive_webp_appletvsimulator", + "-lluau_vm_appletvsimulator", ); "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-lrive", @@ -1628,6 +1646,7 @@ "-lrive_pls_renderer", "-lrive_cg_renderer", "-lrive_decoders", + "-lluau_vm", ); "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( "-lrive_sim", @@ -1638,6 +1657,7 @@ "-lrive_pls_renderer_sim", "-lrive_cg_renderer_sim", "-lrive_decoders_sim", + "-lluau_vm_sim", ); "OTHER_LDFLAGS[sdk=xros*]" = ( "-lrive_xros", @@ -1648,6 +1668,7 @@ "-lrive_pls_renderer_xros", "-lrive_cg_renderer_xros", "-lrive_decoders_xros", + "-lluau_vm_xros", ); "OTHER_LDFLAGS[sdk=xrsimulator*]" = ( "-lrive_xrsimulator", @@ -1658,6 +1679,7 @@ "-lrive_pls_renderer_xrsimulator", "-lrive_cg_renderer_xrsimulator", "-lrive_decoders_xrsimulator", + "-lluau_vm_xrsimulator", ); PRODUCT_BUNDLE_IDENTIFIER = rive.app.ios.runtime.RiveRuntime; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; diff --git a/scripts/build.rive.sh b/scripts/build.rive.sh index eab4a54..488aa9b 100755 --- a/scripts/build.rive.sh +++ b/scripts/build.rive.sh @@ -19,6 +19,7 @@ fi NO_AUDIO=false NO_TEXT=false +NO_SCRIPTING=false PLATFORM="" CONFIG="" @@ -32,6 +33,10 @@ while [[ $# -gt 0 ]]; do NO_TEXT=true shift ;; + --no-scripting) + NO_SCRIPTING=true + shift + ;; all|macosx|ios|ios_sim|xros|xrsimulator|appletvos|appletvsimulator|maccatalyst) PLATFORM="$1" shift @@ -57,7 +62,12 @@ if [ "$NO_TEXT" = false ]; then RIVE_PREMAKE_ARGS="$RIVE_PREMAKE_ARGS --with_rive_text" fi -# Handle preprocessor definitions for audio and text +# Add scripting flag to RIVE_PREMAKE_ARGS if --no-scripting is not passed +if [ "$NO_SCRIPTING" = false ]; then + RIVE_PREMAKE_ARGS="$RIVE_PREMAKE_ARGS --with_rive_scripting" +fi + +# Handle preprocessor definitions for audio, text, and scripting # Build the definitions string DEFINITIONS="" if [ "$NO_AUDIO" = false ]; then @@ -66,6 +76,9 @@ fi if [ "$NO_TEXT" = false ]; then DEFINITIONS="$DEFINITIONS WITH_RIVE_TEXT" fi +if [ "$NO_SCRIPTING" = false ]; then + DEFINITIONS="$DEFINITIONS WITH_RIVE_SCRIPTING" +fi # Set the preprocessor definitions line if [ -n "$DEFINITIONS" ]; then @@ -109,6 +122,7 @@ build_runtime() { cp -r out/ios_universal_$1/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sheenbidi.a cp -r out/ios_universal_$1/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/$1/libminiaudio.a cp -r out/ios_universal_$1/librive.a $DEV_SCRIPT_DIR/../dependencies/$1/librive.a + cp -r out/ios_universal_$1/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/$1/libluau_vm.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -148,6 +162,7 @@ build_runtime_sim() { cp -r out/iossim_universal_$1/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sheenbidi_sim.a cp -r out/iossim_universal_$1/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/$1/libminiaudio_sim.a cp -r out/iossim_universal_$1/librive.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sim.a + cp -r out/iossim_universal_$1/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/$1/libluau_vm_sim.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -188,6 +203,7 @@ build_runtime_macosx() { cp -r out/universal_$1/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sheenbidi_macos.a cp -r out/universal_$1/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/$1/libminiaudio_macos.a cp -r out/universal_$1/librive.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_macos.a + cp -r out/universal_$1/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/$1/libluau_vm_macos.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -227,6 +243,7 @@ build_runtime_xros() { cp -r out/xros_$1/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sheenbidi_xros.a cp -r out/xros_$1/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/$1/libminiaudio_xros.a cp -r out/xros_$1/librive.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_xros.a + cp -r out/xros_$1/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/$1/libluau_vm_xros.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -266,6 +283,7 @@ build_runtime_xrsimulator() { cp -r out/xrsimulator_universal_$1/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sheenbidi_xrsimulator.a cp -r out/xrsimulator_universal_$1/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/$1/libminiaudio_xrsimulator.a cp -r out/xrsimulator_universal_$1/librive.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_xrsimulator.a + cp -r out/xrsimulator_universal_$1/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/$1/libluau_vm_xrsimulator.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -305,6 +323,7 @@ build_runtime_appletvos() { cp -r out/appletvos_$1/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sheenbidi_appletvos.a cp -r out/appletvos_$1/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/$1/libminiaudio_appletvos.a cp -r out/appletvos_$1/librive.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_appletvos.a + cp -r out/appletvos_$1/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/$1/libluau_vm_appletvos.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -345,6 +364,7 @@ build_runtime_appletvsimulator() { cp -r out/appletvsimulator_universal_$1/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_sheenbidi_appletvsimulator.a cp -r out/appletvsimulator_universal_$1/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/$1/libminiaudio_appletvsimulator.a cp -r out/appletvsimulator_universal_$1/librive.a $DEV_SCRIPT_DIR/../dependencies/$1/librive_appletvsimulator.a + cp -r out/appletvsimulator_universal_$1/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/$1/libluau_vm_appletvsimulator.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -391,6 +411,7 @@ build_runtime_maccatalyst() { cp -r out/maccatalyst_${arch}_${config}/librive_sheenbidi.a $DEV_SCRIPT_DIR/../dependencies/${config}/librive_sheenbidi_maccatalyst_${arch}.a cp -r out/maccatalyst_${arch}_${config}/libminiaudio.a $DEV_SCRIPT_DIR/../dependencies/${config}/libminiaudio_maccatalyst_${arch}.a cp -r out/maccatalyst_${arch}_${config}/librive.a $DEV_SCRIPT_DIR/../dependencies/${config}/librive_maccatalyst_${arch}.a + cp -r out/maccatalyst_${arch}_${config}/libluau_vm.a $DEV_SCRIPT_DIR/../dependencies/${config}/libluau_vm_maccatalyst_${arch}.a cp -r $RIVE_RUNTIME_DIR/include $DEV_SCRIPT_DIR/../dependencies/includes/rive # Build rive_cg_renderer. @@ -434,6 +455,7 @@ build_runtime_maccatalyst() { "librive_cg_renderer_maccatalyst" "librive_pls_renderer_maccatalyst" "librive_decoders_maccatalyst" + "libluau_vm_maccatalyst" ) # Create universal binaries for each library