optiimage, new recipe (#11408)

This commit is contained in:
Schrijvers Luc
2024-12-03 11:58:55 +01:00
committed by GitHub
parent 75344a6fe9
commit 90ecd52db6
3 changed files with 248 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "@APP_NAME@",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E63696611020006020000003D5555BD55550000004555CD4A000C0021C9FBFF"
$"197CF101FDBC4B990331363B0323262902000602000000BBD5813BD581000000"
$"4B95604ACAAA002ECC71FF2ECC71033DAEE903FDBC4B04FC4C0400190382E8AE"
$"05FC03C0392B02000202BA0001000000000000B8555547AAA9497FFF00C0392B"
$"FFFFC0392B0002001202B4000000000000000032CE9348B5554A0B35000033FF"
$"00000200120234000000000000000032CE934975554A0B35000033FF000004FF"
$"9904004C19020A2CB5202CB520BD18B52054B520C268B520C92FB520CA602CCA"
$"60B650CA60BD18CA6054CA60C268CA60C92F54CA60C92FCA60C268CA602CCA60"
$"BD18CA60B650CA60B52054B520C92FB520C268B5202CB520BD18B520B6502CB5"
$"20B650B5202CB5202CB5202CB5202CB520020838B5A738B5A7BA82B5A7B8D8B9"
$"5FB8D8B751B8D8BB6C38BD17BA82BD17BCD0BD16BD4EBD01BD0FBD0FBF08BCA7"
$"C047B95FC046BB22C047B79ABD4EB5BABF09B615BD0FB5AD38B5A7BCCFB5A738"
$"B5A738B5A738B5A738B5A7020838283828BACD28303030B79D30BB223838BACD"
$"38BCC6BC8FBD33BC7DBCFDBC89BEAEBC3040B95FBFBFBAE3BFBFB7DCBD33B640"
$"BEAFB68EBCFDB63538B62FBCC62838B62F382838B62F38280608FF7F2CB5202C"
$"B520B64FB520B5202CB520B64FB520BD18B52054B520C268B520C9302CCA60B6"
$"4FCA60B98DCA60BD18CA60BB52CA60BD18C34ABD18B520BD18BC35BB52B5202C"
$"B520B98DB5202CB520B5200207BA6FC047BA6FC047B8AAC20DB520C598B6E5C3"
$"D2B520C64DB52054B520C702B520C9302CCA60B64FCA6030CA6038CA6034CA60"
$"385438C26838C50FBBDAC1B2BA6FC047BB25C0FDBA6FC0470207C400BD9FC400"
$"BD9FC1B2BFEDBD184CBF65C23ABD18C67ABD1ACA60BD19C86DC0A4CA60C7B7CA"
$"60C42ECA60C930CA60CA5F54CA5FC930CA5FC67ACA5FC400CA5FC53DC83FC1DF"
$"C400BD9FC61F40C400BD9F0205BD18C400BD18C400BB05C612B6E0CA37B8F3C8"
$"24B729CA512CCA5FB776CA5FB98DC89ABD18C50FBB52C6D5BD18C4B5BD18C400"
$"BD18C45ABD18C4000205BD18B6C5BD18B6C5BD18B881BD18BBF8BD18BA3DBE53"
$"BBB8BF3730BF37BAA2BF37B81CBD18B6C5BE54B706BD18B6C5BD18B6C5BD18B6"
$"C5BD18B6C50606FF07BEB030BEB030BEB0BA8C38BB80BDBCBB80BB63BB80BA6F"
$"30BA6FBA8CBA6FB83338B740BB63B740BDBCB740BEB030BEB0B833BEB0303002"
$"042CCA602CCA60B932C8F5BC0750BA9DC78ABC07C78ABC07CA60BC07C8F5BA9D"
$"CA602CCA60B932CA602CCA600606FF073C303C303CBA413834BD7134BBAE3434"
$"3034BA4134B87E382CBBAE2CBD712C3C303CB87E3C30300207C400BC1FC400BC"
$"1FC172BEACBC57C3C7BEE5C13ABC97C407BD184CBCD7C447BF65C23AC400BDA0"
$"C1B2BFED5040CA60C400C840C1E0CA60C37FCA60C27FCA60C2FFC840C05FC400"
$"BC1F50BE3FC400BC1F020438B6B738B6B7BB18B6B7B9E830B9E8B7E8B9E8BAD7"
$"38BC07BB18BC0738BA4238B6B738B87D38B6B7020438B6B738B6B7BB18B6B7B9"
$"E830B9E8B7E8B9E8BAD738BC07BB18BC0738BA4238B6B738B87D38B6B70208C4"
$"00BCDFC400BCDFC172BF6DBC574CBEE5C1FABC97C4C8BD18C548BCD7C508BF65"
$"C2FAC400BE60C1B2C0AD50C080CA60C4C0C840C2A0CA60C440CA60C33FCA60C3"
$"BFC840C11FC400BCDF50BEFFC400BCDFC400BCDFC400BCDFC400BCDF0207BD18"
$"C3C7BD18C3C734C5E7B6B8CA27B8D8C807B70BCA4B2CCA60B767CA60B7DACA60"
$"B800CA60B7EDCA60B9B2C8ADBD17C548BB65C6FABD17C4C8BD17C3C7BD17C447"
$"BD17C3C7BD18C3C7BD17C3C7BD18C3C70208BA6FBF87BA6FBF87B8AAC14DB520"
$"C4D7B6E5C312B520C557B520C658B520C5D8B6E5C492BA6FC108B8AAC2CDBB52"
$"C1EABD18C3B0BC35C2CDBD18C330BD18C22FBD18C2AFBC35C14DBA6FBF87BB52"
$"C06ABA6FBF87BA6FBF87BA6FBF87BA6FBF87020538B52038B520BCBDB520BD18"
$"B520BCEAB520BD18BC35BD18CA60BD18C34ABCEACA6038CA60BCBDCA6038C34A"
$"38B52038BC3538B5200205BD18B520BD18B520BD45B520BD9FB520BD72B520BD"
$"9FBC35BD9FCA60BD9FC34ABD72CA60BD18CA60BD45CA60BD18C34ABD18B520BD"
$"18BC35BD18B5200205BC07B520BC07B520BC35B52038B520BC62B52038BC3538"
$"CA6038C34ABC62CA60BC07CA60BC35CA60BC07C34ABC07B520BC07BC35BC07B5"
$"200205B5A7B520B5A7B5202CB520BC07B520B9E8B520BC07BC35BC07CA60BC07"
$"C34AB9E8CA60B5A7CA602CCA60B5A7C34AB5A7B520B5A7BC35B5A7B5200205BC"
$"07B520BC07B520BB80B520BA6FB52034B520BA6FBC35BA6FCA60BA6FC34A34CA"
$"60BC07CA60BB80CA60BC07C34ABC07B520BC07BC35BC07B5200205BD9FB520BD"
$"9FB5203CB520BF37B520BEB0B520BF37BC35BF37CA60BF37C34ABEB0CA60BD9F"
$"CA603CCA60BD9FC34ABD9FB520BD9FBC35BD9FB5200209B7C7B520B7C7B520B6"
$"50B51FB520B7C7B51FB650B520B7F5B520B850B520B822B520B6D72CB5A8B64F"
$"B5A8BD18B5A8C7B7B5A8C267B5A8C930B5A8CA5FB850CA5FB6D7CA60B822CA60"
$"2CCA60B7F5CA61B65054B520C930B51FC268B520B7C7B520BD17B520B7C7B520"
$"0209B7C7CA60B7C7CA60B64FCA60B51F54B51FC92FB51FC78BB51FC730B51FC7"
$"5DB51FC8A9B7C7C9D8B64EC9D8BD17C9D8C7B7C9D8C267C9D8C930C9D8CA5FC7"
$"30CA5FC8A9CA5FC75DCA60C7B7CA5FC78ACA60C92FC7B7CA60C92FCA60C267CA"
$"60B7C7CA60BD17CA60B7C7CA60190A000100000A010101000A010102000A0201"
$"03000A030104000A040105000A050106000A060107000A070108000A03010900"
$"0A07010A000A08010B000A03010C000A05010D1001178200040A09010E000A05"
$"010F000A050110000A0A0111000A0B0112000A0B0113000A0C0114000A0D0115"
$"000A0E0116000A0F0117000A10011800"
};

