DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 982f27632ceab5af9d81ac37e952118ca9e800ea
parent cac6646370b6f83366c8289789f078733a14753a
Author: falkTX <falktx@falktx.com>
Date:   Thu,  2 Jun 2022 13:44:41 +0100

Give up on fancy macOS namespace

Signed-off-by: falkTX <falktx@falktx.com>

Diffstat:
Mcmake/DPF-plugin.cmake | 25+++++++++----------------
Mdgl/src/pugl.cpp | 10+++++++---
Mdistrho/DistrhoUI_macOS.mm | 21+++------------------
Mdistrho/src/DistrhoUI.cpp | 1-
4 files changed, 19 insertions(+), 38 deletions(-)

diff --git a/cmake/DPF-plugin.cmake b/cmake/DPF-plugin.cmake @@ -142,7 +142,7 @@ function(dpf_add_plugin NAME) if((NOT WIN32) AND (NOT APPLE) AND (NOT HAIKU)) target_link_libraries("${NAME}-ui" PRIVATE "dl") endif() - # add the files containing Objective-C classes, recompiled under namespace + # add the files containing Objective-C classes dpf__add_plugin_specific_ui_sources("${NAME}-ui") else() add_library("${NAME}-ui" INTERFACE) @@ -468,9 +468,9 @@ function(dpf__add_dgl_cairo) if(NOT APPLE) target_sources(dgl-cairo PRIVATE "${DPF_ROOT_DIR}/dgl/src/pugl.cpp") - else() # Note: macOS pugl will be built as part of DistrhoUI_macOS.mm - #target_sources(dgl-opengl PRIVATE - # "${DPF_ROOT_DIR}/dgl/src/pugl.mm") + else() + target_sources(dgl-opengl PRIVATE + "${DPF_ROOT_DIR}/dgl/src/pugl.mm") endif() target_include_directories(dgl-cairo PUBLIC "${DPF_ROOT_DIR}/dgl") @@ -530,9 +530,9 @@ function(dpf__add_dgl_opengl) if(NOT APPLE) target_sources(dgl-opengl PRIVATE "${DPF_ROOT_DIR}/dgl/src/pugl.cpp") - else() # Note: macOS pugl will be built as part of DistrhoUI_macOS.mm - #target_sources(dgl-opengl PRIVATE - # "${DPF_ROOT_DIR}/dgl/src/pugl.mm") + else() + target_sources(dgl-opengl PRIVATE + "${DPF_ROOT_DIR}/dgl/src/pugl.mm") endif() target_include_directories(dgl-opengl PUBLIC "${DPF_ROOT_DIR}/dgl") @@ -556,19 +556,12 @@ endfunction() # dpf__add_plugin_specific_ui_sources # ------------------------------------------------------------------------------ # -# Compile plugin-specific UI sources into the target designated by the given -# name. There are some special considerations here: -# - On most platforms, sources can be compiled only once, as part of DGL; -# - On macOS, for any sources which define Objective-C interfaces, these must -# be recompiled for each plugin under a unique namespace. In this case, the -# name must be a plugin-specific identifier, and it will be used for computing -# the unique ID along with the project version. +# Compile system specific files, for now it is just Objective-C code +# function(dpf__add_plugin_specific_ui_sources NAME) if(APPLE) target_sources("${NAME}" PRIVATE "${DPF_ROOT_DIR}/distrho/DistrhoUI_macOS.mm") - string(SHA256 _hash "${NAME}:${PROJECT_VERSION}") - target_compile_definitions("${NAME}" PUBLIC "PUGL_NAMESPACE=${_hash}") endif() endfunction() diff --git a/dgl/src/pugl.cpp b/dgl/src/pugl.cpp @@ -119,9 +119,13 @@ START_NAMESPACE_DGL # ifndef DISTRHO_MACOS_NAMESPACE_MACRO # define DISTRHO_MACOS_NAMESPACE_MACRO_HELPER(NS, SEP, INTERFACE) NS ## SEP ## INTERFACE # define DISTRHO_MACOS_NAMESPACE_MACRO(NS, INTERFACE) DISTRHO_MACOS_NAMESPACE_MACRO_HELPER(NS, _, INTERFACE) -# define PuglStubView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglStubView) -# define PuglWrapperView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglWrapperView) -# define PuglWindow DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglWindow) +# define PuglCairoView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglCairoView) +# define PuglOpenGLView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglOpenGLView) +# define PuglStubView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglStubView) +# define PuglVulkanView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglVulkanView) +# define PuglWindow DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglWindow) +# define PuglWindowDelegate DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglWindowDelegate) +# define PuglWrapperView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PuglWrapperView) # endif # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wdeprecated-declarations" diff --git a/distrho/DistrhoUI_macOS.mm b/distrho/DistrhoUI_macOS.mm @@ -14,9 +14,7 @@ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#ifndef PUGL_NAMESPACE -# error PUGL_NAMESPACE must be set when compiling this file -#endif +// A few utils declared in DistrhoUI.cpp but defined here because they use Obj-C #include "src/DistrhoPluginChecks.h" #include "src/DistrhoDefines.h" @@ -25,14 +23,13 @@ # import <Cocoa/Cocoa.h> #endif -// A few utils declared in DistrhoUI.cpp but defined here because they uses Obj-C #if DISTRHO_UI_FILE_BROWSER # define DISTRHO_FILE_BROWSER_DIALOG_HPP_INCLUDED # define FILE_BROWSER_DIALOG_DISTRHO_NAMESPACE START_NAMESPACE_DISTRHO # include "extra/FileBrowserDialogImpl.hpp" END_NAMESPACE_DISTRHO -# import "extra/FileBrowserDialogImpl.cpp" +# include "extra/FileBrowserDialogImpl.cpp" #endif #if DISTRHO_PLUGIN_HAS_EXTERNAL_UI @@ -52,16 +49,4 @@ double getDesktopScaleFactor(const uintptr_t parentWindowHandle) return [NSScreen mainScreen].backingScaleFactor; } END_NAMESPACE_DISTRHO -#else // DISTRHO_PLUGIN_HAS_EXTERNAL_UI -# include "../dgl/Base.hpp" -# define DISTRHO_MACOS_NAMESPACE_MACRO_HELPER(DGL_NS, SEP, PUGL_NS, INTERFACE) DGL_NS ## SEP ## PUGL_NS ## SEP ## INTERFACE -# define DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NS, PUGL_NS, INTERFACE) DISTRHO_MACOS_NAMESPACE_MACRO_HELPER(DGL_NS, _, PUGL_NS, INTERFACE) -# define PuglCairoView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, CairoView) -# define PuglOpenGLView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, OpenGLView) -# define PuglStubView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, StubView) -# define PuglVulkanView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, VulkanView) -# define PuglWindow DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, Window) -# define PuglWindowDelegate DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, WindowDelegate) -# define PuglWrapperView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, WrapperView) -# import "src/pugl.mm" -#endif // DISTRHO_PLUGIN_HAS_EXTERNAL_UI +#endif diff --git a/distrho/src/DistrhoUI.cpp b/distrho/src/DistrhoUI.cpp @@ -48,7 +48,6 @@ START_NAMESPACE_DISTRHO # include "../extra/FileBrowserDialogImpl.hpp" END_NAMESPACE_DISTRHO -# include "../extra/FileBrowserDialogImpl.hpp" # include "../extra/FileBrowserDialogImpl.cpp" #endif