summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2020-10-02 21:11:24 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2020-10-11 09:42:13 +0200
commitc8fa53050d30b667f224668ca5de2bb7f07a1b3d (patch)
treea088303d2d536247498c8b4f68096eac33ce113e
parentcd192f239bc9d6e42e3f5b002f4aed8233118095 (diff)
downloadrockbox-c8fa53050d30b667f224668ca5de2bb7f07a1b3d.tar.gz
rockbox-c8fa53050d30b667f224668ca5de2bb7f07a1b3d.tar.bz2
rockbox-c8fa53050d30b667f224668ca5de2bb7f07a1b3d.zip
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
-rw-r--r--rbutil/ipodpatcher/ipodpatcher.pro43
-rw-r--r--rbutil/rbutil.pro60
-rw-r--r--rbutil/rbutilqt/rbutilqt.pro26
-rw-r--r--rbutil/sansapatcher/sansapatcher.pro38
4 files changed, 141 insertions, 26 deletions
diff --git a/rbutil/ipodpatcher/ipodpatcher.pro b/rbutil/ipodpatcher/ipodpatcher.pro
new file mode 100644
index 0000000000..65dd1016e4
--- /dev/null
+++ b/rbutil/ipodpatcher/ipodpatcher.pro
@@ -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
+}
diff --git a/rbutil/rbutil.pro b/rbutil/rbutil.pro
new file mode 100644
index 0000000000..db3391d9a8
--- /dev/null
+++ b/rbutil/rbutil.pro
@@ -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
+}
+
+
diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro
index fb20143397..d07c1e01bc 100644
--- a/rbutil/rbutilqt/rbutilqt.pro
+++ b/rbutil/rbutilqt/rbutilqt.pro
@@ -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)
diff --git a/rbutil/sansapatcher/sansapatcher.pro b/rbutil/sansapatcher/sansapatcher.pro
new file mode 100644
index 0000000000..f8308e6283
--- /dev/null
+++ b/rbutil/sansapatcher/sansapatcher.pro
@@ -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
+}