Browse Source

Finalize make dist for windows

Signed-off-by: falkTX <falktx@falktx.com>
tags/v2.3.0-RC1
falkTX 3 years ago
parent
commit
0c7ea4a7ca
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 187 additions and 167 deletions
  1. +184
    -166
      Makefile.dist.mk
  2. +3
    -1
      source/frontend/carla_app.py

+ 184
- 166
Makefile.dist.mk View File

@@ -6,7 +6,7 @@


# NOTE to be imported from main Makefile # NOTE to be imported from main Makefile


# ----------------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------


PYTHON = $(EXE_WRAPPER) $(shell which python3$(APP_EXT)) PYTHON = $(EXE_WRAPPER) $(shell which python3$(APP_EXT))


@@ -21,7 +21,7 @@ endif


QT5_PREFIX = $(shell pkg-config --variable=prefix Qt5OpenGLExtensions) QT5_PREFIX = $(shell pkg-config --variable=prefix Qt5OpenGLExtensions)


# ----------------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------


_PLUGIN_UIS = \ _PLUGIN_UIS = \
carla-plugin \ carla-plugin \
@@ -44,11 +44,9 @@ _QT5_PLUGINS = \
imageformats/$(QT5_LIB_PREFIX)qsvg$(LIB_EXT) imageformats/$(QT5_LIB_PREFIX)qsvg$(LIB_EXT)


ifeq ($(MACOS),true) ifeq ($(MACOS),true)
_QT5_PLUGINS += \
platforms/$(QT5_LIB_PREFIX)qcocoa$(LIB_EXT)
_QT5_PLUGINS += platforms/$(QT5_LIB_PREFIX)qcocoa$(LIB_EXT)
else ifeq ($(WIN32),true) else ifeq ($(WIN32),true)
_QT5_PLUGINS += \
platforms/$(QT5_LIB_PREFIX)qwindows$(LIB_EXT)
_QT5_PLUGINS += platforms/$(QT5_LIB_PREFIX)qwindows$(LIB_EXT)
endif endif


# NOTE this has to be hardcoded for now. oh well # NOTE this has to be hardcoded for now. oh well
@@ -65,43 +63,40 @@ _CARLA_HOST_FILES = \
carla-bridge-lv2$(LIB_EXT) \ carla-bridge-lv2$(LIB_EXT) \
carla-bridge-native$(APP_EXT) \ carla-bridge-native$(APP_EXT) \
carla-discovery-native$(APP_EXT) \ carla-discovery-native$(APP_EXT) \
libcarla_utils$(LIB_EXT)

ifeq ($(MACOS),true)
_CARLA_HOST_FILES += \
libcarla_utils$(LIB_EXT) \
$(_PLUGIN_UIS:%=resources/%$(APP_EXT)) \ $(_PLUGIN_UIS:%=resources/%$(APP_EXT)) \
resources/carla-plugin-patchbay$(APP_EXT) \ resources/carla-plugin-patchbay$(APP_EXT) \
carla-bridge-lv2-cocoa$(APP_EXT)
resources/lib

ifeq ($(MACOS),true)
_CARLA_HOST_FILES += carla-bridge-lv2-cocoa$(APP_EXT)
else ifeq ($(WIN32),true) else ifeq ($(WIN32),true)
_CARLA_HOST_FILES += \
$(_PLUGIN_UIS:%=resources/%$(APP_EXT)) \
resources/carla-plugin-patchbay$(APP_EXT) \
carla-bridge-lv2-windows$(APP_EXT)
_CARLA_HOST_FILES += carla-bridge-lv2-windows$(APP_EXT)
endif endif


_CARLA_APP_FILES = \ _CARLA_APP_FILES = \
Carla$(APP_EXT) \ Carla$(APP_EXT) \
libcarla_standalone2$(LIB_EXT) \ libcarla_standalone2$(LIB_EXT) \
$(_CARLA_HOST_FILES) \ $(_CARLA_HOST_FILES) \
$(_PYTHON_FILES) \
$(_QT5_DLLS) \ $(_QT5_DLLS) \
$(_QT5_PLUGINS) \ $(_QT5_PLUGINS) \
$(_PYTHON_FILES) \
$(_THEME_FILES) $(_THEME_FILES)


