diff --git a/Makefile b/Makefile index 8e7a4e3a2..363db8d58 100644 --- a/Makefile +++ b/Makefile @@ -682,9 +682,9 @@ endif $(LINK) ../carla_app.py $(DESTDIR)$(DATADIR)/carla/resources $(LINK) ../carla_backend.py $(DESTDIR)$(DATADIR)/carla/resources $(LINK) ../carla_backend_qt.py $(DESTDIR)$(DATADIR)/carla/resources - $(LINK) ../carla_control.py $(DESTDIR)$(DATADIR)/carla/resources $(LINK) ../carla_database.py $(DESTDIR)$(DATADIR)/carla/resources $(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources + $(LINK) ../carla_host_control.py $(DESTDIR)$(DATADIR)/carla/resources $(LINK) ../carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources $(LINK) ../carla_skin.py $(DESTDIR)$(DATADIR)/carla/resources $(LINK) ../carla_shared.py $(DESTDIR)$(DATADIR)/carla/resources diff --git a/Makefile.dist.mk b/Makefile.dist.mk index 055194763..54012faea 100644 --- a/Makefile.dist.mk +++ b/Makefile.dist.mk @@ -25,12 +25,13 @@ _QT5_DLLS = \ QtOpenGL \ QtPrintSupport \ QtSvg \ - QtWidgets \ + QtWidgets + +_QT5_PLUGINS = \ iconengines/libqsvgicon$(LIB_EXT) \ imageformats/libqjpeg$(LIB_EXT) \ imageformats/libqsvg$(LIB_EXT) \ - platforms/libqcocoa$(LIB_EXT) \ - styles/carlastyle$(LIB_EXT) + platforms/libqcocoa$(LIB_EXT) _THEME_FILES = \ styles/carlastyle.json \ @@ -41,46 +42,80 @@ _CARLA_HOST_FILES = \ carla-bridge-lv2$(LIB_EXT) \ carla-bridge-native$(APP_EXT) \ carla-discovery-native$(APP_EXT) \ + libcarla_utils$(LIB_EXT) \ $(_PLUGIN_UIS:%=resources/%$(APP_EXT)) _CARLA_APP_FILES = \ Carla$(APP_EXT) \ libcarla_standalone2$(LIB_EXT) \ - libcarla_utils$(LIB_EXT) \ $(_CARLA_HOST_FILES) \ $(_QT5_DLLS) \ + $(_QT5_PLUGINS) \ $(_THEME_FILES) _CARLA_CONTROL_APP_FILES = \ Carla-Control$(APP_EXT) \ libcarla_utils$(LIB_EXT) \ $(_QT5_DLLS) \ + $(_QT5_PLUGINS) \ $(_THEME_FILES) _CARLA_LV2_PLUGIN_FILES = \ carla.lv2/carla$(LIB_EXT) \ carla.lv2/manifest.ttl \ - $(_CARLA_HOST_FILES:%=carla.lv2/%) + carla.lv2/resources/carla-plugin-patchbay \ + carla.lv2/resources/lib/library.zip \ + $(_CARLA_HOST_FILES:%=carla.lv2/%) \ + $(_QT5_DLLS:%=carla.lv2/resources/%) \ + $(_QT5_PLUGINS:%=carla.lv2/resources/%) \ + $(_THEME_FILES:%=carla.lv2/resources/%) + +_CARLA_VST2FX_PLUGIN_FILES = \ + carlafx.vst/Contents/MacOS/CarlaVstFxShell \ + carlafx.vst/Contents/MacOS/resources/carla-plugin-patchbay \ + carlafx.vst/Contents/MacOS/resources/lib/library.zip \ + $(_CARLA_HOST_FILES:%=carlafx.vst/Contents/MacOS/%) \ + $(_QT5_DLLS:%=carlafx.vst/Contents/MacOS/resources/%) \ + $(_QT5_PLUGINS:%=carlafx.vst/Contents/MacOS/resources/%) \ + $(_THEME_FILES:%=carlafx.vst/Contents/MacOS/resources/%) + +_CARLA_VST2SYN_PLUGIN_FILES = \ + carla.vst/Contents/MacOS/CarlaVstShell \ + carla.vst/Contents/MacOS/resources/carla-plugin-patchbay \ + carla.vst/Contents/MacOS/resources/lib/library.zip \ + $(_CARLA_HOST_FILES:%=carla.vst/Contents/MacOS/%) \ + $(_QT5_DLLS:%=carla.vst/Contents/MacOS/resources/%) \ + $(_QT5_PLUGINS:%=carla.vst/Contents/MacOS/resources/%) \ + $(_THEME_FILES:%=carla.vst/Contents/MacOS/resources/%) CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla.app/Contents/MacOS/%) CARLA_APP_ZIPS = $(_PLUGIN_UIS:%=build/%.app/Contents/MacOS/lib/library.zip) CARLA_CONTROL_APP_FILES = $(_CARLA_CONTROL_APP_FILES:%=build/Carla-Control.app/Contents/MacOS/%) -CARLA_PLUGIN_FILES = $(_CARLA_LV2_PLUGIN_FILES:%=build/%) - # ---------------------------------------------------------------------------------------------------------------------------- # entry point TARGETS = \ build/Carla.app/Contents/Info.plist \ - build/Carla-Control.app/Contents/Info.plist + build/Carla-Control.app/Contents/Info.plist \ + build/Carla-Plugins.pkg dist: $(TARGETS) # ---------------------------------------------------------------------------------------------------------------------------- # final cleanup, after everything is in place +define PATCH_QT_DEPENDENCIES + install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" @executable_path/QtCore ${1} && \ + install_name_tool -change "@rpath/QtGui.framework/Versions/5/QtGui" @executable_path/QtGui ${1} && \ + install_name_tool -change "@rpath/QtOpenGL.framework/Versions/5/QtOpenGL" @executable_path/QtOpenGL ${1} && \ + install_name_tool -change "@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport" @executable_path/QtPrintSupport ${1} && \ + install_name_tool -change "@rpath/QtSvg.framework/Versions/5/QtSvg" @executable_path/QtSvg ${1} && \ + install_name_tool -change "@rpath/QtWidgets.framework/Versions/5/QtWidgets" @executable_path/QtWidgets ${1} && \ + install_name_tool -change "@rpath/QtMacExtras.framework/Versions/5/QtMacExtras" @executable_path/QtMacExtras ${1} +endef + define CLEANUP_AND_PATCH_CXFREEZE_FILES # cleanup find build/${1}.app/Contents/MacOS/ -type f -name "*.py" -delete @@ -97,13 +132,7 @@ define CLEANUP_AND_PATCH_CXFREEZE_FILES # adjust binaries (cd build/${1}.app/Contents/MacOS && \ for f in `find . -type f | grep -e /Qt -e QOpenGL -e libq -e carlastyle.dylib -e sip.so`; do \ - install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" @executable_path/QtCore $$f && \ - install_name_tool -change "@rpath/QtGui.framework/Versions/5/QtGui" @executable_path/QtGui $$f && \ - install_name_tool -change "@rpath/QtOpenGL.framework/Versions/5/QtOpenGL" @executable_path/QtOpenGL $$f && \ - install_name_tool -change "@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport" @executable_path/QtPrintSupport $$f && \ - install_name_tool -change "@rpath/QtSvg.framework/Versions/5/QtSvg" @executable_path/QtSvg $$f && \ - install_name_tool -change "@rpath/QtWidgets.framework/Versions/5/QtWidgets" @executable_path/QtWidgets $$f && \ - install_name_tool -change "@rpath/QtMacExtras.framework/Versions/5/QtMacExtras" @executable_path/QtMacExtras $$f; \ + $(call PATCH_QT_DEPENDENCIES,$$f); \ done) endef @@ -113,7 +142,7 @@ build/Carla.app/Contents/Info.plist: $(CARLA_APP_FILES) mkdir -p build/Carla.app/Contents/MacOS/resources (cd build/Carla.app/Contents/MacOS/resources && \ ln -sf ../Qt* ../lib ../iconengines ../imageformats ../platforms ../styles . && \ - ln -sf carla-plugin carla-plugin-patchbay) + ln -sf carla-plugin$(APP_EXT) carla-plugin-patchbay$(APP_EXT)) # mark as done touch $@ @@ -169,21 +198,125 @@ build/%.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py source/frontend build/Carla.app/Contents/MacOS/Qt% build/Carla-Control.app/Contents/MacOS/Qt%: $(QT5_PREFIX)/lib/Qt%.framework -@mkdir -p $(shell dirname $@) @cp -v $ $@ + +build/%.vst/Contents/Resources/empty.lproj: + -@mkdir -p $(shell dirname $@) + @touch $@ + +# ---------------------------------------------------------------------------------------------------------------------------- +# Generic plugin rules + +build/carla%/resources/carla-plugin-patchbay$(APP_EXT): build/carla%/resources/carla-plugin$(APP_EXT) + -@mkdir -p $(shell dirname $@) + @ln -sfv carla-plugin$(APP_EXT) $@ + +# ---------------------------------------------------------------------------------------------------------------------------- + +build/carla.lv2/resources/% build/carla.vst/Contents/MacOS/resources/% build/carlafx.vst/Contents/MacOS/resources/%: build/Carla.app/Contents/MacOS/resources/% + -@mkdir -p $(shell dirname $@) + @cp -v $< $@ + +build/carla.lv2/resources/lib/library.zip build/carla.vst/Contents/MacOS/resources/lib/library.zip build/carlafx.vst/Contents/MacOS/resources/lib/library.zip: build/Carla.app/Contents/MacOS/resources/lib/library.zip + -@mkdir -p $(shell dirname $@) + @cp -rv build/Carla.app/Contents/MacOS/resources/lib/* $(shell dirname $@)/ + +build/carla.lv2/% build/carla.vst/Contents/MacOS/% build/carlafx.vst/Contents/MacOS/%: build/Carla.app/Contents/MacOS/% + -@mkdir -p $(shell dirname $@) + @cp -v $< $@ + +# ---------------------------------------------------------------------------------------------------------------------------- diff --git a/data/macos/CarlaVstFxShell.plist b/data/macos/CarlaVstFxShell.plist new file mode 100644 index 000000000..4882ad177 --- /dev/null +++ b/data/macos/CarlaVstFxShell.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + CarlaVstFxShell + CFBundleIconFile + + CFBundleIdentifier + studio.kx.carla.CarlaVstFxShell + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/data/macos/CarlaVstShell.plist b/data/macos/CarlaVstShell.plist new file mode 100644 index 000000000..d09663c73 --- /dev/null +++ b/data/macos/CarlaVstShell.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + CarlaVstShell + CFBundleIconFile + + CFBundleIdentifier + studio.kx.carla.CarlaVstShell + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + CSResourcesFileMapped + + +