us144mkii/tascam_controls/build_appimage.sh

75 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -e
APP_NAME="TascamControlPanel"
PROJECT_DIR=$(pwd)
BUILD_DIR="${PROJECT_DIR}/build"
TOOLS_DIR="${PROJECT_DIR}/.tools"
LINUXDEPLOY_FILENAME="linuxdeploy-xnormal.AppImage"
LINUXDEPLOY_PATH="${TOOLS_DIR}/${LINUXDEPLOY_FILENAME}"
LINUXDEPLOY_URL="https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
QT_PLUGIN_FILENAME="linuxdeploy-plugin-qt"
QT_PLUGIN_PATH="${TOOLS_DIR}/${QT_PLUGIN_FILENAME}"
QT_PLUGIN_URL="https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage"
echo "--- Checking for deployment tools ---"
mkdir -p "${TOOLS_DIR}"
if [ ! -f "${LINUXDEPLOY_PATH}" ]; then
echo "linuxdeploy not found. Downloading..."
wget -c -O "${LINUXDEPLOY_PATH}" "${LINUXDEPLOY_URL}"
chmod +x "${LINUXDEPLOY_PATH}"
fi
if [ ! -f "${QT_PLUGIN_PATH}" ]; then
echo "linuxdeploy-plugin-qt not found. Downloading..."
wget -c -O "${QT_PLUGIN_PATH}" "${QT_PLUGIN_URL}"
chmod +x "${QT_PLUGIN_PATH}"
fi
echo "All tools are ready."
echo "--- Building the C++ application ---"
mkdir -p ${BUILD_DIR}
cd ${BUILD_DIR}
cmake ..
make -j$(nproc)
cd ${PROJECT_DIR}
echo "--- Running linuxdeploy to create the AppImage ---"
rm -rf AppDir
export NO_STRIP=1
export PATH="${TOOLS_DIR}:${PATH}"
echo "--- Detecting Qt6 qmake ---"
if command -v qmake6 &> /dev/null; then
export QMAKE=$(command -v qmake6)
elif command -v qt6-qmake &> /dev/null; then
export QMAKE=$(command -v qt6-qmake)
elif command -v qmake &> /dev/null && qmake -v | grep -q "Qt version 6"; then
export QMAKE=$(command -v qmake)
else
echo "ERROR: Could not find a Qt6 qmake executable."
echo "Please install the Qt6 development package for your distribution."
echo "(e.g., 'sudo pacman -S qt6-base' or 'sudo apt install qt6-base-dev')"
exit 1
fi
echo "Found qmake at: ${QMAKE}"
"${LINUXDEPLOY_PATH}" --appdir AppDir \
-e "${BUILD_DIR}/${APP_NAME}" \
-i "${PROJECT_DIR}/resources/tascam-control-panel.png" \
-d "${PROJECT_DIR}/tascam-control-panel.desktop" \
--plugin qt \
--output appimage
echo ""
echo "--- DONE ---"
echo "AppImage created successfully!"