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:
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