rbutil: Add project file for building multiple binaries.

To use ipodpatcher and sansapatcher as external binaries (so we can do
proper permission elevation) we need to build them using qmake as part
of the main build. Add a subdirs template based project file to do that,
and project files for the patchers.

Move Linux appimage rules one level up, since it needs to include the
patchers as well.

Change-Id: I63ee59372668f4319402df65a77a6f04521d133b
This commit is contained in:
Dominik Riebeling 2020-10-02 21:11:24 +02:00
parent cd192f239b
commit c8fa53050d
4 changed files with 141 additions and 26 deletions

View File

@ -0,0 +1,43 @@
#
# __________ __ ___.
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
# \/ \/ \/ \/ \/
#
# All files in this archive are subject to the GNU General Public License.
# See the file COPYING in the source tree root for full license agreement.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
TEMPLATE = app
TARGET = ipodpatcher
QT -= core
SOURCES += \
main.c \
ipodpatcher.c \
ipodio-posix.c \
ipodio-win32-scsi.c \
ipodio-win32.c \
fat32format.c \
arc4.c \
HEADERS += \
arc4.h \
ipodio.h \
ipodpatcher.h \
parttypes.h \
DEFINES += RELEASE=1 _LARGEFILE64_SOURCE
RC_FILE = ipodpatcher.rc
unix {
target.path = /usr/local/bin
INSTALLS += target
}

60
rbutil/rbutil.pro Normal file
View File

@ -0,0 +1,60 @@
#
# __________ __ ___.
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
# \/ \/ \/ \/ \/
#
# All files in this archive are subject to the GNU General Public License.
# See the file COPYING in the source tree root for full license agreement.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
unix:!mac{
CCACHE = $$system(which ccache)
!isEmpty(CCACHE) {
message("using ccache at $$CCACHE")
QMAKE_CXX = ccache $$QMAKE_CXX
QMAKE_CC = ccache $$QMAKE_CC
}
}
TEMPLATE = subdirs
SUBDIRS = rbutilqt ipodpatcher sansapatcher
rbutilqt.depends = ipodpatcher sansapatcher
unix:!macx {
LINUXDEPLOYQTURL = https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
LINUXDEPLOYURL = https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
appimage_dl.commands = \
curl -C- -fLO $$LINUXDEPLOYQTURL -fLO $$LINUXDEPLOYURL ; \
chmod +x *.AppImage; \
touch appimage_dl
appimage_prepare.commands = \
mkdir -p AppImage/usr/bin; \
cp sansapatcher/sansapatcher AppImage/usr/bin; \
cp ipodpatcher/ipodpatcher AppImage/usr/bin; \
cp rbutilqt/RockboxUtility AppImage/usr/bin
appimage_prepare.depends = ipodpatcher sansapatcher rbutilqt appimage_dl
appimage.commands = \
./linuxdeploy-x86_64.AppImage \
--appdir AppImage \
--verbosity 2 --plugin qt --output appimage \
-e AppImage/usr/bin/RockboxUtility \
-d $$_PRO_FILE_PWD_/rbutilqt/RockboxUtility.desktop \
-i $$_PRO_FILE_PWD_/../docs/logo/rockbox-clef.svg
appimage.depends = appimage_prepare
QMAKE_EXTRA_TARGETS += appimage_dl appimage_prepare appimage
}

View File

@ -239,32 +239,6 @@ unix {
INSTALLS += target
}
unix:!macx {
LINUXDEPLOYQTURL = https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
LINUXDEPLOYURL = https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
appimage_dl.commands = \
curl -C- -fLO $$LINUXDEPLOYQTURL -fLO $$LINUXDEPLOYURL ; \
chmod +x *.AppImage; \
touch appimage_dl
appimage_prepare.commands = \
mkdir -p AppImage/usr/bin; \
cp ${TARGET} AppImage/usr/bin
appimage_prepare.depends = ${TARGET} appimage_dl
appimage.commands = \
./linuxdeploy-x86_64.AppImage \
--appdir AppImage \
--verbosity 2 --plugin qt --output appimage \
-e AppImage/usr/bin/${TARGET} \
-d $$_PRO_FILE_PWD_/RockboxUtility.desktop \
-i $$RBBASE_DIR/docs/logo/rockbox-clef.svg
appimage.depends = appimage_prepare
QMAKE_EXTRA_TARGETS += appimage_dl appimage_prepare appimage
}
# source files are separate.
include(rbutilqt.pri)

View File

@ -0,0 +1,38 @@
#
# __________ __ ___.
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
# \/ \/ \/ \/ \/
#
# All files in this archive are subject to the GNU General Public License.
# See the file COPYING in the source tree root for full license agreement.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
TEMPLATE = app
TARGET = sansapatcher
QT -= core
SOURCES += \
sansaio-posix.c \
sansaio-win32.c \
sansapatcher.c \
main.c
HEADERS += \
parttypes.h \
sansaio.h \
sansapatcher.h \
RC_FILE = sansapatcher.rc
DEFINES += _LARGEFILE64_SOURCE
unix {
target.path = /usr/local/bin
INSTALLS += target
}