From f330b718106f9396e1559a83cbaac2d2959913e0 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 8 Feb 2022 01:21:34 +0000 Subject: [PATCH] Simplify resource install rules Signed-off-by: falkTX --- plugins/Makefile | 105 ++++++++++++++++++++++++++++++++------- src/Makefile.cardinal.mk | 71 +++++++++++--------------- 2 files changed, 117 insertions(+), 59 deletions(-) diff --git a/plugins/Makefile b/plugins/Makefile index 5fdf9ad..e5fb46d 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -854,52 +854,121 @@ RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldPresets RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldShapes -PLUGIN_RESOURCES = +PLUGIN_RESOURCES = $(PLUGIN_LIST:%=../bin/Cardinal.lv2/resources/PluginManifests/%.json) PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalFX.lv2/resources/PluginManifests/%.json) -PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.lv2/resources/%) +PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalSynth.lv2/resources/PluginManifests/%.json) + +PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/Cardinal.vst3/Contents/Resources/PluginManifests/%.json) +PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalFX.vst3/Contents/Resources/PluginManifests/%.json) +PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalSynth.vst3/Contents/Resources/PluginManifests/%.json) + ifeq ($(MACOS),true) PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalFX.vst/Contents/Resources/PluginManifests/%.json) -PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.vst/Contents/Resources/%) +PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalSynth.vst/Contents/Resources/PluginManifests/%.json) else PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalFX.vst/resources/PluginManifests/%.json) -PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.vst/resources/%) +PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalSynth.vst/resources/PluginManifests/%.json) endif -PLUGIN_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalFX.vst3/Contents/Resources/PluginManifests/%.json) + +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/Cardinal.lv2/resources/%) +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.lv2/resources/%) +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalSynth.lv2/resources/%) + +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/Cardinal.vst3/Contents/Resources/%) PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.vst3/Contents/Resources/%) +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalSynth.vst3/Contents/Resources/%) + +ifeq ($(MACOS),true) +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.vst/Contents/Resources/%) +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalSynth.vst/Contents/Resources/%) +else +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.vst/resources/%) +PLUGIN_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalSynth.vst/resources/%) +endif resources: $(PLUGIN_RESOURCES) +../bin/Cardinal.lv2/resources/%: % + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + ../bin/CardinalFX.lv2/resources/%: % -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ -../bin/CardinalFX.vst/resources/%: % +../bin/CardinalSynth.lv2/resources/%: % -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ -../bin/CardinalFX.vst/Contents/Resources/%: % +../bin/Cardinal.lv2/resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalFX.lv2/resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalSynth.lv2/resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/Cardinal.vst3/Contents/Resources/%: % -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ ../bin/CardinalFX.vst3/Contents/Resources/%: % -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ -../bin/CardinalFX.lv2/resources/PluginManifests/%.json: %/plugin.json +../bin/CardinalSynth.vst3/Contents/Resources/%: % -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ -../bin/CardinalFX.vst/resources/PluginManifests/%.json: %/plugin.json +../bin/Cardinal.vst3/Contents/Resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalFX.vst3/Contents/Resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalSynth.vst3/Contents/Resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +ifeq ($(MACOS),true) +../bin/CardinalFX.vst/Contents/Resources/%: % + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalSynth.vst/Contents/Resources/%: % -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ ../bin/CardinalFX.vst/Contents/Resources/PluginManifests/%.json: %/plugin.json -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ -../bin/CardinalFX.vst3/Contents/Resources/PluginManifests/%.json: %/plugin.json +../bin/CardinalSynth.vst/Contents/Resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ +else +../bin/CardinalFX.vst/resources/%: % + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalSynth.vst/resources/%: % -@mkdir -p "$(shell dirname $@)" - ln -sf $(abspath $<) $@ + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalFX.vst/resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ + +../bin/CardinalSynth.vst/resources/PluginManifests/%.json: %/plugin.json + -@mkdir -p "$(shell dirname $@)" + $(SILENT)ln -sf $(abspath $<) $@ +endif # -------------------------------------------------------------- # Build commands diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk index cc6a010..74941e7 100644 --- a/src/Makefile.cardinal.mk +++ b/src/Makefile.cardinal.mk @@ -6,6 +6,14 @@ # Must have NAME defined +ifeq ($(NAME),Cardinal) +CARDINAL_VARIANT = main +else ifeq ($(NAME),CardinalFX) +CARDINAL_VARIANT = fx +else ifeq ($(NAME),CardinalSynth) +CARDINAL_VARIANT = synth +endif + # -------------------------------------------------------------- # Carla stuff @@ -221,87 +229,68 @@ endif # -------------------------------------------------------------- # fallback path to resource files +ifneq ($(SYSDEPS),true) + ifeq ($(EXE_WRAPPER),wine) SOURCE_DIR = Z:$(subst /,\\,$(abspath $(CURDIR)/..)) else SOURCE_DIR = $(abspath $(CURDIR)/..) endif -ifneq ($(SYSDEPS),true) BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"' + endif +# -------------------------------------------------------------- +# install path prefix for resource files + BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' # -------------------------------------------------------------- # Enable all possible plugin types and setup resources -ifeq ($(NAME),CardinalFX) - -all: lv2 vst2 vst3 resources - -CORE_RESOURCES = $(subst ../Rack/res/,,$(wildcard ../Rack/res/ComponentLibrary/*.svg ../Rack/res/fonts/*.ttf)) template.vcv - -PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/CardinalFX.lv2/resources/%) -ifeq ($(MACOS),true) -PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/CardinalFX.vst/Contents/Resources/%) -else -PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/CardinalFX.vst/resources/%) -endif -PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/CardinalFX.vst3/Contents/Resources/%) - -else # CardinalFX - -ifeq ($(NAME),Cardinal) +ifeq ($(CARDINAL_VARIANT),main) all: jack lv2 vst3 resources else all: lv2 vst2 vst3 resources endif -PLUGIN_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/resources -PLUGIN_RESOURCES += $(TARGET_DIR)/$(NAME).vst3/Contents/Resources +CORE_RESOURCES = $(subst ../Rack/res/,,$(wildcard ../Rack/res/ComponentLibrary/*.svg ../Rack/res/fonts/*.ttf)) +CORE_RESOURCES += template.vcv + +PLUGIN_RESOURCES = $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).lv2/resources/%) +PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst3/Contents/Resources/%) -# Cardinal (full) is not available as VST2 due to lack of CV ports -ifneq ($(NAME),Cardinal) +# Cardinal main variant is not available as VST2 due to lack of CV ports +ifneq ($(CARDINAL_VARIANT),main) ifeq ($(MACOS),true) -PLUGIN_RESOURCES += $(TARGET_DIR)/$(NAME).vst/Contents/Resources +PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst/Contents/Resources/%) else -PLUGIN_RESOURCES += $(TARGET_DIR)/$(NAME).vst/resources +PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst/resources/%) endif endif -endif # CardinalFX - -# -------------------------------------------------------------- - resources: $(PLUGIN_RESOURCES) -ifneq ($(NAME),CardinalFX) -lv2: resources -vst2: resources -vst3: resources -$(TARGET_DIR)/$(NAME).%: $(TARGET_DIR)/CardinalFX.% - -@mkdir -p "$(shell dirname $@)" - $(SILENT)ln -sf $(abspath $<) $@ -endif +# -------------------------------------------------------------- -$(TARGET_DIR)/CardinalFX.%/template.vcv: ../template.vcv +$(TARGET_DIR)/$(NAME).%/template.vcv: ../template.vcv -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ -$(TARGET_DIR)/CardinalFX.lv2/resources/%: ../Rack/res/% +$(TARGET_DIR)/$(NAME).lv2/resources/%: ../Rack/res/% -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ -$(TARGET_DIR)/CardinalFX.vst/resources/%: ../Rack/res/% +$(TARGET_DIR)/$(NAME).vst/resources/%: ../Rack/res/% -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ -$(TARGET_DIR)/CardinalFX.vst/Contents/Resources/%: ../Rack/res/% +$(TARGET_DIR)/$(NAME).vst/Contents/Resources/%: ../Rack/res/% -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ -$(TARGET_DIR)/CardinalFX.vst3/Contents/Resources/%: ../Rack/res/% +$(TARGET_DIR)/$(NAME).vst3/Contents/Resources/%: ../Rack/res/% -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@