feat: skip compilation and use pre-compiled ofxPiMapper binary for instant setup

This commit is contained in:
Timothy Hofland
2026-03-15 23:13:12 +01:00
parent 778f31a8e7
commit 46b5361ef7

View File

@ -215,58 +215,12 @@ MPVJ_SSID=$WIFI_SSID
MPVJ_MEDIA_DIR=$REAL_HOME/media MPVJ_MEDIA_DIR=$REAL_HOME/media
EOF EOF
# 4.5 THE PRE-BUILT ENGINE SOLUTION # 4.5 THE PRE-BUILT ENGINE SOLUTION (FASTEST)
echo "Installing Pre-compiled OpenFrameworks (FAST TRACK)..." echo "Installing Pre-compiled ofxPiMapper Binary..."
cd "$REAL_HOME" BINARY_URL="https://gitea.superwcpot.nl/timothy/mapper/raw/branch/main/bin/ofxPiMapper"
if [ ! -d "openFrameworks" ]; then if ! curl -sSL -o /usr/local/bin/ofxPiMapper "$BINARY_URL"; then
echo "Downloading OpenFrameworks v0.12.1..." wget -O /usr/local/bin/ofxPiMapper "$BINARY_URL"
ARCH=$(uname -m)
OF_FILE="of_v0.12.1_linuxaarch64_release.tar.gz"
[ "$ARCH" != "aarch64" ] && [ "$ARCH" != "x86_64" ] && OF_FILE="of_v0.12.1_linuxarmv6l_release.tar.gz"
DOWNLOAD_URL="https://github.com/openframeworks/openFrameworks/releases/download/0.12.1/$OF_FILE"
if ! sudo -u "$REAL_USER" wget "$DOWNLOAD_URL"; then
sudo -u "$REAL_USER" curl -L -O "$DOWNLOAD_URL"
fi
sudo -u "$REAL_USER" tar -xzf "$OF_FILE"
sudo -u "$REAL_USER" mv of_v0.12.1_linux*_release openFrameworks
sudo -u "$REAL_USER" rm "$OF_FILE"
fi fi
echo "Downloading and patching ofxPiMapper..."
cd "$REAL_HOME/openFrameworks/addons"
rm -rf ofxPiMapper
sudo -u "$REAL_USER" git clone --depth 1 https://github.com/kr15h/ofxPiMapper.git
# Apply patches locally to addon ONLY
cd "$REAL_HOME/openFrameworks/addons/ofxPiMapper"
# 1. Highlight Patch
OSC_FILE=$(find src -name "OscControl.cpp" | head -n 1)
if [ -n "$OSC_FILE" ]; then
cat <<'EOF_PATCH' > /tmp/highlight.patch
if (m.getAddress() == "/ofxPiMapper/surface/highlight"){
int surfaceIndex = m.getArgAsInt32(0);
mapper->getSurfaceManager()->selectSurface(surfaceIndex);
return;
}
EOF_PATCH
sed -i '/if (m.getAddress() == "\/ofxPiMapper\/surface\/select"){/r /tmp/highlight.patch' "$OSC_FILE"
rm -f /tmp/highlight.patch
fi
# 2. Namespace Patches (Idempotent)
find src -type f \( -name "*.h" -o -name "*.cpp" \) -exec sed -i 's/\([^:a-zA-Z0-9]\)unique_ptr\b/\1std::unique_ptr/g' {} +
find src -type f \( -name "*.h" -o -name "*.cpp" \) -exec sed -i 's/\([^:a-zA-Z0-9]\)make_unique\b/\1std::make_unique/g' {} +
# 3. Add memory headers to addon files only
for f in $(grep -l "unique_ptr" src/*.h 2>/dev/null || true); do
sed -i '1i #include <memory>' "$f"
done
# Build Example (NO GLOBAL FLAGS to avoid re-compiling the core)
cd "$REAL_HOME/openFrameworks/addons/ofxPiMapper/example_basic"
echo "Compiling Engine (This should only take 5-10 minutes)..."
sudo -u "$REAL_USER" make -j1
cp bin/example_basic /usr/local/bin/ofxPiMapper
chmod +x /usr/local/bin/ofxPiMapper chmod +x /usr/local/bin/ofxPiMapper
# 5. FINALIZATION # 5. FINALIZATION