Skip to content

Commit c1deedd

Browse files
authored
Merge branch 'main' into dev/fix_combobox_popup_menu
2 parents 9d9bbc1 + a572487 commit c1deedd

6 files changed

Lines changed: 339 additions & 5 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,15 +135,15 @@ YUP is usable for experimentation, examples, prototypes, and contributors who ar
135135
| | **CLAP** | **VST3** | **VST2** | **AUv3** | **AUv2** | **AAX** | **LV2** |
136136
|--------------------------|:------------------:|:------------------:|:------------------:|:------------------:|:-------------------------:|:---------------------:|:---------------------:|
137137
| **Windows** | :white_check_mark: | :construction: | | | | | |
138-
| **macOS** | :white_check_mark: | :construction: | | | :construction: | | |
138+
| **macOS** | :white_check_mark: | :white_check_mark: | | | :white_check_mark: | | |
139139
| **Linux** | :construction: | :construction: | | | | | |
140140

141141

142142
## Supported Plugin Hosting Formats
143143
| | **CLAP** | **VST3** | **VST2** | **AUv3** | **AUv2** | **AAX** | **LV2** |
144144
|--------------------------|:------------------:|:------------------:|:------------------:|:------------------:|:-------------------------:|:---------------------:|:---------------------:|
145145
| **Windows** | :construction: | :construction: | | | | | |
146-
| **macOS** | :construction: | :white_check_mark: | | | :white_check_mark: | | |
146+
| **macOS** | :white_check_mark: | :white_check_mark: | | | :white_check_mark: | | |
147147
| **Linux** | :construction: | :construction: | | | | | |
148148

149149

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
==============================================================================
3+
4+
This file is part of the YUP library.
5+
Copyright (c) 2026 - kunitoki@gmail.com
6+
7+
YUP is an open source library subject to open-source licensing.
8+
9+
The code included in this file is provided under the terms of the ISC license
10+
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
11+
to use, copy, modify, and/or distribute this software for any purpose with or
12+
without fee is hereby granted provided that the above copyright notice and
13+
this permission notice appear in all copies.
14+
15+
YUP IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
16+
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
17+
DISCLAIMED.
18+
19+
==============================================================================
20+
*/
21+
22+
#ifndef @YupPluginPrefix@_YUP_SDL_SYMBOLS_PATCH_H
23+
#define @YupPluginPrefix@_YUP_SDL_SYMBOLS_PATCH_H
24+
25+
// SDL is linked statically into plugin bundles, so its Objective-C runtime
26+
// classes must be private to the plugin image.
27+
#define Cocoa_WindowListener @YupPluginPrefix@_YupPlugin_Cocoa_WindowListener
28+
#define METAL_RenderData @YupPluginPrefix@_YupPlugin_METAL_RenderData
29+
#define METAL_TextureData @YupPluginPrefix@_YupPlugin_METAL_TextureData
30+
#define SDLEAGLContext @YupPluginPrefix@_YupPlugin_SDLEAGLContext
31+
#define SDLOpenGLContext @YupPluginPrefix@_YupPlugin_SDLOpenGLContext
32+
#define SDLApplication @YupPluginPrefix@_YupPlugin_SDLApplication
33+
#define SDLAppDelegate @YupPluginPrefix@_YupPlugin_SDLAppDelegate
34+
#define SDLInterruptionListener @YupPluginPrefix@_YupPlugin_SDLInterruptionListener
35+
#define SDLLaunchScreenController @YupPluginPrefix@_YupPlugin_SDLLaunchScreenController
36+
#define SDLLaunchStoryboardViewController @YupPluginPrefix@_YupPlugin_SDLLaunchStoryboardViewController
37+
#define SDLMessageBoxPresenter @YupPluginPrefix@_YupPlugin_SDLMessageBoxPresenter
38+
#define SDLTranslatorResponder @YupPluginPrefix@_YupPlugin_SDLTranslatorResponder
39+
#define SDLView @YupPluginPrefix@_YupPlugin_SDLView
40+
#define SDLWindow @YupPluginPrefix@_YupPlugin_SDLWindow
41+
#define SDL_CocoaClosure @YupPluginPrefix@_YupPlugin_SDL_CocoaClosure
42+
#define SDL_DisplayData @YupPluginPrefix@_YupPlugin_SDL_DisplayData
43+
#define SDL_DisplayModeData @YupPluginPrefix@_YupPlugin_SDL_DisplayModeData
44+
#define SDL_DisplayWatch @YupPluginPrefix@_YupPlugin_SDL_DisplayWatch
45+
#define SDL_LifecycleObserver @YupPluginPrefix@_YupPlugin_SDL_LifecycleObserver
46+
#define SDL_RumbleContext @YupPluginPrefix@_YupPlugin_SDL_RumbleContext
47+
#define SDL_RumbleMotor @YupPluginPrefix@_YupPlugin_SDL_RumbleMotor
48+
#define SDL_ShapeData @YupPluginPrefix@_YupPlugin_SDL_ShapeData
49+
#define SDL_VideoData @YupPluginPrefix@_YupPlugin_SDL_VideoData
50+
#define SDL_WindowData @YupPluginPrefix@_YupPlugin_SDL_WindowData
51+
#define SDL_cocoametalview @YupPluginPrefix@_YupPlugin_SDL_cocoametalview
52+
#define SDL_uikitmetalview @YupPluginPrefix@_YupPlugin_SDL_uikitmetalview
53+
#define SDL_uikitopenglview @YupPluginPrefix@_YupPlugin_SDL_uikitopenglview
54+
#define SDL_uikitview @YupPluginPrefix@_YupPlugin_SDL_uikitview
55+
#define SDL_uikitviewcontroller @YupPluginPrefix@_YupPlugin_SDL_uikitviewcontroller
56+
#define SDL_uikitwindow @YupPluginPrefix@_YupPlugin_SDL_uikitwindow
57+
#define SDLUIKitDelegate @YupPluginPrefix@_YupPlugin_SDLUIKitDelegate
58+
#define SDLUITextField @YupPluginPrefix@_YupPlugin_SDLUITextField
59+
60+
#define HIDBLEDevice @YupPluginPrefix@_YupPlugin_HIDBLEDevice
61+
#define HIDBLEManager @YupPluginPrefix@_YupPlugin_HIDBLEManager
62+
63+
#endif // @YupPluginPrefix@_YUP_SDL_SYMBOLS_PATCH_H

