mirror of
https://codeberg.org/armin/pascalcompressor.git
synced 2026-10-11 16:51:56 +02:00
Add compressor plugin source with build files
This commit is contained in:
parent
b0fef386ee
commit
ef5739546f
10 changed files with 925 additions and 0 deletions
89
Makefile
Normal file
89
Makefile
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
CMAKE ?= cmake
|
||||
CONFIG ?= Release
|
||||
BUILD_DIR ?= build
|
||||
JOBS ?= $(shell sysctl -n hw.availcpu 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 8)
|
||||
CC ?= cc
|
||||
|
||||
ART_DIR := $(BUILD_DIR)/Pascalcompressor_artefacts/$(CONFIG)
|
||||
GEN_DIR := $(BUILD_DIR)/generated
|
||||
GEN_H := $(GEN_DIR)/BuildInfo.h
|
||||
|
||||
VST3_SRC := $(ART_DIR)/VST3/Pascalcompressor.vst3
|
||||
AU_SRC := $(ART_DIR)/AU/Pascalcompressor.component
|
||||
|
||||
VST3_DEST := $(HOME)/Library/Audio/Plug-Ins/VST3/Pascalcompressor.vst3
|
||||
AU_DEST := $(HOME)/Library/Audio/Plug-Ins/Components/Pascalcompressor.component
|
||||
|
||||
AU_BIN := $(AU_DEST)/Contents/MacOS/Pascalcompressor
|
||||
AUTEST_BIN := $(BUILD_DIR)/autest
|
||||
|
||||
PLUGIN_DIRS := $(dir $(VST3_DEST)) $(dir $(AU_DEST))
|
||||
AU_CODE := aufx Pscp PscC
|
||||
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
.PHONY: all build configure install uninstall clean smoke auval FORCE
|
||||
|
||||
all: build
|
||||
|
||||
configure:
|
||||
$(CMAKE) -S . -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=$(CONFIG)
|
||||
|
||||
FORCE:
|
||||
|
||||
$(GEN_H): FORCE
|
||||
@mkdir -p "$(GEN_DIR)"
|
||||
@printf '#pragma once\n#define PASCAL_BUILD_TIME "%s"\n' "$$(date '+%Y-%m-%d %H:%M:%S %Z')" > "$(GEN_H)"
|
||||
|
||||
build: configure $(GEN_H)
|
||||
$(CMAKE) --build $(BUILD_DIR) --config $(CONFIG) --parallel $(JOBS)
|
||||
@printf 'built at %s (local)\n' "$$(sed -n 's/^#define PASCAL_BUILD_TIME "\(.*\)"/\1/p' "$(GEN_H)")"
|
||||
|
||||
$(AUTEST_BIN): Tests/autest.c
|
||||
@mkdir -p "$(BUILD_DIR)"
|
||||
$(CC) -O2 -framework AudioToolbox -framework CoreFoundation -o "$(AUTEST_BIN)" Tests/autest.c
|
||||
|
||||
smoke: $(AUTEST_BIN)
|
||||
@if [ -e "$(AU_SRC)/Contents/MacOS/Pascalcompressor" ]; then \
|
||||
"$(AUTEST_BIN)" "$(AU_SRC)/Contents/MacOS/Pascalcompressor"; \
|
||||
elif [ -e "$(AU_BIN)" ]; then \
|
||||
"$(AUTEST_BIN)" "$(AU_BIN)"; \
|
||||
else \
|
||||
echo "Nothing to test yet: run 'make build' or 'make install' first."; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
install: build
|
||||
@rm -rf "$(VST3_DEST)" "$(AU_DEST)"
|
||||
@mkdir -p $(PLUGIN_DIRS)
|
||||
@cp -R "$(VST3_SRC)" "$(VST3_DEST)"
|
||||
@cp -R "$(AU_SRC)" "$(AU_DEST)"
|
||||
@chmod -R a+rX "$(VST3_DEST)" "$(AU_DEST)"
|
||||
@xattr -cr "$(VST3_DEST)" "$(AU_DEST)"
|
||||
@codesign --force --sign - "$(VST3_DEST)" "$(AU_DEST)"
|
||||
@codesign -dv "$(VST3_DEST)" 2>&1 | head -2
|
||||
@echo ""
|
||||
@echo "Pascalcompressor installed to:"
|
||||
@echo " $(VST3_DEST)"
|
||||
@echo " $(AU_DEST)"
|
||||
@echo ""
|
||||
@$(MAKE) smoke
|
||||
|
||||
auval:
|
||||
@if auval -v $(AU_CODE) 2>&1 | grep -q "PASS\|* *NOT OK\|FAIL\|didn't find"; then \
|
||||
auval -v $(AU_CODE) 2>&1 | tail -20; \
|
||||
if auval -l $(AU_CODE) 2>/dev/null | grep -q Pscp; then \
|
||||
echo "AU validation PASSED."; \
|
||||
else \
|
||||
echo "auval did not find the component yet. The stock AudioUnit Registrar only scans"; \
|
||||
echo "for new .component bundles at logout/login (or reboot); this is a machine-wide"; \
|
||||
echo "state, not a plugin problem. The functional check already passed: run 'make smoke'."; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
uninstall:
|
||||
@rm -rf "$(VST3_DEST)" "$(AU_DEST)"
|
||||
@echo "Pascalcompressor uninstalled."
|
||||
|
||||
clean:
|
||||
$(CMAKE) -E remove_directory $(BUILD_DIR)
|
||||
Loading…
Add table
Add a link
Reference in a new issue