Add static/dynamic runtime config based on actual target config.

Based on chat with Matt from geotech.

Diffs=
335a30588 Add static/dynamic runtime config based on actual target config. (#7184)

Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index ceeb57a..2ffd0ca 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-8db7cac50c53ab10838da0cd80c869917c51c72a
+335a30588e5052375d6245e65c3c0a64864d486e
diff --git a/build/rive_build_config.lua b/build/rive_build_config.lua
index 84993ee..dfeaab4 100644
--- a/build/rive_build_config.lua
+++ b/build/rive_build_config.lua
@@ -131,30 +131,41 @@
 end
 
 newoption({
-    trigger = 'use_default_runtime',
-    description = 'Don\'t set windows static runtime and runtime values.',
-})
-
-newoption({
-    trigger = 'runtime',
+    trigger = 'windows_runtime',
     description = 'Choose whether to use staticruntime on/off/default',
     allowed = {
         { 'default', 'Use default runtime' },
         { 'static', 'Use static runtime' },
         { 'dynamic', 'Use dynamic runtime' },
     },
-    default = 'static',
+    default = 'default',
 })
 
-filter({ 'system:windows', 'options:runtime=static' })
+-- This is just to match our old windows config. Gamekit specifically sets
+-- static/dynamic and maybe we should do the same elsewhere.
+filter({ 'system:windows', 'options:windows_runtime=default' })
 do
     staticruntime('on') -- Match Skia's /MT flag for link compatibility
-    runtime('Release') -- Use /MT even in debug (/MTd is incompatible with Skia)
+    runtime('Release')
 end
 
-filter({ 'system:windows', 'options:runtime=dynamic' })
+filter({ 'system:windows', 'options:windows_runtime=static' })
+do
+    staticruntime('on') -- Match Skia's /MT flag for link compatibility
+end
+
+filter({ 'system:windows', 'options:windows_runtime=dynamic' })
 do
     staticruntime('off')
+end
+
+filter({ 'system:windows', 'options:not windows_runtime=default', 'options:config=debug' })
+do
+    runtime('Debug')
+end
+
+filter({ 'system:windows', 'options:not windows_runtime=default', 'options:config=release' })
+do
     runtime('Release')
 end
 
diff --git a/dependencies/premake5_harfbuzz_v2.lua b/dependencies/premake5_harfbuzz_v2.lua
index 183c378..2114f7c 100644
--- a/dependencies/premake5_harfbuzz_v2.lua
+++ b/dependencies/premake5_harfbuzz_v2.lua
@@ -1,7 +1,7 @@
 dofile('rive_build_config.lua')
 
 local dependency = require('dependency')
-harfbuzz = dependency.github('rive-app/harfbuzz', 'rive_8.3.0')
+harfbuzz = dependency.github('rive-app/harfbuzz', 'rive_8.4.0')
 
 newoption({
     trigger = 'no-harfbuzz-renames',
@@ -225,6 +225,7 @@
     warnings('Off')
 
     defines({
+        'HB_ONLY_ONE_SHAPER', -- added this for Geotech Mac multi-module issue: https://github.com/rive-app/rive-cpp/issues/369
         'HAVE_OT',
         'HB_NO_FALLBACK_SHAPE',
         'HB_NO_WIN1256',
diff --git a/dependencies/rive_png_renames.h b/dependencies/rive_png_renames.h
index 5a15fb0..5122b8c 100644
--- a/dependencies/rive_png_renames.h
+++ b/dependencies/rive_png_renames.h
@@ -2,6 +2,8 @@
 #define RIVE_PNG_RENAMES_H
 #define PNGPREFIX_H
 #define PNG_PREFIX rive_
+#define png_image_write_to_memory rive_png_image_write_to_memory
+#define png_check_keyword rive_png_check_keyword
 #define png_sRGB_table rive_png_sRGB_table
 #define png_sRGB_base rive_png_sRGB_base
 #define png_sRGB_delta rive_png_sRGB_delta