75 lines
2.2 KiB
Bash
Executable File
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!"
|