@@ -170,6 +170,7 @@ ifdef ARCH_MAC | |||||
cp $(STANDALONE_TARGET) dist/Rack.app/Contents/MacOS/ | cp $(STANDALONE_TARGET) dist/Rack.app/Contents/MacOS/ | ||||
$(STRIP) -S dist/Rack.app/Contents/MacOS/$(TARGET) | $(STRIP) -S dist/Rack.app/Contents/MacOS/$(TARGET) | ||||
$(STRIP) -S dist/Rack.app/Contents/MacOS/$(STANDALONE_TARGET) | $(STRIP) -S dist/Rack.app/Contents/MacOS/$(STANDALONE_TARGET) | ||||
install_name_tool -change $(TARGET) @executable_path/$(TARGET) dist/Rack.app/Contents/MacOS/$(STANDALONE_TARGET) | |||||
# Manually check that no nonstandard shared libraries are linked | # Manually check that no nonstandard shared libraries are linked | ||||
otool -L dist/Rack.app/Contents/MacOS/$(TARGET) | otool -L dist/Rack.app/Contents/MacOS/$(TARGET) | ||||
otool -L dist/Rack.app/Contents/MacOS/$(STANDALONE_TARGET) | otool -L dist/Rack.app/Contents/MacOS/$(STANDALONE_TARGET) | ||||
@@ -42,7 +42,7 @@ endif | |||||
ifdef ARCH_WIN | ifdef ARCH_WIN | ||||
TARGET := plugin.dll | TARGET := plugin.dll | ||||
LDFLAGS += -static-libstdc++ | LDFLAGS += -static-libstdc++ | ||||
RACK_USER_DIR ?= "$(USERPROFILE)"/Documents/Rack | |||||
RACK_USER_DIR ?= $(USERPROFILE)/Documents/Rack | |||||
endif | endif | ||||
@@ -59,26 +59,28 @@ clean: | |||||
dist: all | dist: all | ||||
rm -rf dist | rm -rf dist | ||||
mkdir -p dist/"$(SLUG)" | |||||
mkdir -p dist/$(SLUG) | |||||
@# Strip and copy plugin binary | @# Strip and copy plugin binary | ||||
cp $(TARGET) dist/"$(SLUG)"/ | |||||
cp $(TARGET) dist/$(SLUG)/ | |||||
ifdef ARCH_MAC | ifdef ARCH_MAC | ||||
$(STRIP) -S dist/"$(SLUG)"/$(TARGET) | |||||
$(STRIP) -S dist/$(SLUG)/$(TARGET) | |||||
install_name_tool -change libRack.dylib @executable_path/libRack.dylib dist/$(SLUG)/$(TARGET) | |||||
otool -L dist/$(SLUG)/$(TARGET) | |||||
else | else | ||||
$(STRIP) -s dist/"$(SLUG)"/$(TARGET) | |||||
$(STRIP) -s dist/$(SLUG)/$(TARGET) | |||||
endif | endif | ||||
@# Copy distributables | @# Copy distributables | ||||
ifdef ARCH_MAC | ifdef ARCH_MAC | ||||
rsync -rR $(DISTRIBUTABLES) dist/"$(SLUG)"/ | |||||
rsync -rR $(DISTRIBUTABLES) dist/$(SLUG)/ | |||||
else | else | ||||
cp -r --parents $(DISTRIBUTABLES) dist/"$(SLUG)"/ | |||||
cp -r --parents $(DISTRIBUTABLES) dist/$(SLUG)/ | |||||
endif | endif | ||||
@# Create ZIP package | @# Create ZIP package | ||||
cd dist && ZSTD_CLEVEL=19 tar -cf "$(SLUG)"-"$(VERSION)"-$(ARCH).vcvplugin --zstd "$(SLUG)" | |||||
cd dist && tar -c $(SLUG) | zstd -19 -o $(SLUG)-"$(VERSION)"-$(ARCH).vcvplugin | |||||
install: dist | install: dist | ||||
mkdir -p "$(RACK_USER_DIR)"/plugins-v2/ | mkdir -p "$(RACK_USER_DIR)"/plugins-v2/ | ||||
cp dist/"$(SLUG)"-"$(VERSION)"-$(ARCH).vcvplugin "$(RACK_USER_DIR)"/plugins-v2/ | |||||
cp dist/$(SLUG)-"$(VERSION)"-$(ARCH).vcvplugin "$(RACK_USER_DIR)"/plugins-v2/ | |||||
.PHONY: clean dist | .PHONY: clean dist | ||||
.DEFAULT_GOAL := all | .DEFAULT_GOAL := all |
@@ -1012,7 +1012,7 @@ struct MenuBar : widget::OpaqueWidget { | |||||
layout->addChild(helpButton); | layout->addChild(helpButton); | ||||
MenuButton* alphaButton = new MenuButton; | MenuButton* alphaButton = new MenuButton; | ||||
alphaButton->text = "Pre-alpha built for Christoph Scholtes. Not for release"; | |||||
alphaButton->text = "Pre-alpha built for Christoph Scholtes. Not for release."; | |||||
layout->addChild(alphaButton); | layout->addChild(alphaButton); | ||||
} | } | ||||
@@ -54,7 +54,9 @@ static void* loadLibrary(std::string libraryPath) { | |||||
#else | #else | ||||
// As of Rack v2.0, plugins are linked with `-rpath=.` so change current directory so it can find libRack. | // As of Rack v2.0, plugins are linked with `-rpath=.` so change current directory so it can find libRack. | ||||
std::string cwd = system::getWorkingDirectory(); | std::string cwd = system::getWorkingDirectory(); | ||||
system::setWorkingDirectory(asset::systemDir); | |||||
std::string libDir = asset::systemDir; | |||||
DEBUG("Setting working directory to %s", libDir.c_str()); | |||||
system::setWorkingDirectory(libDir); | |||||
// Change it back when we're finished | // Change it back when we're finished | ||||
DEFER({system::setWorkingDirectory(cwd);}); | DEFER({system::setWorkingDirectory(cwd);}); | ||||
// Load library with dlopen | // Load library with dlopen | ||||