diff --git a/plugins/res2c.py b/deps/res2c.py similarity index 93% rename from plugins/res2c.py rename to deps/res2c.py index 7f4f7c8..a04caa2 100755 --- a/plugins/res2c.py +++ b/deps/res2c.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # DISTRHO Plugin Framework (DPF) -# Copyright (C) 2012-2021 Filipe Coelho +# Copyright (C) 2012-2022 Filipe Coelho # # 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 @@ -42,7 +42,7 @@ if __name__ == '__main__': filename = sys.argv[1] if not os.path.exists(filename): - print("Folder '%s' does not exist" % filename) + print("File '%s' does not exist" % filename) quit() # dump code now diff --git a/deps/svg2stub.py b/deps/svg2stub.py new file mode 100755 index 0000000..fba0540 --- /dev/null +++ b/deps/svg2stub.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# DISTRHO Plugin Framework (DPF) +# Copyright (C) 2012-2022 Filipe Coelho +# +# 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. + +import os +import sys +import xml.etree.ElementTree as ET + +# ----------------------------------------------------- + +def svg2stub(filename_in, filename_out): + node = ET.parse(filename_in).getroot() + + with open(filename_out, 'w') as fh: + fh.write('\n') + fh.write('') + +# ----------------------------------------------------- + +if __name__ == '__main__': + if len(sys.argv) != 3: + print("Usage: %s " % sys.argv[0]) + quit() + + filename_in = sys.argv[1] + filename_out = sys.argv[2] + + if not os.path.exists(filename_in): + print("File '%s' does not exist" % filename_in) + quit() + + # dump code now + svg2stub(filename_in, filename_out) diff --git a/plugins/Makefile b/plugins/Makefile index 7e8c74d..ae1b947 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -854,7 +854,7 @@ RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldPresets RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldShapes -# MOD builds only have FX variant for now +# MOD builds only have LV2 FX variant for now ifeq ($(MOD_BUILD),true) LV2_RESOURCES = $(PLUGIN_LIST:%=../bin/CardinalFX.lv2/resources/PluginManifests/%.json) LV2_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.lv2/resources/%) @@ -865,7 +865,6 @@ LV2_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalSynth.lv2/resources/PluginManife LV2_RESOURCES += $(RESOURCE_FILES:%=../bin/Cardinal.lv2/resources/%) LV2_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.lv2/resources/%) LV2_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalSynth.lv2/resources/%) -endif ifeq ($(MACOS),true) VST2_RESOURCES = $(PLUGIN_LIST:%=../bin/CardinalFX.vst/Contents/Resources/PluginManifests/%.json) @@ -885,6 +884,7 @@ VST3_RESOURCES += $(PLUGIN_LIST:%=../bin/CardinalSynth.vst3/Contents/Resources/P VST3_RESOURCES += $(RESOURCE_FILES:%=../bin/Cardinal.vst3/Contents/Resources/%) VST3_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalFX.vst3/Contents/Resources/%) VST3_RESOURCES += $(RESOURCE_FILES:%=../bin/CardinalSynth.vst3/Contents/Resources/%) +endif resources: $(LV2_RESOURCES) $(VST2_RESOURCES) $(VST3_RESOURCES) @@ -900,6 +900,12 @@ resources: $(LV2_RESOURCES) $(VST2_RESOURCES) $(VST3_RESOURCES) -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ +ifeq ($(MOD_BUILD),true) +../bin/CardinalFX.lv2/resources/%.svg: %.svg ../deps/svg2stub.py + -@mkdir -p "$(shell dirname $@)" + $(SILENT)python3 ../deps/svg2stub.py $< $@ +endif + ../bin/Cardinal.lv2/resources/PluginManifests/%.json: %/plugin.json -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ @@ -987,10 +993,10 @@ $(TARGET): $(PLUGIN_OBJS) $(SILENT)rm -f $@ $(SILENT)$(AR) crs $@ $^ -$(BUILD_DIR)/%.bin.c: % res2c.py +$(BUILD_DIR)/%.bin.c: % ../deps/res2c.py -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Generating $*.bin.c" - $(SILENT)python3 ./res2c.py $< > $@ + $(SILENT)python3 ../deps/res2c.py $< > $@ $(BUILD_DIR)/%.bin.o: $(BUILD_DIR)/%.bin.c -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk index 4a9efe2..a2210fa 100644 --- a/src/Makefile.cardinal.mk +++ b/src/Makefile.cardinal.mk @@ -250,9 +250,9 @@ BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' # Enable all possible plugin types and setup resources ifeq ($(CARDINAL_VARIANT),main) -all: jack lv2 vst3 resources +all: jack lv2 vst3 else -all: lv2 vst2 vst3 resources +all: lv2 vst2 vst3 endif CORE_RESOURCES = $(subst ../Rack/res/,,$(wildcard ../Rack/res/ComponentLibrary/*.svg ../Rack/res/fonts/*.ttf)) @@ -289,6 +289,12 @@ $(TARGET_DIR)/$(NAME).lv2/resources/%: ../Rack/res/% -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ +ifeq ($(MOD_BUILD),true) +$(TARGET_DIR)/$(NAME).lv2/resources/%.svg: ../Rack/res/%.svg ../../deps/svg2stub.py + -@mkdir -p "$(shell dirname $@)" + $(SILENT)python3 ../../deps/svg2stub.py $< $@ +endif + $(TARGET_DIR)/$(NAME).vst/resources/%: ../Rack/res/% -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@