_CARLA_CONTROL_APP_FILES = \ _CARLA_CONTROL_APP_FILES = \
Carla-Control$(APP_EXT) \ Carla-Control$(APP_EXT) \
libcarla_utils$(LIB_EXT) \ libcarla_utils$(LIB_EXT) \
$(_PYTHON_FILES) \
$(_QT5_DLLS) \ $(_QT5_DLLS) \
$(_QT5_PLUGINS) \ $(_QT5_PLUGINS) \
$(_PYTHON_FILES) \
$(_THEME_FILES) $(_THEME_FILES)


_CARLA_LV2_PLUGIN_FILES = \ _CARLA_LV2_PLUGIN_FILES = \
carla.lv2/carla$(LIB_EXT) \ carla.lv2/carla$(LIB_EXT) \
carla.lv2/manifest.ttl \ carla.lv2/manifest.ttl \
carla.lv2/resources/carla-plugin-patchbay$(APP_EXT) \
carla.lv2/resources/lib/library.zip \ carla.lv2/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.lv2/%) \ $(_CARLA_HOST_FILES:%=carla.lv2/%) \
$(_PYTHON_FILES:%=carla.lv2/resources/%) \
$(_QT5_DLLS:%=carla.lv2/resources/%) \ $(_QT5_DLLS:%=carla.lv2/resources/%) \
$(_QT5_PLUGINS:%=carla.lv2/resources/%) \ $(_QT5_PLUGINS:%=carla.lv2/resources/%) \
$(_THEME_FILES:%=carla.lv2/resources/%) $(_THEME_FILES:%=carla.lv2/resources/%)
@@ -109,7 +104,6 @@ _CARLA_LV2_PLUGIN_FILES = \
ifeq ($(MACOS),true) ifeq ($(MACOS),true)
_CARLA_VST2FX_PLUGIN_FILES = \ _CARLA_VST2FX_PLUGIN_FILES = \
carlafx.vst/Contents/MacOS/CarlaVstFxShell \ carlafx.vst/Contents/MacOS/CarlaVstFxShell \
carlafx.vst/Contents/MacOS/resources/carla-plugin-patchbay$(APP_EXT) \
carlafx.vst/Contents/MacOS/resources/lib/library.zip \ carlafx.vst/Contents/MacOS/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carlafx.vst/Contents/MacOS/%) \ $(_CARLA_HOST_FILES:%=carlafx.vst/Contents/MacOS/%) \
$(_QT5_DLLS:%=carlafx.vst/Contents/MacOS/resources/%) \ $(_QT5_DLLS:%=carlafx.vst/Contents/MacOS/resources/%) \
@@ -118,7 +112,6 @@ _CARLA_VST2FX_PLUGIN_FILES = \


_CARLA_VST2SYN_PLUGIN_FILES = \ _CARLA_VST2SYN_PLUGIN_FILES = \
carla.vst/Contents/MacOS/CarlaVstShell \ carla.vst/Contents/MacOS/CarlaVstShell \
carla.vst/Contents/MacOS/resources/carla-plugin-patchbay$(APP_EXT) \
carla.vst/Contents/MacOS/resources/lib/library.zip \ carla.vst/Contents/MacOS/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.vst/Contents/MacOS/%) \ $(_CARLA_HOST_FILES:%=carla.vst/Contents/MacOS/%) \
$(_QT5_DLLS:%=carla.vst/Contents/MacOS/resources/%) \ $(_QT5_DLLS:%=carla.vst/Contents/MacOS/resources/%) \
@@ -128,7 +121,6 @@ else ifeq ($(WIN32),true)
_CARLA_VST2_PLUGIN_FILES = \ _CARLA_VST2_PLUGIN_FILES = \
carla.vst/CarlaVstShell.dll \ carla.vst/CarlaVstShell.dll \
carla.vst/CarlaVstFxShell.dll \ carla.vst/CarlaVstFxShell.dll \
carla.vst/resources/carla-plugin-patchbay.exe \
carla.vst/resources/lib/library.zip \ carla.vst/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.vst/%) \ $(_CARLA_HOST_FILES:%=carla.vst/%) \
$(_PYTHON_FILES:%=carla.vst/resources/%) \ $(_PYTHON_FILES:%=carla.vst/resources/%) \
@@ -138,30 +130,31 @@ _CARLA_VST2_PLUGIN_FILES = \


