@@ -15,7 +15,12 @@ if(NOT TARGET_PLATFORM)
1515 message (FATAL_ERROR "TARGET_PLATFORM must be supplied as a CMake variable or environment variable" )
1616endif ()
1717
18- if (${TARGET_PLATFORM} MATCHES "macos" )
18+ set (WITH_METAL FALSE )
19+ if (TARGET_PLATFORM MATCHES "macos" )
20+ set (WITH_METAL TRUE )
21+ endif ()
22+
23+ if (WITH_METAL)
1924 enable_language (OBJCXX)
2025endif ()
2126
@@ -109,8 +114,10 @@ add_executable(viewer
109114 "${VIEWER_SHADER_SOURCE} "
110115)
111116
112- if (WITH_VULKAN )
117+ if (WITH_METAL )
113118 target_compile_definitions (viewer PRIVATE DM_GRAPHICS_USE_VULKAN)
119+ elseif (WITH_VULKAN)
120+ target_compile_definitions (viewer PRIVATE DM_GRAPHICS_USE_METAL)
114121else ()
115122 target_compile_definitions (viewer PRIVATE DM_GRAPHICS_USE_OPENGL)
116123endif ()
@@ -120,7 +127,7 @@ file(GLOB RIVE_COMMON_SRC
120127 "${EXTENSION_ROOT} /defold-rive/commonsrc/renderer/renderer_private.cpp"
121128)
122129
123- if (${TARGET_PLATFORM} MATCHES "macos" )
130+ if (WITH_METAL )
124131 list (APPEND RIVE_COMMON_SRC "${EXTENSION_ROOT} /defold-rive/commonsrc/renderer/renderer_context_metal.mm" )
125132elseif (WITH_VULKAN)
126133 list (APPEND RIVE_COMMON_SRC "${EXTENSION_ROOT} /defold-rive/commonsrc/renderer/renderer_context_vulkan.cpp" )
@@ -221,7 +228,7 @@ if(${TARGET_PLATFORM} MATCHES "win32")
221228endif ()
222229
223230set (GRAPHICS_LIBS)
224- if (${TARGET_PLATFORM} MATCHES "macos" )
231+ if (WITH_METAL )
225232 # macOS viewer uses the Metal renderer path, backed by Defold's Vulkan bridge.
226233 list (APPEND GRAPHICS_LIBS
227234 graphics_vulkan
@@ -235,7 +242,7 @@ set(TARGET_LIBS
235242 ${GRAPHICS_LIBS}
236243 ${RIVE_RUNTIME_LIBS} )
237244
238- if (${TARGET_PLATFORM} MATCHES "macos" )
245+ if (WITH_METAL )
239246 file (GLOB RIVE_COMMON_OBJCXX_SRC
240247 "${EXTENSION_ROOT} /defold-rive/commonsrc/renderer/*.mm"
241248 )
0 commit comments