New App: net.drawpile

This commit is contained in:
askmeaboutloom 2024-10-05 16:59:27 +02:00 committed by Licaon_Kter
parent 432d2d61f8
commit 3e2f72e720
4 changed files with 214 additions and 0 deletions

124
metadata/net.drawpile.yml Normal file
View file

@ -0,0 +1,124 @@
Categories:
- Graphics
- Internet
- Multimedia
License: GPL-3.0-or-later
WebSite: https://drawpile.net/
SourceCode: https://github.com/drawpile/Drawpile
IssueTracker: https://github.com/drawpile/Drawpile/issues
Translation: https://hosted.weblate.org/engage/drawpile/
Changelog: https://drawpile.net/news/
RepoType: git
Repo: https://github.com/drawpile/Drawpile.git
Builds:
- versionName: 2.2.2-beta.4
versionCode: 2020204001
commit: b2221cd1ca3e6ec850a4a79d9507b85329d4403c
sudo:
- apt-get update
- apt-get install -y build-essential cmake nasm ninja-build pkg-config yasm
- rm -rf /opt/android-sdk/{build-tools,ndk,platforms}
- sdkmanager 'build-tools;34.0.0-rc3' 'ndk;27.0.12077973' 'platforms;android-34'
patch:
- build-target-version.patch
- ic_launcher.patch
output: buildandroid-armeabi-v7a-release/bin/Drawpile-$$VERSION$$-armeabi-v7a.apk
build:
- BUILD_TYPE=release ANDROID_ABI=armeabi-v7a ANDROID_BUILD_TOOLS_VERSION=34.0.0-rc3
ANDROID_NDK_VERSION=27.0.12077973 ANDROID_PLATFORM_VERSION=34 ANDROID_TARGET_VERSION=23
ANDROID_SDK_DIR=$$SDK$$ ANDROID_SDKMANAGER=sdkmanager bash -c 'pkg/android/build.bash
setup && pkg/android/build.bash configure -DBUILD_ANDROID_VERSION_CODE=$$VERCODE$$
-DBUILD_VERSION=$$VERSION$$ -DCLANG_TIDY=OFF -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
-DDISABLE_UPDATE_CHECK_DEFAULT=ON -DDIST_BUILD=ON -DUSE_STRICT_ALIASING=ON
-DANDROID_MIN_SDK_VERSION=23'
- QT_ANDROID_PACKAGE_MODE=release cmake --build buildandroid-armeabi-v7a-release
--config Release
- versionName: 2.2.2-beta.4
versionCode: 2020204002
commit: b2221cd1ca3e6ec850a4a79d9507b85329d4403c
sudo:
- apt-get update
- apt-get install -y build-essential cmake nasm ninja-build pkg-config yasm
- rm -rf /opt/android-sdk/{build-tools,ndk,platforms}
- sdkmanager 'build-tools;34.0.0-rc3' 'ndk;27.0.12077973' 'platforms;android-34'
output: buildandroid-arm64-v8a-release/bin/Drawpile-$$VERSION$$-arm64-v8a.apk
build:
- BUILD_TYPE=release ANDROID_ABI=arm64-v8a ANDROID_BUILD_TOOLS_VERSION=34.0.0-rc3
ANDROID_NDK_VERSION=27.0.12077973 ANDROID_PLATFORM_VERSION=34 ANDROID_SDK_DIR=$$SDK$$
ANDROID_SDKMANAGER=sdkmanager bash -c 'pkg/android/build.bash setup && pkg/android/build.bash
configure -DBUILD_ANDROID_VERSION_CODE=$$VERCODE$$ -DBUILD_VERSION=$$VERSION$$
-DCLANG_TIDY=OFF -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DDISABLE_UPDATE_CHECK_DEFAULT=ON
-DDIST_BUILD=ON -DUSE_STRICT_ALIASING=ON -DANDROID_MIN_SDK_VERSION=30'
- QT_ANDROID_PACKAGE_MODE=release cmake --build buildandroid-arm64-v8a-release
--config Release
- versionName: 2.2.2-beta.4
versionCode: 2020204003
commit: b2221cd1ca3e6ec850a4a79d9507b85329d4403c
sudo:
- apt-get update
- apt-get install -y build-essential cmake nasm ninja-build pkg-config yasm
- rm -rf /opt/android-sdk/{build-tools,ndk,platforms}
- sdkmanager 'build-tools;34.0.0-rc3' 'ndk;27.0.12077973' 'platforms;android-34'
patch:
- build-target-version.patch
- ic_launcher.patch
- x86-fseeko.patch
output: buildandroid-x86-release/bin/Drawpile-$$VERSION$$-x86.apk
build:
- BUILD_TYPE=release ANDROID_ABI=x86 ANDROID_BUILD_TOOLS_VERSION=34.0.0-rc3
ANDROID_NDK_VERSION=27.0.12077973 ANDROID_PLATFORM_VERSION=34 ANDROID_TARGET_VERSION=23
ANDROID_SDK_DIR=$$SDK$$ ANDROID_SDKMANAGER=sdkmanager bash -c 'pkg/android/build.bash
setup && pkg/android/build.bash configure -DBUILD_ANDROID_VERSION_CODE=$$VERCODE$$
-DBUILD_VERSION=$$VERSION$$ -DCLANG_TIDY=OFF -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
-DDISABLE_UPDATE_CHECK_DEFAULT=ON -DDIST_BUILD=ON -DUSE_STRICT_ALIASING=ON
-DANDROID_MIN_SDK_VERSION=23'
- QT_ANDROID_PACKAGE_MODE=release cmake --build buildandroid-x86-release --config
Release
- versionName: 2.2.2-beta.4
versionCode: 2020204004
commit: b2221cd1ca3e6ec850a4a79d9507b85329d4403c
sudo:
- apt-get update
- apt-get install -y build-essential cmake nasm ninja-build pkg-config yasm
- rm -rf /opt/android-sdk/{build-tools,ndk,platforms}
- sdkmanager 'build-tools;34.0.0-rc3' 'ndk;27.0.12077973' 'platforms;android-34'
output: buildandroid-x86_64-release/bin/Drawpile-$$VERSION$$-x86_64.apk
build:
- BUILD_TYPE=release ANDROID_ABI=x86_64 ANDROID_BUILD_TOOLS_VERSION=34.0.0-rc3
ANDROID_NDK_VERSION=27.0.12077973 ANDROID_PLATFORM_VERSION=34 ANDROID_SDK_DIR=$$SDK$$
ANDROID_SDKMANAGER=sdkmanager bash -c 'pkg/android/build.bash setup && pkg/android/build.bash
configure -DBUILD_ANDROID_VERSION_CODE=$$VERCODE$$ -DBUILD_VERSION=$$VERSION$$
-DCLANG_TIDY=OFF -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DDISABLE_UPDATE_CHECK_DEFAULT=ON
-DDIST_BUILD=ON -DUSE_STRICT_ALIASING=ON -DANDROID_MIN_SDK_VERSION=30'
- QT_ANDROID_PACKAGE_MODE=release cmake --build buildandroid-x86_64-release
--config Release
MaintainerNotes: |-
Qt's Android build process is extremely fragile and will fail by the mere
presence of superfluous build-tools, ndk or platform versions, no matter how
hard you may try to specify them explicitly. We remove those entirely before
the build and install only the required ones.
The build-tools, ndk and platform versions are the same as used in Drawpile's
own repository. You can find them there in .github/workflows/main.yml in the
step "Set Android environment variables".
Installing NDK 27.0.12077973 via the usual ndk entry under Builds fails to
find the version for some reason. We just install it via sdkmanager directly,
since we need to run that ourselves anyway due to the Qt issues above.
AutoUpdateMode: Version
UpdateCheckMode: Tags
VercodeOperation:
- 10 * %c + 1
- 10 * %c + 2
- 10 * %c + 3
- 10 * %c + 4
UpdateCheckData: metadata/fdroidversion.txt|code=([0-9]+)|.|name=(\S+)
CurrentVersion: 2.2.2-beta.4
CurrentVersionCode: 2020204004