endif endif


ifeq ($(WIN32),true)
CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla/%)
CARLA_APP_ZIPS = $(_PLUGIN_UIS:%=build/%-resources/lib/library.zip)
CARLA_CONTROL_APP_FILES = $(_CARLA_CONTROL_APP_FILES:%=build/Carla-Control/%)
else
ifeq ($(MACOS),true)
CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla.app/Contents/MacOS/%) 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_CONTROL_APP_FILES = $(_CARLA_CONTROL_APP_FILES:%=build/Carla-Control.app/Contents/MacOS/%)
CARLA_PLUGIN_ZIPS = $(_PLUGIN_UIS:%=build/%.app/Contents/MacOS/lib/library.zip)
else ifeq ($(WIN32),true)
CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla/%)
CARLA_CONTROL_APP_FILES = $(_CARLA_CONTROL_APP_FILES:%=build/Carla-Control/%)
CARLA_PLUGIN_FILES = $(_CARLA_LV2_PLUGIN_FILES:%=build/%) $(_CARLA_VST2_PLUGIN_FILES:%=build/%)
CARLA_PLUGIN_ZIPS = $(_PLUGIN_UIS:%=build/%-resources/lib/library.zip)
endif endif


# ----------------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# entry point # entry point


ifeq ($(WIN64),true)
ifeq ($(MACOS),true)
TARGETS = Carla-$(VERSION)-macOS.dmg
else ifeq ($(WIN64),true)
TARGETS = Carla-$(VERSION)-win64.zip TARGETS = Carla-$(VERSION)-win64.zip
else ifeq ($(WIN32),true) else ifeq ($(WIN32),true)
TARGETS = Carla-$(VERSION)-win32.zip TARGETS = Carla-$(VERSION)-win32.zip
else
TARGETS = Carla-$(VERSION)-macOS.dmg
endif endif


dist: $(TARGETS) dist: $(TARGETS)


# ----------------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# create final file # create final file


Carla-$(VERSION)-macOS.dmg: build/Carla.app/Contents/Info.plist build/Carla-Control.app/Contents/Info.plist build/Carla-Plugins.pkg Carla-$(VERSION)-macOS.dmg: build/Carla.app/Contents/Info.plist build/Carla-Control.app/Contents/Info.plist build/Carla-Plugins.pkg
@@ -171,12 +164,64 @@ Carla-$(VERSION)-macOS.dmg: build/Carla.app/Contents/Info.plist build/Carla-Cont
hdiutil create $@ -srcfolder build/macos-pkg -volname "Carla-$(VERSION)" -fs HFS+ -ov hdiutil create $@ -srcfolder build/macos-pkg -volname "Carla-$(VERSION)" -fs HFS+ -ov
rm -rf build/macos-pkg rm -rf build/macos-pkg


Carla-$(VERSION)-win64.zip: $(CARLA_APP_FILES) $(CARLA_CONTROL_APP_FILES) $(_CARLA_LV2_PLUGIN_FILES:%=build/%) $(_CARLA_VST2_PLUGIN_FILES:%=build/%)
echo TODO
Carla-$(VERSION)-win%.zip: $(CARLA_APP_FILES) $(CARLA_CONTROL_APP_FILES) $(CARLA_PLUGIN_FILES)
rm -rf build/Carla-$(VERSION)-win$* $@
mkdir build/Carla-$(VERSION)-win$*
cp -r build/Carla build/Carla-Control data/windows/README.txt build/Carla-$(VERSION)-win$*/
cp -r build/carla.lv2 build/Carla-$(VERSION)-win$*/Carla.lv2
cp -r build/carla.vst build/Carla-$(VERSION)-win$*/Carla.vst
(cd build && \
zip -r -9 ../$@ Carla-$(VERSION)-win$*)
rm -rf build/Carla-$(VERSION)-win$*


