Skip to content

Commit 0a363ce

Browse files
committed
IGRAPHICS_BACKEND
1 parent f9397cb commit 0a363ce

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

TemplateProject/CMakeLists.txt

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ set(IPLUG2_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../iPlug2 CACHE PATH "iPlug2 root dir
66
include(${IPLUG2_DIR}/iPlug2.cmake)
77
find_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+
921
set(PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
1022
set(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()
8092
if(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

Comments
 (0)