View File

@@ -0,0 +1,139 @@
SUMMARY="Image optimizer to reduce the size of your images"
DESCRIPTION="Optimize your images with OptiImage, a useful image compressor that supports PNG, \
JPEG, WebP and SVG file types.
It supports both lossless and lossy compression modes with an option whether to keep or not \
metadata of images. It additionally has a safe mode, where a new image is created instead of \
overwriting the old one.
It uses the following tools:
* oxipng for PNG images
* jpegoptim for JPEG images
* scour for SVG images
* cwebp for WebP images"
HOMEPAGE="https://apps.kde.org/optiimage/"
COPYRIGHT="2021-2023 Carl Schwan"
LICENSE="GNU LGPL v3"
REVISION="1"
SOURCE_URI="https://invent.kde.org/graphics/optiimage/-/archive/v$portVersion/optiimage-v$portVersion.tar.bz2"
CHECKSUM_SHA256="2706354278ab407ed013335c226b6058d36de230f816933d11d07c21c8593b48"
SOURCE_DIR="optiimage-v$portVersion"
PATCHES="optiimage-$portVersion.patchset"
ADDITIONAL_FILES="optiimage.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
optiimage$secondaryArchSuffix = $portVersion
app:OptiImage$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
cmd:cwebp$secondaryArchSuffix
cmd:jpegoptim
cmd:oxipng
cmd:scour
lib:libGL$secondaryArchSuffix
lib:libKirigamiAddonsStatefulApp$secondaryArchSuffix
lib:libQCoro6Core$secondaryArchSuffix
# KF6
lib:libKF6Bookmarks$secondaryArchSuffix
lib:libKF6Completion$secondaryArchSuffix
lib:libKF6ConfigCore$secondaryArchSuffix
lib:libKF6CoreAddons$secondaryArchSuffix
lib:libKF6Crash$secondaryArchSuffix
lib:libKF6I18n$secondaryArchSuffix
lib:libKF6IconThemes$secondaryArchSuffix
lib:libKF6ItemViews$secondaryArchSuffix
lib:libKF6KIOCore$secondaryArchSuffix
lib:libKF6JobWidgets$secondaryArchSuffix
lib:libKF6Service$secondaryArchSuffix
lib:libKF6Solid$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
# Qt6
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Network$secondaryArchSuffix
lib:libQt6Qml$secondaryArchSuffix
lib:libQt6Quick$secondaryArchSuffix
lib:libQt6OpenGL$secondaryArchSuffix
lib:libQt6Svg$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libKirigamiAddonsStatefulApp$secondaryArchSuffix
devel:libQCoro6Core$secondaryArchSuffix
# KF6
extra_cmake_modules$secondaryArchSuffix
devel:libKF6Bookmarks$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Crash$secondaryArchSuffix
devel:libKF6I18n$secondaryArchSuffix
devel:libKF6IconThemes$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6JobWidgets$secondaryArchSuffix
devel:libKF6KIOCore$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6Solid$secondaryArchSuffix
devel:libKF6WidgetsAddons$secondaryArchSuffix
devel:libKF6WindowSystem$secondaryArchSuffix
devel:libKirigamiPlatform$secondaryArchSuffix
# Qt6
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Qml$secondaryArchSuffix
devel:libQt6Svg$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:msgmerge$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DCMAKE_INSTALL_BINDIR=$appsDir \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-Wno-dev
make -C build $jobArgs
}
INSTALL()
{
make -C build install
mv $appsDir/optiimage $appsDir/OptiImage
# cleanup
rm -rf $dataDir/{applications,metainfo}
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local APP_NAME="OptiImage"
local LONG_INFO="$SUMMARY"
local APP_SIGNATURE="application/x-vnd.optiimage"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
-e "s|@APP_NAME@|$APP_NAME|" \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
$portDir/additional-files/optiimage.rdef.in > optiimage.rdef
addResourcesToBinaries optiimage.rdef $appsDir/OptiImage
addAppDeskbarSymlink $appsDir/OptiImage
}

View File

@@ -0,0 +1,24 @@
From db11f7c432c40d75eeb1580308c5db993d469df5 Mon Sep 17 00:00:00 2001
From: Schrijvers Luc <begasus@gmail.com>
Date: Tue, 3 Dec 2024 10:44:17 +0100
Subject: Use Haiku icon theme
diff --git a/src/main.cpp b/src/main.cpp
index d82a6f5..54b5398 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -25,8 +25,10 @@ using namespace Qt::Literals::StringLiterals;
int main(int argc, char *argv[])
{
+#if !defined(Q_OS_HAIKU)
KIconTheme::initTheme();
QIcon::setFallbackThemeName(u"breeze"_s);
+#endif
QApplication app(argc, argv);
KLocalizedString::setApplicationDomain("optiimage");
--
2.45.2