# ----------------------------------------------------------------------------------------------------------------------------
# macOS final cleanup, after everything is in place
# ---------------------------------------------------------------------------------------------------------------------
# macOS plist files

build/Carla.app/Contents/Info.plist: $(CARLA_APP_FILES)
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
# extra step for standalone, symlink resources used in plugin UIs
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$(APP_EXT) carla-plugin-patchbay$(APP_EXT))
# mark as done
touch $@

build/Carla-Control.app/Contents/Info.plist: $(CARLA_CONTROL_APP_FILES)
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
# mark as done
touch $@

# ---------------------------------------------------------------------------------------------------------------------
# macOS main executables

build/Carla.app/Contents/MacOS/Carla: build/Carla.app/Contents/MacOS/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
# mark as done
touch $@

build/Carla-Control.app/Contents/MacOS/Carla-Control: build/Carla-Control.app/Contents/MacOS/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
# mark as done
touch $@


# ---------------------------------------------------------------------------------------------------------------------
# win32 main executables

build/Carla/Carla.exe: build/Carla/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
# mark as done
touch $@

build/Carla-Control/Carla-Control.exe: build/Carla-Control/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
# mark as done
touch $@

# ---------------------------------------------------------------------------------------------------------------------
# cleanup functions

ifeq ($(MACOS),true)
define PATCH_QT_DEPENDENCIES define PATCH_QT_DEPENDENCIES
install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" @executable_path/QtCore ${1} && \ 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/QtGui.framework/Versions/5/QtGui" @executable_path/QtGui ${1} && \
@@ -187,7 +232,6 @@ define PATCH_QT_DEPENDENCIES
install_name_tool -change "@rpath/QtMacExtras.framework/Versions/5/QtMacExtras" @executable_path/QtMacExtras ${1} install_name_tool -change "@rpath/QtMacExtras.framework/Versions/5/QtMacExtras" @executable_path/QtMacExtras ${1}
endef endef


ifeq ($(MACOS),true)
define CLEANUP_AND_PATCH_CXFREEZE_FILES define CLEANUP_AND_PATCH_CXFREEZE_FILES
# cleanup # cleanup
find build/${1}.app/Contents/MacOS/ -type f -name "*.py" -delete find build/${1}.app/Contents/MacOS/ -type f -name "*.py" -delete
@@ -224,39 +268,23 @@ define CLEANUP_AND_PATCH_CXFREEZE_FILES
endef endef
endif endif


build/Carla.app/Contents/Info.plist: $(CARLA_APP_FILES)
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
# extra step for standalone, symlink resources used in plugin UIs
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$(APP_EXT) carla-plugin-patchbay$(APP_EXT))
# mark as done
touch $@

build/Carla-Control.app/Contents/Info.plist: $(CARLA_CONTROL_APP_FILES)
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
# mark as done
touch $@

# ----------------------------------------------------------------------------------------------------------------------------
# application bundle, depends on cxfreeze library.zip
# ---------------------------------------------------------------------------------------------------------------------
# cxfreeze library.zip generation function


ifeq ($(WIN32),true)
ifeq ($(MACOS),true)
define GENERATE_LIBRARY_ZIP define GENERATE_LIBRARY_ZIP
env PYTHONPATH=$(CURDIR)/source/frontend SCRIPT_NAME=${1} $(PYTHON) ./data/windows/app-gui.py build_exe
env PYTHONPATH=$(CURDIR)/source/frontend SCRIPT_NAME=${1} $(PYTHON) ./data/macos/bundle.py bdist_mac --bundle-name=${1}
endef endef
else
else ifeq ($(WIN32),true)
define GENERATE_LIBRARY_ZIP define GENERATE_LIBRARY_ZIP
env PYTHONPATH=$(CURDIR)/source/frontend SCRIPT_NAME=${1} $(PYTHON) ./data/macos/bundle.py bdist_mac --bundle-name=${1}
env PYTHONPATH=$(CURDIR)/source/frontend SCRIPT_NAME=${1} $(PYTHON) ./data/windows/app-gui.py build_exe
endef endef
endif endif