View file

@ -0,0 +1,49 @@
diff --git a/pkg/android/build.bash b/pkg/android/build.bash
index 47f6fafc4..2758d8e05 100755
--- a/pkg/android/build.bash
+++ b/pkg/android/build.bash
@@ -26,6 +26,7 @@ croak_with_usage() {
carp " ANDROID_BUILD_TOOLS_VERSION [$ANDROID_BUILD_TOOLS_VERSION]"
carp " ANDROID_NDK_VERSION [$ANDROID_NDK_VERSION]"
carp " ANDROID_PLATFORM_VERSION [$ANDROID_PLATFORM_VERSION]"
+ carp " ANDROID_TARGET_VERSION [$ANDROID_TARGET_VERSION]"
carp " ANDROID_SDK_DIR [$ANDROID_SDK_DIR]"
carp
exit 2
@@ -98,7 +99,7 @@ run_build_script() {
-DANDROID_SDK_ROOT="$ANDROID_SDK_DIR" \
-DANDROID_NDK_ROOT="$ANDROID_NDK_DIR" \
-DANDROID_ABI="$ANDROID_ABI" \
- -DANDROID_PLATFORM="$ANDROID_PLATFORM" \
+ -DANDROID_PLATFORM="$ANDROID_TARGET_PLATFORM" \
-DTARGET_ARCH="$TARGET_ARCH" \
-DKEEP_SOURCE_DIRS=ON \
-DKEEP_BINARY_DIRS=ON \
@@ -183,9 +184,9 @@ configure() {
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION="$cmake_interprocedural_optimization" \
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_TOOLCHAIN_FILE" \
-DANDROID_ABI="$ANDROID_ABI" \
- -DANDROID_PLATFORM="$ANDROID_PLATFORM" \
+ -DANDROID_PLATFORM="$ANDROID_TARGET_PLATFORM" \
-DANDROID_SDK_BUILD_TOOLS_REVISION="$ANDROID_BUILD_TOOLS_VERSION" \
- -DANDROID_TARGET_SDK_VERSION="$ANDROID_PLATFORM_VERSION" \
+ -DANDROID_TARGET_SDK_VERSION="$ANDROID_TARGET_VERSION" \
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH \
@@ -220,6 +221,7 @@ fi
: "${ANDROID_BUILD_TOOLS_VERSION:=34.0.0-rc3}"
: "${ANDROID_NDK_VERSION:=27.0.12077973}"
: "${ANDROID_PLATFORM_VERSION:=34}"
+: "${ANDROID_TARGET_VERSION:="$ANDROID_PLATFORM_VERSION"}"
: "${ANDROID_SDK_DIR:=$HOME/Android/Sdk}"
: "${ANDROID_SDKMANAGER:=$ANDROID_SDK_DIR/cmdline-tools/latest/bin/sdkmanager}"
@@ -267,6 +269,7 @@ fi
ANDROID_NDK_DIR="$ANDROID_SDK_DIR/ndk/$ANDROID_NDK_VERSION"
ANDROID_TOOLCHAIN_FILE="$ANDROID_NDK_DIR/build/cmake/android.toolchain.cmake"
ANDROID_PLATFORM="android-$ANDROID_PLATFORM_VERSION"
+ANDROID_TARGET_PLATFORM="android-$ANDROID_TARGET_VERSION"
case $1 in
'setup')

View file

@ -0,0 +1,18 @@
diff --git a/src/desktop/CMakeLists.txt b/src/desktop/CMakeLists.txt
index e97900ef9..854547657 100644
--- a/src/desktop/CMakeLists.txt
+++ b/src/desktop/CMakeLists.txt
@@ -792,7 +792,12 @@ elseif(ANDROID)
endif()
include(DrawpileFileExtensions)
- set(ANDROID_APPLICATION_ATTRIBUTES "android:icon=\"@drawable/ic_launcher\"")
+ # Older Android versions can't deal with <resources> references for drawables.
+ if(ANDROID_MIN_SDK_VERSION GREATER_EQUAL 26)
+ set(ANDROID_APPLICATION_ATTRIBUTES "android:icon=\"@drawable/ic_launcher\"")
+ else()
+ set(ANDROID_APPLICATION_ATTRIBUTES "android:icon=\"@drawable/ic_launcher_foreground\"")
+ endif()
set(ANDROID_PACKAGE_NAMESPACE net.drawpile)
get_android_extensions(ANDROID_VIEW_INTENTS)

View file

@ -0,0 +1,23 @@
diff --git a/.github/scripts/build-ffmpeg.cmake b/.github/scripts/build-ffmpeg.cmake
index 73803de98..5d3a580a5 100644
--- a/.github/scripts/build-ffmpeg.cmake
+++ b/.github/scripts/build-ffmpeg.cmake
@@ -196,7 +196,7 @@ if(NOT EMSCRIPTEN AND LIBX264)
)
if(ANDROID)
- if(TARGET_ARCH STREQUAL "arm32")
+ if(TARGET_ARCH STREQUAL "arm32" OR TARGET_ARCH STREQUAL "x86")
# Configure only checks if *linkage* of functions works, but not if
# they're actually present in any headers. This causes weird
# compile errors about fseeko and ftello not being present on 32
@@ -204,7 +204,8 @@ if(NOT EMSCRIPTEN AND LIBX264)
# doesn't matter or we don't hit that code. So we just disable the
# error and carry on.
list(APPEND x264_configure_args "--extra-cflags=-Wno-error=implicit-function-declaration")
- elseif(TARGET_ARCH STREQUAL "x86" OR TARGET_ARCH STREQUAL "x86_64")
+ endif()
+ if(TARGET_ARCH STREQUAL "x86" OR TARGET_ARCH STREQUAL "x86_64")
# Configure fails to check for the nasm version properly somehow,
# failing even if a more recent version is found than required.
# We just disable assembly on this ABI then.