cmake/yup.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,10 @@ _yup_setup_platform()
9494
include (${CMAKE_CURRENT_LIST_DIR}/yup_utilities.cmake)
9595
include (${CMAKE_CURRENT_LIST_DIR}/yup_dependencies.cmake)
9696
include (${CMAKE_CURRENT_LIST_DIR}/yup_modules.cmake)
97+
include (${CMAKE_CURRENT_LIST_DIR}/yup_codesign.cmake)
98+
include (${CMAKE_CURRENT_LIST_DIR}/yup_sdl.cmake)
9799
include (${CMAKE_CURRENT_LIST_DIR}/yup_standalone.cmake)
98100
include (${CMAKE_CURRENT_LIST_DIR}/yup_pluginval.cmake)
99-
include (${CMAKE_CURRENT_LIST_DIR}/yup_codesign.cmake)
100101
include (${CMAKE_CURRENT_LIST_DIR}/yup_audio_plugin.cmake)
101102
include (${CMAKE_CURRENT_LIST_DIR}/yup_embed_binary.cmake)
102103
include (${CMAKE_CURRENT_LIST_DIR}/yup_python.cmake)

cmake/yup_audio_plugin.cmake

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ function (yup_audio_plugin)
108108
# ==== Find dependencies
109109
include (FetchContent)
110110
_yup_fetch_sdl2()
111-
list (APPEND additional_libraries sdl2::sdl2)
112111

113112
_yup_target_list_contains ("${YUP_ARG_MODULES}" yup_audio_plugin_host has_audio_plugin_host)
114113
if (has_audio_plugin_host)
@@ -146,12 +145,18 @@ function (yup_audio_plugin)
146145
YUP_AUDIO_PLUGIN_ENABLE_CLAP=1
147146
YUP_STANDALONE_APPLICATION=0)
148147