# ----------------------------------------------------------------------------------------------------------------------------

build/Carla.app/Contents/MacOS/Carla: build/Carla.app/Contents/MacOS/lib/library.zip
# ---------------------------------------------------------------------------------------------------------------------
# macOS application library zip files


build/Carla.app/Contents/MacOS/lib/library.zip: $(CARLA_APP_ZIPS) data/macos/bundle.py data/macos/Carla.plist source/frontend/*
build/Carla.app/Contents/MacOS/lib/library.zip: $(CARLA_PLUGIN_ZIPS) data/macos/bundle.py data/macos/Carla.plist source/frontend/*
$(call GENERATE_LIBRARY_ZIP,Carla) $(call GENERATE_LIBRARY_ZIP,Carla)
# merge all zips into 1 # merge all zips into 1
rm -rf build/Carla.app/Contents/MacOS/lib/_lib rm -rf build/Carla.app/Contents/MacOS/lib/_lib
@@ -269,30 +297,16 @@ build/Carla.app/Contents/MacOS/lib/library.zip: $(CARLA_APP_ZIPS) data/macos/bun
rm -rf build/Carla.app/Contents/MacOS/lib/_lib rm -rf build/Carla.app/Contents/MacOS/lib/_lib
rm -rf build/Carla.app/Contents/MacOS/lib/library-main.zip rm -rf build/Carla.app/Contents/MacOS/lib/library-main.zip


# ----------------------------------------------------------------------------------------------------------------------------

build/Carla-Control.app/Contents/MacOS/Carla-Control: build/Carla-Control.app/Contents/MacOS/lib/library.zip

build/Carla-Control.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py data/macos/Carla-Control.plist source/frontend/* build/Carla-Control.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py data/macos/Carla-Control.plist source/frontend/*
$(call GENERATE_LIBRARY_ZIP,Carla-Control) $(call GENERATE_LIBRARY_ZIP,Carla-Control)


# ----------------------------------------------------------------------------------------------------------------------------
# macOS plugin UIs (stored in resources, depend on their respective startup script and generation of matching library.zip)

build/Carla.app/Contents/MacOS/resources/%: build/%.app/Contents/MacOS/lib/library.zip
-@mkdir -p $(shell dirname $@)
@cp -v build/$*.app/Contents/MacOS/$* $@

build/%.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py source/frontend/% build/%.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py source/frontend/%
$(call GENERATE_LIBRARY_ZIP,$*) $(call GENERATE_LIBRARY_ZIP,$*)


# ----------------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# win32 application library zip files


build/Carla/Carla.exe: build/Carla/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
touch $@

build/Carla/lib/library.zip: $(CARLA_APP_ZIPS) data/windows/app-gui.py source/frontend/*
build/Carla/lib/library.zip: $(CARLA_PLUGIN_ZIPS) data/windows/app-gui.py source/frontend/* resources/ico/carla.ico
$(call GENERATE_LIBRARY_ZIP,Carla) $(call GENERATE_LIBRARY_ZIP,Carla)
# merge all zips into 1 # merge all zips into 1
rm -rf build/Carla/lib/_lib rm -rf build/Carla/lib/_lib
@@ -305,83 +319,140 @@ build/Carla/lib/library.zip: $(CARLA_APP_ZIPS) data/windows/app-gui.py source/fr
rm -rf build/Carla/lib/_lib rm -rf build/Carla/lib/_lib
rm -rf build/Carla/lib/library-main.zip rm -rf build/Carla/lib/library-main.zip


build/Carla-Control/lib/library.zip: data/windows/app-gui.py source/frontend/* resources/ico/carla-control.ico
$(call GENERATE_LIBRARY_ZIP,Carla-Control)

build/%-resources/lib/library.zip: data/windows/app-gui.py source/frontend/% resources/ico/carla.ico
$(call GENERATE_LIBRARY_ZIP,$*)
# delete useless files
rm -rf build/$*-resources/lib/*.dll build/$*-resources/lib/*.pyd build/$*-resources/lib/PyQt5

# ---------------------------------------------------------------------------------------------------------------------
# macOS plugin UIs (stored in resources, depend on their respective library.zip)

build/Carla.app/Contents/MacOS/resources/%: build/%.app/Contents/MacOS/lib/library.zip
-@mkdir -p $(shell dirname $@)
@cp -v build/$*.app/Contents/MacOS/$* $@

# ---------------------------------------------------------------------------------------------------------------------
# win32 plugin UIs (stored in resources, depend on their respective library.zip)

build/Carla/resources/%.exe: build/%-resources/lib/library.zip build/Carla/resources/%.exe: build/%-resources/lib/library.zip
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v build/$*-resources/$*.exe $@ @cp -v build/$*-resources/$*.exe $@


build/%-resources/lib/library.zip: data/windows/app-gui.py source/frontend/%
$(call GENERATE_LIBRARY_ZIP,$*)
# ---------------------------------------------------------------------------------------------------------------------
# common generic bundle files (either Qt or Carla binaries)


# ----------------------------------------------------------------------------------------------------------------------------
ifeq ($(MACOS),true)
_BUNDLE_EXTRA_PATH = /Contents/MacOS
_APP_BUNDLE_EXTRA_PATH = .app$(_BUNDLE_EXTRA_PATH)
endif


build/Carla-Control/Carla-Control.exe: build/Carla-Control/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
touch $@
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/iconengines/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/iconengines/%: $(QT5_PREFIX)/lib/qt5/plugins/iconengines/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@


build/Carla-Control/lib/library.zip: data/windows/app-gui.py source/frontend/*
$(call GENERATE_LIBRARY_ZIP,Carla-Control)
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/imageformats/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/imageformats/%: $(QT5_PREFIX)/lib/qt5/plugins/imageformats/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@

build/Carla$(_APP_BUNDLE_EXTRA_PATH)/platforms/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/platforms/%: $(QT5_PREFIX)/lib/qt5/plugins/platforms/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@

build/Carla$(_APP_BUNDLE_EXTRA_PATH)/styles/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/styles/%: bin/styles/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@

build/Carla$(_APP_BUNDLE_EXTRA_PATH)/resources/lib: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/lib/library.zip
-@mkdir -p $(shell dirname $@)
@ln -sfv ../lib $@


# ----------------------------------------------------------------------------------------------------------------------------
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/%: bin/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@

# ---------------------------------------------------------------------------------------------------------------------
# macOS generic bundle files (either Qt or Carla binaries) # macOS generic bundle files (either Qt or Carla binaries)


build/Carla.app/Contents/MacOS/Qt% build/Carla-Control.app/Contents/MacOS/Qt%: $(QT5_PREFIX)/lib/Qt%.framework build/Carla.app/Contents/MacOS/Qt% build/Carla-Control.app/Contents/MacOS/Qt%: $(QT5_PREFIX)/lib/Qt%.framework
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $</Versions/5/Qt$* $@ @cp -v $</Versions/5/Qt$* $@
$(call PATCH_QT_DEPENDENCIES,$@)


build/Carla.app/Contents/MacOS/iconengines/% build/Carla-Control.app/Contents/MacOS/iconengines/%: $(QT5_PREFIX)/lib/qt5/plugins/iconengines/%
# ---------------------------------------------------------------------------------------------------------------------
# win32 generic bundle files (either Qt or Carla binaries)

build/Carla/libpython3% build/Carla-Control/libpython3%: $(QT5_PREFIX)/bin/libpython3%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)


build/Carla.app/Contents/MacOS/imageformats/% build/Carla-Control.app/Contents/MacOS/imageformats/%: $(QT5_PREFIX)/lib/qt5/plugins/imageformats/%
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/Qt5% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/Qt5%: $(QT5_PREFIX)/bin/Qt5%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)


build/Carla.app/Contents/MacOS/platforms/% build/Carla-Control.app/Contents/MacOS/platforms/%: $(QT5_PREFIX)/lib/qt5/plugins/platforms/%
# ---------------------------------------------------------------------------------------------------------------------
# common plugin rules

build/Carla$(_APP_BUNDLE_EXTRA_PATH)/resources/carla-plugin-patchbay$(APP_EXT): build/Carla$(_APP_BUNDLE_EXTRA_PATH)/resources/carla-plugin$(APP_EXT)
@ln -sfv carla-plugin$(APP_EXT) $@

build/carla.lv2/resources/lib/library.zip build/carla.vst$(_BUNDLE_EXTRA_PATH)/resources/lib/library.zip build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/resources/lib/library.zip: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/resources/lib/library.zip
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)
@cp -rv build/Carla$(_APP_BUNDLE_EXTRA_PATH)/resources/lib/* $(shell dirname $@)/


build/Carla.app/Contents/MacOS/styles/%.dylib build/Carla-Control.app/Contents/MacOS/styles/%.dylib: bin/styles/%.dylib
build/carla.lv2/resources/Qt% build/carla.vst$(_BUNDLE_EXTRA_PATH)/resources/Qt% build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/resources/Qt%: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/Qt%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@
$(call PATCH_QT_DEPENDENCIES,$@)


build/Carla.app/Contents/MacOS/% build/Carla-Control.app/Contents/MacOS/%: bin/%
build/carla.lv2/resources/iconengines/% build/carla.vst$(_BUNDLE_EXTRA_PATH)/resources/iconengines/% build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/resources/iconengines/%: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/iconengines/%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


# ----------------------------------------------------------------------------------------------------------------------------
# win32 generic bundle files (either Qt or Carla binaries)
build/carla.lv2/resources/imageformats/% build/carla.vst$(_BUNDLE_EXTRA_PATH)/resources/imageformats/% build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/resources/imageformats/%: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/imageformats/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@


build/Carla/libpython3% build/Carla-Control/libpython3%: $(QT5_PREFIX)/bin/libpython3%
build/carla.lv2/resources/platforms/% build/carla.vst$(_BUNDLE_EXTRA_PATH)/resources/platforms/% build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/resources/platforms/%: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/platforms/%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


build/Carla/Qt5% build/Carla-Control/Qt5%: $(QT5_PREFIX)/bin/Qt5%
build/carla.lv2/resources/styles/% build/carla.vst$(_BUNDLE_EXTRA_PATH)/resources/styles/% build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/resources/styles/%: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/styles/%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


build/Carla/iconengines/% build/Carla-Control/iconengines/%: $(QT5_PREFIX)/lib/qt5/plugins/iconengines/%
build/carla.lv2/resources/% build/carla.vst$(_BUNDLE_EXTRA_PATH)/resources/% build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/resources/%: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/resources/%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


build/Carla/imageformats/% build/Carla-Control/imageformats/%: $(QT5_PREFIX)/lib/qt5/plugins/imageformats/%
build/carla.lv2/%$(LIB_EXT) build/carla.vst$(_BUNDLE_EXTRA_PATH)/%$(LIB_EXT) build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/%$(LIB_EXT): bin/%$(LIB_EXT)
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


build/Carla/platforms/% build/Carla-Control/platforms/%: $(QT5_PREFIX)/lib/qt5/plugins/platforms/%
build/carla.lv2/% build/carla.vst$(_BUNDLE_EXTRA_PATH)/% build/carlafx.vst$(_BUNDLE_EXTRA_PATH)/%: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


build/Carla/% build/Carla-Control/%: bin/%
# build/carla.lv2/resources/% build/carla.vst/resources/%: build/Carla/resources/%
# -@mkdir -p $(shell dirname $@)
# @cp -v $< $@

# ---------------------------------------------------------------------------------------------------------------------
# win32 plugin rules

build/carla.lv2/resources/libpython3% build/carla.vst/resources/libpython3%: build/Carla/libpython3%
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


# ----------------------------------------------------------------------------------------------------------------------------
# Plugin rules
# ---------------------------------------------------------------------------------------------------------------------
# LV2 specific files

build/carla.lv2/manifest.ttl: bin/carla.lv2/manifest.ttl
-@mkdir -p $(shell dirname $@)
@cp -v bin/carla.lv2/*.ttl build/carla.lv2/

# ---------------------------------------------------------------------------------------------------------------------
# macOS plugin rules


MACOS_PACKAGE_EXP = -e 's/version="0"/version="$(VERSION)"/' MACOS_PACKAGE_EXP = -e 's/version="0"/version="$(VERSION)"/'
ifeq ($(CPU_ARM64),true) ifeq ($(CPU_ARM64),true)
@@ -420,19 +491,8 @@ build/carla-vst2syn.pkg: $(_CARLA_VST2SYN_PLUGIN_FILES:%=build/%)
--root "build/carla.vst/" \ --root "build/carla.vst/" \
"$@" "$@"


# ----------------------------------------------------------------------------------------------------------------------------
# LV2 specific files

build/carla.lv2/%$(LIB_EXT): bin/carla.lv2/%$(LIB_EXT)
-@mkdir -p $(shell dirname $@)
@cp -v $< $@

build/carla.lv2/manifest.ttl: bin/carla.lv2/manifest.ttl
-@mkdir -p $(shell dirname $@)
@cp -v bin/carla.lv2/*.ttl build/carla.lv2/

# ----------------------------------------------------------------------------------------------------------------------------
# VST2 specific files
# ---------------------------------------------------------------------------------------------------------------------
# macOS VST2 specific files


_MACVST_FILES = Contents/Info.plist Contents/PkgInfo Contents/Resources/empty.lproj _MACVST_FILES = Contents/Info.plist Contents/PkgInfo Contents/Resources/empty.lproj


@@ -444,7 +504,7 @@ build/carlafx.vst/Contents/MacOS/CarlaVstFxShell: bin/CarlaVstFxShell.dylib $(_M
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@cp -v $< $@ @cp -v $< $@


# ----------------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------


build/carla.vst/Contents/Info.plist: data/macos/CarlaVstShell.plist build/carla.vst/Contents/Info.plist: data/macos/CarlaVstShell.plist
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@@ -462,46 +522,4 @@ build/%.vst/Contents/Resources/empty.lproj:
-@mkdir -p $(shell dirname $@) -@mkdir -p $(shell dirname $@)
@touch $@ @touch $@


# ----------------------------------------------------------------------------------------------------------------------------
# Generic plugin rules

build/Carla/resources/carla-plugin-patchbay.exe: build/Carla/resources/carla-plugin.exe
@ln -sfv carla-plugin.exe $@

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) $@

# ----------------------------------------------------------------------------------------------------------------------------

ifeq ($(MACOS),true)
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 $< $@
else
build/carla.lv2/resources/libpython3% build/carla.vst/resources/libpython3%: build/Carla/libpython3%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@

build/carla.lv2/resources/% build/carla.vst/resources/%: build/Carla/resources/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@

build/carla.lv2/resources/lib/library.zip build/carla.vst/resources/lib/library.zip: build/Carla/resources/lib/library.zip
-@mkdir -p $(shell dirname $@)
@cp -rv build/Carla/resources/lib/* $(shell dirname $@)/

build/carla.lv2/% build/carla.vst/%: build/Carla/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
endif

# ----------------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------

+ 3
- 1
source/frontend/carla_app.py View File

@@ -113,7 +113,9 @@ class CarlaApplication():
self.fApp.setStyle("carla" if stylesDir else "fusion") self.fApp.setStyle("carla" if stylesDir else "fusion")


if WINDOWS: if WINDOWS:
carlastyle = os.path.join(pathBinaries, "styles", "carlastyle.dll")
carlastyle1 = os.path.join(pathBinaries, "styles", "carlastyle.dll")
carlastyle2 = os.path.join(pathResources, "styles", "carlastyle.dll")
carlastyle = carlastyle2 if os.path.exists(carlastyle2) else carlastyle1
self._stylelib = CDLL(carlastyle, RTLD_GLOBAL) self._stylelib = CDLL(carlastyle, RTLD_GLOBAL)
self._stylelib.set_qt_app_style.argtypes = None self._stylelib.set_qt_app_style.argtypes = None
self._stylelib.set_qt_app_style.restype = None self._stylelib.set_qt_app_style.restype = None


Loading…
Cancel
Save