@@ -63,6 +63,10 @@ ifneq (,$(filter arm%,$(TARGET_PROCESSOR))) | |||||
CPU_ARM=true | CPU_ARM=true | ||||
CPU_ARM_OR_AARCH64=true | CPU_ARM_OR_AARCH64=true | ||||
endif | endif | ||||
ifneq (,$(filter arm64%,$(TARGET_PROCESSOR))) | |||||
CPU_ARM64=true | |||||
CPU_ARM_OR_AARCH64=true | |||||
endif | |||||
ifneq (,$(filter aarch64%,$(TARGET_PROCESSOR))) | ifneq (,$(filter aarch64%,$(TARGET_PROCESSOR))) | ||||
CPU_AARCH64=true | CPU_AARCH64=true | ||||
CPU_ARM_OR_AARCH64=true | CPU_ARM_OR_AARCH64=true | ||||
@@ -136,12 +140,17 @@ BASE_OPTS += -mtune=generic -msse -msse2 | |||||
endif | endif | ||||
ifeq ($(CPU_ARM),true) | ifeq ($(CPU_ARM),true) | ||||
ifneq ($(CPU_ARM64),true) | |||||
BASE_OPTS += -mfpu=neon-vfpv4 -mfloat-abi=hard | BASE_OPTS += -mfpu=neon-vfpv4 -mfloat-abi=hard | ||||
endif | endif | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
# MacOS linker flags | # MacOS linker flags | ||||
LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-dead_strip -Wl,-dead_strip_dylibs | LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-dead_strip -Wl,-dead_strip_dylibs | ||||
ifneq ($(SKIP_STRIPPING),true) | |||||
LINK_OPTS += -Wl,-x | |||||
endif | |||||
else | else | ||||
# Common linker flags | # Common linker flags | ||||
LINK_OPTS = -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed | LINK_OPTS = -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed | ||||
@@ -247,7 +256,7 @@ DGL_SYSTEM_LIBS += -lbe | |||||
endif | endif | ||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
DGL_SYSTEM_LIBS += -framework Cocoa | |||||
DGL_SYSTEM_LIBS += -framework Cocoa -framework CoreVideo | |||||
endif | endif | ||||
ifeq ($(WINDOWS),true) | ifeq ($(WINDOWS),true) | ||||
@@ -55,6 +55,10 @@ endif | |||||
OBJS_DSP = $(FILES_DSP:%=$(BUILD_DIR)/%.o) | OBJS_DSP = $(FILES_DSP:%=$(BUILD_DIR)/%.o) | ||||
OBJS_UI = $(FILES_UI:%=$(BUILD_DIR)/%.o) | OBJS_UI = $(FILES_UI:%=$(BUILD_DIR)/%.o) | ||||
ifeq ($(MACOS),true) | |||||
OBJS_UI += $(BUILD_DIR)/DistrhoUI_macOS_$(NAME).mm.o | |||||
endif | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# Set plugin binary file targets | # Set plugin binary file targets | ||||
@@ -67,6 +71,17 @@ lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT) | |||||
lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT) | lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT) | ||||
vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) | vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# Set plugin symbols to export | |||||
ifeq ($(MACOS),true) | |||||
SYMBOLS_LADSPA = -Wl,-exported_symbol,_ladspa_descriptor | |||||
SYMBOLS_DSSI = -Wl,-exported_symbol,_ladspa_descriptor -Wl,-exported_symbol,_dssi_descriptor | |||||
SYMBOLS_LV2 = -Wl,-exported_symbol,_lv2_descriptor -Wl,-exported_symbol,_lv2_generate_ttl | |||||
SYMBOLS_LV2UI = -Wl,-exported_symbol,_lv2ui_descriptor | |||||
SYMBOLS_VST2 = -Wl,-exported_symbol,_VSTPluginMain | |||||
endif | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# Handle UI stuff, disable UI support automatically | # Handle UI stuff, disable UI support automatically | ||||
@@ -189,6 +204,11 @@ $(BUILD_DIR)/DistrhoUIMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp | |||||
@echo "Compiling DistrhoUIMain.cpp ($*)" | @echo "Compiling DistrhoUIMain.cpp ($*)" | ||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@ | ||||
$(BUILD_DIR)/DistrhoUI_macOS_%.mm.o: $(DPF_PATH)/distrho/DistrhoUI_macOS.mm | |||||
-@mkdir -p $(BUILD_DIR) | |||||
@echo "Compiling DistrhoUI_macOS.mm ($*)" | |||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DPUGL_NAMESPACE=$* -DGL_SILENCE_DEPRECATION -Wno-deprecated-declarations -I$(DPF_PATH)/dgl/src -I$(DPF_PATH)/dgl/src/pugl-upstream/include -ObjC++ -c -o $@ | |||||
$(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp | $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp | ||||
-@mkdir -p $(BUILD_DIR) | -@mkdir -p $(BUILD_DIR) | ||||
@echo "Compiling DistrhoPluginMain.cpp (JACK)" | @echo "Compiling DistrhoPluginMain.cpp (JACK)" | ||||
@@ -221,7 +241,7 @@ ladspa: $(ladspa_dsp) | |||||
$(ladspa_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.o | $(ladspa_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.o | ||||
-@mkdir -p $(shell dirname $@) | -@mkdir -p $(shell dirname $@) | ||||
@echo "Creating LADSPA plugin for $(NAME)" | @echo "Creating LADSPA plugin for $(NAME)" | ||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ | |||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) $(SYMBOLS_LADSPA) -o $@ | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# DSSI | # DSSI | ||||
@@ -233,7 +253,7 @@ dssi_ui: $(dssi_ui) | |||||
$(dssi_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.o | $(dssi_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.o | ||||
-@mkdir -p $(shell dirname $@) | -@mkdir -p $(shell dirname $@) | ||||
@echo "Creating DSSI plugin library for $(NAME)" | @echo "Creating DSSI plugin library for $(NAME)" | ||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ | |||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) $(SYMBOLS_DSSI) -o $@ | |||||
$(dssi_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o $(DGL_LIB) | $(dssi_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o $(DGL_LIB) | ||||
-@mkdir -p $(shell dirname $@) | -@mkdir -p $(shell dirname $@) | ||||
@@ -250,17 +270,17 @@ lv2_sep: $(lv2_dsp) $(lv2_ui) | |||||
$(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DGL_LIB) | $(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DGL_LIB) | ||||
-@mkdir -p $(shell dirname $@) | -@mkdir -p $(shell dirname $@) | ||||
@echo "Creating LV2 plugin for $(NAME)" | @echo "Creating LV2 plugin for $(NAME)" | ||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ | |||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) $(SYMBOLS_LV2) $(SYMBOLS_LV2UI) -o $@ | |||||
$(lv2_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o | $(lv2_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o | ||||
-@mkdir -p $(shell dirname $@) | -@mkdir -p $(shell dirname $@) | ||||
@echo "Creating LV2 plugin library for $(NAME)" | @echo "Creating LV2 plugin library for $(NAME)" | ||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ | |||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) $(SYMBOLS_LV2) -o $@ | |||||
$(lv2_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DGL_LIB) | $(lv2_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DGL_LIB) | ||||
-@mkdir -p $(shell dirname $@) | -@mkdir -p $(shell dirname $@) | ||||
@echo "Creating LV2 plugin UI for $(NAME)" | @echo "Creating LV2 plugin UI for $(NAME)" | ||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ | |||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) $(SYMBOLS_LV2UI) -o $@ | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# VST | # VST | ||||
@@ -274,7 +294,7 @@ $(vst): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o | |||||
endif | endif | ||||
-@mkdir -p $(shell dirname $@) | -@mkdir -p $(shell dirname $@) | ||||
@echo "Creating VST plugin for $(NAME)" | @echo "Creating VST plugin for $(NAME)" | ||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ | |||||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) $(SYMBOLS_VST2) -o $@ | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
@@ -16,6 +16,10 @@ LINK_FLAGS += $(DGL_LIBS) | |||||
# TODO fix these after pugl-upstream is done | # TODO fix these after pugl-upstream is done | ||||
BUILD_CXX_FLAGS += -Wno-attributes -Wno-extra -Wno-missing-field-initializers -Wno-narrowing | BUILD_CXX_FLAGS += -Wno-attributes -Wno-extra -Wno-missing-field-initializers -Wno-narrowing | ||||
ifeq ($(MACOS),true) | |||||
BUILD_CXX_FLAGS += -DGL_SILENCE_DEPRECATION -Wno-deprecated-declarations | |||||
endif | |||||
# ifneq ($(MACOS_OLD),true) | # ifneq ($(MACOS_OLD),true) | ||||
# needed by sofd right now, fix later | # needed by sofd right now, fix later | ||||
# BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive | # BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive | ||||
@@ -1 +1 @@ | |||||
Subproject commit 13cd61b4915d3314cc8e43e12a3baccef6650c94 | |||||
Subproject commit 4091532180ee74ebedbb7690c225a363c0ebe142 |
@@ -89,18 +89,21 @@ | |||||
# endif | # endif | ||||
#endif | #endif | ||||
#ifndef DISTRHO_OS_MAC | |||||
START_NAMESPACE_DGL | START_NAMESPACE_DGL | ||||
#endif | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
#define PUGL_DISABLE_DEPRECATED | |||||
#if defined(DISTRHO_OS_HAIKU) | #if defined(DISTRHO_OS_HAIKU) | ||||
#elif defined(DISTRHO_OS_MAC) | #elif defined(DISTRHO_OS_MAC) | ||||
/* | |||||
# define PuglWindow DISTRHO_JOIN_MACRO(PuglWindow, DGL_NAMESPACE) | |||||
# define PuglOpenGLView DISTRHO_JOIN_MACRO(PuglOpenGLView, DGL_NAMESPACE) | |||||
*/ | |||||
# 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) | |||||
# endif | |||||
# import "pugl-upstream/src/mac.m" | # import "pugl-upstream/src/mac.m" | ||||
# import "pugl-upstream/src/mac_stub.m" | # import "pugl-upstream/src/mac_stub.m" | ||||
# ifdef DGL_CAIRO | # ifdef DGL_CAIRO | ||||
@@ -207,6 +210,7 @@ PuglStatus puglSetGeometryConstraints(PuglView* const view, const uint width, co | |||||
#if defined(DISTRHO_OS_HAIKU) | #if defined(DISTRHO_OS_HAIKU) | ||||
// nothing? | // nothing? | ||||
#elif defined(DISTRHO_OS_MAC) | #elif defined(DISTRHO_OS_MAC) | ||||
/* | |||||
if (view->impl->window) | if (view->impl->window) | ||||
{ | { | ||||
[view->impl->window setContentMinSize:sizePoints(view, view->minWidth, view->minHeight)]; | [view->impl->window setContentMinSize:sizePoints(view, view->minWidth, view->minHeight)]; | ||||
@@ -214,6 +218,9 @@ PuglStatus puglSetGeometryConstraints(PuglView* const view, const uint width, co | |||||
if (aspect) | if (aspect) | ||||
[view->impl->window setContentAspectRatio:sizePoints(view, view->minAspectX, view->minAspectY)]; | [view->impl->window setContentAspectRatio:sizePoints(view, view->minAspectX, view->minAspectY)]; | ||||
} | } | ||||
*/ | |||||
puglSetMinSize(view, width, height); | |||||
puglSetAspectRatio(view, width, height, width, height); | |||||
#elif defined(DISTRHO_OS_WINDOWS) | #elif defined(DISTRHO_OS_WINDOWS) | ||||
// nothing | // nothing | ||||
#else | #else | ||||
@@ -352,4 +359,6 @@ void puglWin32SetWindowResizable(PuglView* const view, const bool resizable) | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
#ifndef DISTRHO_OS_MAC | |||||
END_NAMESPACE_DGL | END_NAMESPACE_DGL | ||||
#endif |
@@ -24,15 +24,22 @@ | |||||
#include <cstddef> | #include <cstddef> | ||||
#include <cstdint> | #include <cstdint> | ||||
START_NAMESPACE_DGL | |||||
// -------------------------------------------------------------------------------------------------------------------- | |||||
#define PUGL_API | #define PUGL_API | ||||
#define PUGL_DISABLE_DEPRECATED | #define PUGL_DISABLE_DEPRECATED | ||||
#define PUGL_NO_INCLUDE_GLU_H | #define PUGL_NO_INCLUDE_GLU_H | ||||
// -------------------------------------------------------------------------------------------------------------------- | |||||
#ifndef DISTRHO_OS_MAC | |||||
START_NAMESPACE_DGL | |||||
#else | |||||
USE_NAMESPACE_DGL | |||||
#endif | |||||
#include "pugl-upstream/include/pugl/pugl.h" | #include "pugl-upstream/include/pugl/pugl.h" | ||||
// -------------------------------------------------------------------------------------------------------------------- | |||||
PUGL_BEGIN_DECLS | PUGL_BEGIN_DECLS | ||||
// expose backend enter | // expose backend enter | ||||
@@ -85,6 +92,8 @@ PUGL_END_DECLS | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
#ifndef DISTRHO_OS_MAC | |||||
END_NAMESPACE_DGL | END_NAMESPACE_DGL | ||||
#endif | |||||
#endif // DGL_PUGL_HPP_INCLUDED | #endif // DGL_PUGL_HPP_INCLUDED |
@@ -0,0 +1,33 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2021 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | |||||
* or without fee is hereby granted, provided that the above copyright notice and this | |||||
* permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | |||||
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | |||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
#ifndef PUGL_NAMESPACE | |||||
# error PUGL_NAMESPACE must be set when compiling this file | |||||
#endif | |||||
#include "src/DistrhoPluginChecks.h" | |||||
#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 PuglOpenGLView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, OpenGLView) | |||||
#define PuglStubView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, StubView) | |||||
#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" |
@@ -15,6 +15,10 @@ LINK_FLAGS += -lpthread | |||||
# TODO fix within pugl | # TODO fix within pugl | ||||
BUILD_CXX_FLAGS += -Wno-extra -Wno-missing-field-initializers | BUILD_CXX_FLAGS += -Wno-extra -Wno-missing-field-initializers | ||||
ifeq ($(MACOS),true) | |||||
BUILD_CXX_FLAGS += -ObjC++ -DGL_SILENCE_DEPRECATION -Wno-deprecated-declarations | |||||
endif | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
MANUAL_TESTS = | MANUAL_TESTS = | ||||