148+
_yup_sdl_configure_symbols_patch ("${target_name}_clap_plugin" clap_sdl_symbols_patch_target clap_sdl_symbols_sdl_target)
149+
set (clap_plugin_bundle_libraries
150+
${clap_sdl_symbols_sdl_target}
151+
${clap_sdl_symbols_patch_target})
152+
149153
target_link_libraries (${target_name}_clap_plugin PRIVATE
150154
${target_name}_shared
151155
yup_audio_plugin_client
152156
clap
153157
${target_name}_clap
154158
${additional_libraries}
159+
${clap_plugin_bundle_libraries}
155160
${YUP_ARG_MODULES})
156161

157162
_yup_module_apply_arc_to_target_sources (${target_name}_clap_plugin
@@ -160,6 +165,7 @@ function (yup_audio_plugin)
160165
clap
161166
${target_name}_clap
162167
${additional_libraries}
168+
${clap_plugin_bundle_libraries}
163169
${YUP_ARG_MODULES})
164170

165171
set_target_properties (${target_name}_clap_plugin PROPERTIES
@@ -233,12 +239,18 @@ function (yup_audio_plugin)
233239
YUP_AUDIO_PLUGIN_ENABLE_VST3=1
234240
YUP_STANDALONE_APPLICATION=0)
235241

242+
_yup_sdl_configure_symbols_patch ("${target_name}_vst3_plugin" vst3_sdl_symbols_patch_target vst3_sdl_symbols_sdl_target)
243+
set (vst3_plugin_bundle_libraries
244+
${vst3_sdl_symbols_sdl_target}
245+
${vst3_sdl_symbols_patch_target})
246+
236247
target_link_libraries (${target_name}_vst3_plugin PRIVATE
237248
${target_name}_shared
238249
yup_audio_plugin_client
239250
sdk
240251
${target_name}_vst3
241252
${additional_libraries}
253+
${vst3_plugin_bundle_libraries}
242254
${YUP_ARG_MODULES})
243255

244256
_yup_module_apply_arc_to_target_sources (${target_name}_vst3_plugin
@@ -247,6 +259,7 @@ function (yup_audio_plugin)
247259
sdk
248260
${target_name}_vst3
249261
${additional_libraries}
262+
${vst3_plugin_bundle_libraries}
250263
${YUP_ARG_MODULES})
251264

252265
set_target_properties (${target_name}_vst3_plugin PROPERTIES
@@ -375,12 +388,18 @@ function (yup_audio_plugin)
375388
YUP_AUDIO_PLUGIN_ENABLE_AU=1
376389
YUP_STANDALONE_APPLICATION=0)
377390

391+
_yup_sdl_configure_symbols_patch ("${target_name}_au_plugin" au_sdl_symbols_patch_target au_sdl_symbols_sdl_target)
392+
set (au_plugin_bundle_libraries
393+
${au_sdl_symbols_sdl_target}
394+
${au_sdl_symbols_patch_target})
395+
378396
target_link_libraries (${target_name}_au_plugin PRIVATE
379397
${target_name}_shared
380398
yup_audio_plugin_client
381399
base-sdk-auv2
382400
${target_name}_au
383401
${additional_libraries}
402+
${au_plugin_bundle_libraries}
384403
${YUP_ARG_MODULES}
385404
"-framework AudioUnit"
386405
"-framework AudioToolbox"
@@ -394,6 +413,7 @@ function (yup_audio_plugin)
394413
base-sdk-auv2
395414
${target_name}_au
396415
${additional_libraries}
416+
${au_plugin_bundle_libraries}
397417
${YUP_ARG_MODULES})
398418

399419
# Generate the AU Info.plist from our template

cmake/yup_dependencies.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ function (_yup_fetch_sdl2)
6060
FetchContent_MakeAvailable (SDL2)
6161

6262
if (APPLE)
63-
target_compile_options (SDL2-static PRIVATE -Wno-deprecated-declarations)
63+
target_compile_options (SDL2-static PRIVATE
64+
-Wno-deprecated-declarations
65+
-Wno-gnu-folding-constant)
6466
endif()
6567

6668
set_target_properties (SDL2-static PROPERTIES

0 commit comments

Comments
 (0)