@@ -6,6 +6,18 @@ set(IPLUG2_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../iPlug2 CACHE PATH "iPlug2 root dir
66include (${IPLUG2_DIR} /iPlug2.cmake )
77find_package (iPlug2 REQUIRED )
88
9+ # IGraphics backend selection (NANOVG or SKIA)
10+ set (IGRAPHICS_BACKEND "NANOVG" CACHE STRING "IGraphics drawing backend (NANOVG or SKIA)" )
11+ set_property (CACHE IGRAPHICS_BACKEND PROPERTY STRINGS "NANOVG" "SKIA" )
12+
13+ # Set the IGraphics library based on backend selection
14+ if (IGRAPHICS_BACKEND STREQUAL "SKIA" )
15+ set (IGRAPHICS_LIB iPlug2::IGraphics::Skia::Metal)
16+ else ()
17+ set (IGRAPHICS_LIB iPlug2::IGraphics::NanoVG::Metal)
18+ endif ()
19+ message (STATUS "IGraphics backend: ${IGRAPHICS_BACKEND} -> ${IGRAPHICS_LIB} " )
20+
921set (PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR} )
1022set (PLUG_RESOURCES_DIR ${PROJECT_DIR} /resources)
1123
@@ -42,7 +54,7 @@ if(NOT IOS AND NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
4254 # ============================================================================
4355 add_executable (${PROJECT_NAME} -app ${SOURCE_FILES} )
4456 iplug_add_target (${PROJECT_NAME} -app PUBLIC
45- LINK iPlug2::APP iPlug2::IGraphics::NanoVG::Metal _${PROJECT_NAME}-base
57+ LINK iPlug2::APP ${IGRAPHICS_LIB} _${PROJECT_NAME}-base
4658 RESOURCE ${RESOURCES}
4759 )
4860 iplug_configure_target (${PROJECT_NAME} -app APP ${PROJECT_NAME} )
@@ -58,7 +70,7 @@ if(NOT IOS AND NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
5870 # ============================================================================
5971 add_library (${PROJECT_NAME} -vst3 MODULE ${SOURCE_FILES} )
6072 iplug_add_target (${PROJECT_NAME} -vst3 PUBLIC
61- LINK iPlug2::VST3 iPlug2::IGraphics::NanoVG::Metal _${PROJECT_NAME}-base
73+ LINK iPlug2::VST3 ${IGRAPHICS_LIB} _${PROJECT_NAME}-base
6274 )
6375 iplug_configure_target (${PROJECT_NAME} -vst3 VST3 ${PROJECT_NAME} )
6476 iplug_add_plugin_resources (${PROJECT_NAME} -vst3 )
@@ -68,7 +80,7 @@ if(NOT IOS AND NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
6880 # ============================================================================
6981 add_library (${PROJECT_NAME} -clap MODULE ${SOURCE_FILES} )
7082 iplug_add_target (${PROJECT_NAME} -clap PUBLIC
71- LINK iPlug2::CLAP iPlug2::IGraphics::NanoVG::Metal _${PROJECT_NAME}-base
83+ LINK iPlug2::CLAP ${IGRAPHICS_LIB} _${PROJECT_NAME}-base
7284 )
7385 iplug_configure_target (${PROJECT_NAME} -clap CLAP ${PROJECT_NAME} )
7486 iplug_add_plugin_resources (${PROJECT_NAME} -clap )
@@ -80,7 +92,7 @@ endif()
8092if (APPLE AND NOT IOS )
8193 add_library (${PROJECT_NAME} -au MODULE ${SOURCE_FILES} )
8294 iplug_add_target (${PROJECT_NAME} -au PUBLIC
83- LINK iPlug2::AUv2 iPlug2::IGraphics::NanoVG::Metal _${PROJECT_NAME}-base
95+ LINK iPlug2::AUv2 ${IGRAPHICS_LIB} _${PROJECT_NAME}-base
8496 )
8597 iplug_configure_target (${PROJECT_NAME} -au AUv2 ${PROJECT_NAME} )
8698 iplug_add_plugin_resources (${PROJECT_NAME} -au )
@@ -93,7 +105,7 @@ if(APPLE AND NOT IOS)
93105 # Framework containing AUv3 plugin code
94106 add_library (${PROJECT_NAME} AU-framework SHARED ${SOURCE_FILES} )
95107 iplug_add_target (${PROJECT_NAME} AU-framework PUBLIC
96- LINK iPlug2::AUv3 iPlug2::IGraphics::NanoVG::Metal _${PROJECT_NAME}-base
108+ LINK iPlug2::AUv3 ${IGRAPHICS_LIB} _${PROJECT_NAME}-base
97109 )
98110 iplug_configure_target (${PROJECT_NAME} AU-framework AUv3Framework ${PROJECT_NAME} )
99111 iplug_add_plugin_resources (${PROJECT_NAME} AU-framework )
@@ -115,7 +127,7 @@ if(IOS)
115127 # iOS AUv3 Framework containing plugin code
116128 add_library (${PROJECT_NAME} AU-ios-framework SHARED ${SOURCE_FILES} )
117129 iplug_add_target (${PROJECT_NAME} AU-ios-framework PUBLIC
118- LINK iPlug2::AUv3iOS iPlug2::IGraphics::NanoVG::Metal _${PROJECT_NAME}-base
130+ LINK iPlug2::AUv3iOS ${IGRAPHICS_LIB} _${PROJECT_NAME}-base
119131 )
120132 iplug_configure_target (${PROJECT_NAME} AU-ios-framework AUv3iOSFramework ${PROJECT_NAME} )
121133 iplug_add_plugin_resources (${PROJECT_NAME} AU-ios-framework )
@@ -129,7 +141,7 @@ if(IOS)
129141 # iOS Standalone App that hosts the AUv3 for testing
130142 add_executable (${PROJECT_NAME} -ios-app ${SOURCE_FILES} )
131143 iplug_add_target (${PROJECT_NAME} -ios-app PUBLIC
132- LINK iPlug2::AUv3iOS iPlug2::IGraphics::NanoVG::Metal _${PROJECT_NAME}-base
144+ LINK iPlug2::AUv3iOS ${IGRAPHICS_LIB} _${PROJECT_NAME}-base
133145 )
134146 iplug_configure_target (${PROJECT_NAME} -ios-app IOSApp ${PROJECT_NAME} )
135147 iplug_add_plugin_resources (${PROJECT_NAME} -ios-app )
0 commit comments