mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-games/aseprite: add 1.3.16.1
Closes: https://bugs.gentoo.org/947849 Closes: https://bugs.gentoo.org/968776 Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/45322 Closes: https://github.com/gentoo/gentoo/pull/45322 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
committed by
Sam James
parent
fd5bc812fd
commit
d4a8b52421
@@ -1,3 +1,6 @@
|
||||
DIST Aseprite-v1.3.13-Source.zip 73753124 BLAKE2B 08e4c48fd1b443ca32685323ac15ba60cf14c248011006b73d0de77c846ccbda2e69e9d6fb0866106b721142b0f4e815e572508f3edd86a4008c8643f8611cad SHA512 50b72593afe9bd136e283ed99ac37e7482d300da32e891ac4aefdf077f9f49dca1a1c3b57850d22ba72ed3d1ddb95306ceac209ead598aa77ba113015fd956f4
|
||||
DIST Aseprite-v1.3.16.1-Source.zip 80095985 BLAKE2B 09918ce72b33ec6182c415b9745be2c3c4107d7a04ee75b243bb248845cb91097a40e6474cbb7665d42b283611cd8cd7282c90452d63ceb1d6845e032689063f SHA512 bb677e71faca8b21d209bc566da2156235f6c77fdf0e408bdf2004d4b4c8300aac40a286e808f1b1a8cfb117e160ed08fcaba2eacb78265bb33abf4d07dd891f
|
||||
DIST Aseprite-v1.3.5-Source.zip 64189695 BLAKE2B f796f688f0ba565ae32fde2e8d84e39b610f451054440ced078ce1fc847a9208460b45aa6efa059a56c9e0603b4fd156cc476a2c40715ec2c37181e39c06a401 SHA512 885386e84c55b84cc85ffbf16f7269ac1640458abe973c3aa2e3eabd807ea3e1e06ee6e6dfaffff9dd7b09d3b37bd9ac41821152838cd80742edd4d53302c0e3
|
||||
DIST Skia-Linux-Release-x64-m124-08a5439a6b.zip 35293958 BLAKE2B cff433ad435fef9e4d445579ff97f566ff53a997e00104a546eed7501a9ed60cdcbe7e3a9ed8d01ff1eafacfd0c878f32c795ee49befc5df3b4c188b3a48a416 SHA512 69f11a1db7bb214679b87537097b26514f5c0a534a7fd7e4f1165f9318d8f056311cce938f9b431a64a088560f480cdddf6cd9afc4f28ebae5c384755fa36f4b
|
||||
DIST skia-m102-3338e90707323d2cd3a150276acb9f39933deee2.gh.tar.gz 53944562 BLAKE2B 9da3e8386cd7a18a6ee9362743bee4146c41038af8868a6f5e8a2dce468e4dc4669b488861d117da8d1bd8461b2ad47bfc300774a33a84153bca345d63a929a7 SHA512 9ae0032ee3861ce4958af6eb7047273d28b1faa3823576ef568e3c7faed7f49a9976540a72c3fa38234a4ae6319ac381324eff807938f9763781fd33ad67d075
|
||||
DIST skia-m124-08a5439a6b-aseprite.tar.gz 65486346 BLAKE2B 0e13f001707db70b8b949f3d8766cc05f37ea10942fd3e6c02b47190d9296564451c027cde2b86e59ff9338c19f1423dc042da210e54db0595174529baf5c43c SHA512 d4257c872a98691df12cd11786b3bd3a0d4c94dbe063d7100a7ffe4397f8ff93cbcfa924a7fcc0dd95dfa52969745b8bdb2bde55b1cfbfb8b06e5ce59f3eed5d
|
||||
|
||||
250
dev-games/aseprite/aseprite-1.3.16.1.ebuild
Normal file
250
dev-games/aseprite/aseprite-1.3.16.1.ebuild
Normal file
@@ -0,0 +1,250 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{11..14} )
|
||||
|
||||
inherit cmake desktop flag-o-matic python-any-r1 toolchain-funcs xdg-utils
|
||||
|
||||
SKIA_VER="m124-08a5439a6b"
|
||||
|
||||
DESCRIPTION="Animated sprite editor & pixel art tool"
|
||||
HOMEPAGE="https://www.aseprite.org"
|
||||
# Use forked skia sources with local shanges
|
||||
# Precompiled skia required only for icudtl.dat
|
||||
SRC_URI="https://github.com/aseprite/aseprite/releases/download/v$(ver_cut 1-3 ${PV})/Aseprite-v${PV}-Source.zip
|
||||
https://github.com/aseprite/skia/archive/refs/tags/${SKIA_VER}.tar.gz ->
|
||||
skia-${SKIA_VER}-aseprite.tar.gz
|
||||
https://github.com/aseprite/skia/releases/download/${SKIA_VER}/Skia-Linux-Release-x64.zip ->
|
||||
Skia-Linux-Release-x64-${SKIA_VER}.zip
|
||||
"
|
||||
|
||||
# See https://github.com/aseprite/aseprite#license
|
||||
LICENSE="Aseprite-EULA BSD MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
IUSE="test webp"
|
||||
|
||||
RESTRICT="bindist mirror !test? ( test )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
app-arch/libarchive:=
|
||||
app-text/cmark:=
|
||||
dev-libs/icu:=
|
||||
dev-libs/libfmt:=
|
||||
dev-libs/tinyxml2:=
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
media-libs/giflib:=
|
||||
media-libs/harfbuzz:=[truetype]
|
||||
media-libs/libjpeg-turbo:=
|
||||
media-libs/libpng:=
|
||||
net-misc/curl
|
||||
virtual/zlib:=
|
||||
virtual/opengl
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXi
|
||||
x11-libs/libxcb:=
|
||||
webp? ( media-libs/libwebp:= )
|
||||
"
|
||||
RDEPEND="
|
||||
${COMMON_DEPEND}
|
||||
gnome-extra/zenity
|
||||
"
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
x11-base/xorg-proto"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
test? ( dev-cpp/gtest )
|
||||
app-arch/unzip
|
||||
dev-build/gn
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
DOCS=(
|
||||
docs/ase-file-specs.md
|
||||
docs/gpl-palette-extension.md
|
||||
README.md
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/aseprite-1.3.16.1_shared_libarchive.patch"
|
||||
"${FILESDIR}/aseprite-1.3.16.1_shared_json11.patch"
|
||||
"${FILESDIR}/aseprite-1.3.16.1_shared_webp.patch"
|
||||
"${FILESDIR}/aseprite-1.3.16.1_laf_fixes.patch"
|
||||
"${FILESDIR}/aseprite-1.3.16.1_shared_fmt.patch"
|
||||
"${FILESDIR}/aseprite-1.3.16.1_shared_tinyxml2.patch"
|
||||
"${FILESDIR}/aseprite-1.3.16.1_shared_libjpeg-turbo.patch"
|
||||
"${FILESDIR}/aseprite-1.3.16.1_shared_icu.patch"
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
mkdir "${S}" || die
|
||||
pushd "${S}" > /dev/null || die
|
||||
default
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
# Skia: remove custom optimizations
|
||||
sed -i -e 's:"\/\/gn\/skia\:optimize",::g' \
|
||||
"skia-${SKIA_VER}/gn/BUILDCONFIG.gn" || die
|
||||
# Aseprite: don't install targets from third_party projects
|
||||
sed -i -e \
|
||||
's:add_subdirectory(tga):add_subdirectory(tga EXCLUDE_FROM_ALL):g' \
|
||||
src/CMakeLists.txt || die
|
||||
sed -i \
|
||||
-e 's:add_subdirectory(json11):add_subdirectory(json11 EXCLUDE_FROM_ALL):g' \
|
||||
-e 's:add_subdirectory(TinyEXIF):add_subdirectory(TinyEXIF EXCLUDE_FROM_ALL):g' \
|
||||
third_party/CMakeLists.txt || die
|
||||
# Aseprite: don't use bundled gtest
|
||||
sed -i -e '/add_subdirectory(googletest)/d' \
|
||||
laf/third_party/CMakeLists.txt || die
|
||||
# Fix shebang in thumbnailer
|
||||
sed -i -e 's:#!/usr/bin/sh:#!/bin/sh:' \
|
||||
src/desktop/linux/aseprite-thumbnailer || die
|
||||
# Move icudtl.dat to expected location
|
||||
mkdir -p "skia-${SKIA_VER}/third_party/externals/icu/flutter" || die
|
||||
cp third_party/externals/icu/flutter/icudtl.dat \
|
||||
"skia-${SKIA_VER}/third_party/externals/icu/flutter" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# -Werror=strict-aliasing, -Werror=odr, -Werror=lto-type-mismatch
|
||||
# https://bugs.gentoo.org/924692
|
||||
# https://github.com/aseprite/aseprite/issues/4413
|
||||
#
|
||||
# There is a bundled skia that fails with ODR errors. When excluding just
|
||||
# skia from testing, aseprite itself failed with strict-aliasing (before
|
||||
# upstream PR#84), and when that is disabled, fails again with ODR and
|
||||
# lto-type-mismatch issues.
|
||||
#
|
||||
# There are a lot of issues, so don't trust any fixes without thorough
|
||||
# testing.
|
||||
filter-lto
|
||||
|
||||
einfo "Skia configuration"
|
||||
pushd "skia-${SKIA_VER}" > /dev/null || die
|
||||
tc-export AR CC CXX
|
||||
|
||||
passflags() {
|
||||
local _f _x
|
||||
_f=( ${1} )
|
||||
_x="[$(printf '"%s", ' "${_f[@]}")]"
|
||||
myconf_gn+=( ${2}="${_x}" )
|
||||
}
|
||||
|
||||
local myconf_gn=(
|
||||
ar=\"${AR}\"
|
||||
cc=\"${CC}\"
|
||||
cxx=\"${CXX}\"
|
||||
|
||||
is_official_build=true
|
||||
is_component_build=false
|
||||
is_debug=false
|
||||
|
||||
skia_use_egl=false
|
||||
skia_use_dawn=false
|
||||
skia_use_dng_sdk=false
|
||||
skia_use_metal=false
|
||||
skia_use_wuffs=false
|
||||
|
||||
skia_enable_pdf=false
|
||||
skia_enable_svg=false
|
||||
skia_enable_skunicode=true
|
||||
skia_use_expat=false
|
||||
skia_use_ffmpeg=false
|
||||
skia_use_fontconfig=true
|
||||
skia_use_freetype=true
|
||||
skia_use_gl=true
|
||||
skia_use_harfbuzz=true
|
||||
skia_use_icu=true
|
||||
skia_use_libjpeg_turbo_decode=true
|
||||
skia_use_libjpeg_turbo_encode=true
|
||||
skia_use_libpng_decode=true
|
||||
skia_use_libpng_encode=true
|
||||
skia_use_libwebp_decode=$(usex webp true false)
|
||||
skia_use_libwebp_encode=$(usex webp true false)
|
||||
skia_use_lua=false
|
||||
skia_use_vulkan=false
|
||||
skia_use_x11=false
|
||||
skia_use_xps=false
|
||||
skia_use_zlib=true
|
||||
)
|
||||
|
||||
passflags "${CFLAGS}" extra_cflags_c
|
||||
passflags "${CXXFLAGS}" extra_cflags_cc
|
||||
passflags "${LDFLAGS}" extra_ldflags
|
||||
myconf_gn="${myconf_gn[@]}"
|
||||
set -- gn gen --args="${myconf_gn% }" out/Static
|
||||
echo "$@"
|
||||
"$@" || die
|
||||
popd > /dev/null || die
|
||||
|
||||
einfo "Aseprite configuration"
|
||||
local mycmakeargs=(
|
||||
-DENABLE_CCACHE=OFF
|
||||
-DENABLE_DESKTOP_INTEGRATION=ON
|
||||
-DENABLE_I18N_STRINGS=OFF
|
||||
-DENABLE_SCRIPTING=OFF
|
||||
-DENABLE_STEAM=OFF
|
||||
-DENABLE_TESTS="$(usex test)"
|
||||
-DENABLE_QT_THUMBNAILER=OFF
|
||||
-DENABLE_UPDATER=OFF
|
||||
-DENABLE_WEBP="$(usex webp)"
|
||||
-DLAF_WITH_EXAMPLES=OFF
|
||||
-DLAF_WITH_TESTS="$(usex test)"
|
||||
-DFULLSCREEN_PLATFORM=ON
|
||||
-DSKIA_DIR="${S}/skia-${SKIA_VER}/"
|
||||
-DSKIA_LIBRARY_DIR="${S}/skia-${SKIA_VER}/out/Static/"
|
||||
-DSKIA_LIBRARY="${S}/skia-${SKIA_VER}/out/Static/libskia.a"
|
||||
-DSKSHAPER_LIBRARY="${S}/skia-${SKIA_VER}/out/Static/libskshaper.a"
|
||||
-DSKUNICODE_LIBRARY="${S}/skia-${SKIA_VER}/out/Static/libskunicode.a"
|
||||
-DUSE_SHARED_CMARK=ON
|
||||
-DUSE_SHARED_CURL=ON
|
||||
-DUSE_SHARED_FMT=ON
|
||||
-DUSE_SHARED_FREETYPE=ON
|
||||
-DUSE_SHARED_GIFLIB=ON
|
||||
-DUSE_SHARED_HARFBUZZ=ON
|
||||
-DUSE_SHARED_JSON11=OFF # Custom methods added to bundled version
|
||||
-DUSE_SHARED_LIBARCHIVE=ON
|
||||
-DUSE_SHARED_LIBPNG=ON
|
||||
-DUSE_SHARED_PIXMAN=ON
|
||||
-DUSE_SHARED_TINYXML=ON
|
||||
-DUSE_SHARED_WEBP=ON
|
||||
-DUSE_SHARED_ZLIB=ON
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
einfo "Skia compilation"
|
||||
pushd "skia-${SKIA_VER}" > /dev/null || die
|
||||
eninja -C out/Static
|
||||
popd > /dev/null || die
|
||||
|
||||
einfo "Aseprite compilation"
|
||||
cmake_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
newicon -s 64 "${S}/data/icons/ase64.png" "${PN}.png"
|
||||
cmake_src_install
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
xdg_mimeinfo_database_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
xdg_mimeinfo_database_update
|
||||
}
|
||||
35
dev-games/aseprite/files/aseprite-1.3.16.1_laf_fixes.patch
Normal file
35
dev-games/aseprite/files/aseprite-1.3.16.1_laf_fixes.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
--- a/laf/cmake/FindSkia.cmake
|
||||
+++ b/laf/cmake/FindSkia.cmake
|
||||
@@ -172,18 +172,13 @@ if(NOT PNG_LIBRARIES)
|
||||
set(PNG_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/libpng")
|
||||
endif()
|
||||
|
||||
-set(FREETYPE_FOUND ON)
|
||||
-find_library(FREETYPE_LIBRARY freetype2 PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||
-set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
|
||||
-set(FREETYPE_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/freetype/include")
|
||||
-
|
||||
-find_library(HARFBUZZ_LIBRARY harfbuzz PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||
-set(HARFBUZZ_LIBRARIES ${HARFBUZZ_LIBRARY})
|
||||
-set(HARFBUZZ_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/harfbuzz/src")
|
||||
-
|
||||
set(SKIA_LIBRARIES
|
||||
${SKIA_LIBRARY}
|
||||
${SKIA_OPENGL_LIBRARY}
|
||||
+ ${FREETYPE_LIBRARIES}
|
||||
+ ${HARFBUZZ_LIBRARIES}
|
||||
+ ${PNG_LIBRARIES}
|
||||
+ ${WEBP_LIBRARIES}
|
||||
CACHE INTERNAL "Skia libraries")
|
||||
|
||||
add_library(skia INTERFACE)
|
||||
@@ -191,6 +186,8 @@ target_include_directories(skia INTERFACE
|
||||
${SKIA_DIR}
|
||||
${FREETYPE_INCLUDE_DIRS}
|
||||
${HARFBUZZ_INCLUDE_DIRS}
|
||||
+ ${PNG_INCLUDE_DIRS}
|
||||
+ ${WEBP_INCLUDE_DIRS}
|
||||
${PNG_INCLUDE_DIRS})
|
||||
target_link_libraries(skia INTERFACE ${SKIA_LIBRARIES})
|
||||
target_compile_definitions(skia INTERFACE
|
||||
43
dev-games/aseprite/files/aseprite-1.3.16.1_shared_fmt.patch
Normal file
43
dev-games/aseprite/files/aseprite-1.3.16.1_shared_fmt.patch
Normal file
@@ -0,0 +1,43 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
|
||||
Date: Tue, 2 Jan 2024 20:00:12 +0300
|
||||
Subject: [PATCH 4/7] Use shared fmt library
|
||||
|
||||
Added option -DUSE_SHARED_FMT
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -66,6 +66,7 @@ enable_testing()
|
||||
|
||||
option(USE_SHARED_CMARK "Use your installed copy of cmark" off)
|
||||
option(USE_SHARED_CURL "Use your installed copy of curl" off)
|
||||
+option(USE_SHARED_FMT "Use your installed copy of libfmt" off)
|
||||
option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off)
|
||||
option(USE_SHARED_JSON11 "Use your installed copy of json11" off)
|
||||
option(USE_SHARED_ZLIB "Use your installed copy of zlib" off)
|
||||
@@ -226,6 +227,10 @@ if(NOT USE_SHARED_CURL)
|
||||
set(CURL_STATICLIB ON BOOL)
|
||||
endif()
|
||||
|
||||
+if(USE_SHARED_FMT)
|
||||
+ find_package(fmt REQUIRED)
|
||||
+endif()
|
||||
+
|
||||
# zlib
|
||||
if(USE_SHARED_ZLIB)
|
||||
find_package(ZLIB REQUIRED)
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -115,7 +115,9 @@ if(NOT USE_SHARED_HARFBUZZ AND NOT LAF_BACKEND STREQUAL "skia")
|
||||
endif()
|
||||
|
||||
add_subdirectory(simpleini)
|
||||
-add_subdirectory(fmt)
|
||||
+if(NOT USE_SHARED_FMT)
|
||||
+ add_subdirectory(fmt)
|
||||
+endif()
|
||||
|
||||
# Add cmark without tests
|
||||
if(NOT USE_SHARED_CMARK)
|
||||
--
|
||||
2.51.2
|
||||
|
||||
29
dev-games/aseprite/files/aseprite-1.3.16.1_shared_icu.patch
Normal file
29
dev-games/aseprite/files/aseprite-1.3.16.1_shared_icu.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
|
||||
Date: Sat, 10 Jan 2026 04:58:38 +0300
|
||||
Subject: [PATCH 7/7] Use shared ICU library (required for skia)
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -370,6 +370,8 @@ if(REQUIRE_CURL)
|
||||
include_directories(${CURL_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
+find_package(ICU COMPONENTS uc)
|
||||
+
|
||||
# simpleini
|
||||
include_directories(${SIMPLEINI_DIR})
|
||||
|
||||
--- a/src/app/CMakeLists.txt
|
||||
+++ b/src/app/CMakeLists.txt
|
||||
@@ -788,6 +788,7 @@ target_link_libraries(app-lib
|
||||
${ZLIB_LIBRARIES}
|
||||
libjpeg-turbo::jpeg
|
||||
${LibArchive_LIBRARIES}
|
||||
+ ICU::uc
|
||||
json11
|
||||
fmt
|
||||
tinyexpr
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
|
||||
Date: Sun, 10 Jul 2022 19:53:06 +0300
|
||||
Subject: [PATCH 2/7] Use shared json11 library
|
||||
|
||||
Added option -DUSE_SHARED_JSON11
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -67,6 +67,7 @@ enable_testing()
|
||||
option(USE_SHARED_CMARK "Use your installed copy of cmark" off)
|
||||
option(USE_SHARED_CURL "Use your installed copy of curl" off)
|
||||
option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off)
|
||||
+option(USE_SHARED_JSON11 "Use your installed copy of json11" off)
|
||||
option(USE_SHARED_ZLIB "Use your installed copy of zlib" off)
|
||||
option(USE_SHARED_LIBARCHIVE "Use your installed copy of libarchive" off)
|
||||
option(USE_SHARED_LIBPNG "Use your installed copy of libpng" off)
|
||||
@@ -335,6 +336,12 @@ include_directories(${GIF_INCLUDE_DIRS})
|
||||
# libjpeg-turbo
|
||||
find_package(JpegTurbo)
|
||||
|
||||
+if(USE_SHARED_JSON11)
|
||||
+ find_package(PkgConfig QUIET)
|
||||
+ pkg_check_modules(JSON11 json11)
|
||||
+ include_directories(${JSON11_INCLUDE_DIRS})
|
||||
+endif()
|
||||
+
|
||||
# cmark
|
||||
if(USE_SHARED_CMARK)
|
||||
find_library(CMARK_LIBRARIES NAMES cmark)
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -125,7 +125,9 @@ if(NOT USE_SHARED_CMARK)
|
||||
endif()
|
||||
|
||||
# JSON
|
||||
-add_subdirectory(json11)
|
||||
+if(NOT USE_SHARED_JSON11)
|
||||
+ add_subdirectory(json11)
|
||||
+endif()
|
||||
|
||||
# libarchive
|
||||
if(NOT USE_SHARED_LIBARCHIVE)
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
|
||||
Date: Fri, 9 Oct 2020 02:18:36 +0300
|
||||
Subject: [PATCH 1/7] Make LibArchive as shared library dependency
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -68,6 +68,7 @@ option(USE_SHARED_CMARK "Use your installed copy of cmark" off)
|
||||
option(USE_SHARED_CURL "Use your installed copy of curl" off)
|
||||
option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off)
|
||||
option(USE_SHARED_ZLIB "Use your installed copy of zlib" off)
|
||||
+option(USE_SHARED_LIBARCHIVE "Use your installed copy of libarchive" off)
|
||||
option(USE_SHARED_LIBPNG "Use your installed copy of libpng" off)
|
||||
option(USE_SHARED_TINYEXIF "Use your installed copy of TinyEXIF" off)
|
||||
option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off)
|
||||
@@ -237,6 +238,16 @@ else()
|
||||
endif()
|
||||
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||
|
||||
+# libarchive
|
||||
+if(USE_SHARED_LIBARCHIVE)
|
||||
+ find_package(LibArchive REQUIRED)
|
||||
+else()
|
||||
+ set(LibArchive_FOUND)
|
||||
+ set(LibArchive_LIBRARIES archive_static)
|
||||
+ set(LibArchive_INCLUDE_DIRS $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/libarchive>)
|
||||
+endif()
|
||||
+include_directories(${LibArchive_INCLUDE_DIRS})
|
||||
+
|
||||
# libpng
|
||||
if(USE_SHARED_LIBPNG)
|
||||
find_package(PNG REQUIRED)
|
||||
--- a/src/app/CMakeLists.txt
|
||||
+++ b/src/app/CMakeLists.txt
|
||||
@@ -787,8 +787,8 @@ target_link_libraries(app-lib
|
||||
${PNG_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
libjpeg-turbo
|
||||
+ ${LibArchive_LIBRARIES}
|
||||
json11
|
||||
- archive_static
|
||||
fmt
|
||||
tinyexpr
|
||||
qoi)
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -128,6 +128,7 @@ endif()
|
||||
add_subdirectory(json11)
|
||||
|
||||
# libarchive
|
||||
+if(NOT USE_SHARED_LIBARCHIVE)
|
||||
set(HAVE_WCSCPY 1)
|
||||
set(HAVE_WCSLEN 1)
|
||||
|
||||
@@ -151,6 +152,7 @@ set(WINDOWS_VERSION "WS08" CACHE STRING "Set Windows Vista as the target version
|
||||
add_subdirectory(libarchive)
|
||||
target_include_directories(archive_static INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/libarchive>)
|
||||
+endif()
|
||||
|
||||
# benchmark
|
||||
if(ENABLE_BENCHMARKS)
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
|
||||
Date: Fri, 9 Jan 2026 02:24:47 +0300
|
||||
Subject: [PATCH 6/7] Use shared libjpeg-turbo library
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -341,7 +341,7 @@ endif()
|
||||
include_directories(${GIF_INCLUDE_DIRS})
|
||||
|
||||
# libjpeg-turbo
|
||||
-find_package(JpegTurbo)
|
||||
+find_package(libjpeg-turbo)
|
||||
|
||||
if(USE_SHARED_JSON11)
|
||||
find_package(PkgConfig QUIET)
|
||||
--- a/src/app/CMakeLists.txt
|
||||
+++ b/src/app/CMakeLists.txt
|
||||
@@ -786,7 +786,7 @@ target_link_libraries(app-lib
|
||||
${GIF_LIBRARIES}
|
||||
${PNG_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
- libjpeg-turbo
|
||||
+ libjpeg-turbo::jpeg
|
||||
${LibArchive_LIBRARIES}
|
||||
json11
|
||||
fmt
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
|
||||
Date: Sat, 29 Mar 2025 02:36:18 +0300
|
||||
Subject: [PATCH 5/7] Fix linking with third_party library
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -282,6 +282,7 @@ add_definitions(-DPNG_NO_MMX_CODE) # Do not use MMX optimizations in PNG code
|
||||
if(USE_SHARED_TINYXML)
|
||||
find_library(TINYXML_LIBRARY NAMES tinyxml2)
|
||||
find_path(TINYXML_INCLUDE_DIR NAMES tinyxml2.h)
|
||||
+ find_package(tinyxml2 REQUIRED)
|
||||
else()
|
||||
set(TINYXML_LIBRARY tinyxml2)
|
||||
set(TINYXML_INCLUDE_DIR ${TINYXML_DIR})
|
||||
--
|
||||
2.51.2
|
||||
|
||||
71
dev-games/aseprite/files/aseprite-1.3.16.1_shared_webp.patch
Normal file
71
dev-games/aseprite/files/aseprite-1.3.16.1_shared_webp.patch
Normal file
@@ -0,0 +1,71 @@
|
||||
From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle
|
||||
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
|
||||
Date: Sun, 10 Jul 2022 20:14:00 +0300
|
||||
Subject: [PATCH 3/7] Use shared webp library
|
||||
|
||||
Added option -DUSE_SHARED_WEBP
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -74,6 +74,7 @@ option(USE_SHARED_LIBPNG "Use your installed copy of libpng" off)
|
||||
option(USE_SHARED_TINYEXIF "Use your installed copy of TinyEXIF" off)
|
||||
option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off)
|
||||
option(USE_SHARED_PIXMAN "Use your installed copy of pixman" off)
|
||||
+option(USE_SHARED_WEBP "Use your installed copy of webp" off)
|
||||
option(USE_SHARED_FREETYPE "Use shared FreeType library" off)
|
||||
option(USE_SHARED_HARFBUZZ "Use shared HarfBuzz library" off)
|
||||
option(ENABLE_ASEPRITE_EXE "Compile main Aseprite executable" on)
|
||||
@@ -383,21 +384,27 @@ add_subdirectory(laf)
|
||||
|
||||
# libwebp
|
||||
if(ENABLE_WEBP)
|
||||
- # Use libwebp from Skia
|
||||
- if(LAF_BACKEND STREQUAL "skia")
|
||||
- find_library(WEBP_LIBRARIES webp
|
||||
- NAMES libwebp # required for Windows
|
||||
- PATHS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||
- set(WEBP_INCLUDE_DIR "${SKIA_DIR}/third_party/externals/libwebp/src")
|
||||
- if(WEBP_LIBRARIES)
|
||||
- set(WEBP_FOUND ON)
|
||||
+ if(USE_SHARED_WEBP)
|
||||
+ find_package(PkgConfig QUIET)
|
||||
+ pkg_check_modules(WEBP libwebp libwebpdemux libwebpmux)
|
||||
+ include_directories(${WEBP_INCLUDE_DIR})
|
||||
+ else()
|
||||
+ # Use libwebp from Skia
|
||||
+ if(LAF_BACKEND STREQUAL "skia")
|
||||
+ find_library(WEBP_LIBRARIES webp
|
||||
+ NAMES libwebp # required for Windows
|
||||
+ PATHS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||
+ set(WEBP_INCLUDE_DIR "${SKIA_DIR}/third_party/externals/libwebp/src")
|
||||
+ if(WEBP_LIBRARIES)
|
||||
+ set(WEBP_FOUND ON)
|
||||
+ else()
|
||||
+ set(WEBP_FOUND OFF)
|
||||
+ endif()
|
||||
else()
|
||||
- set(WEBP_FOUND OFF)
|
||||
+ set(WEBP_FOUND ON)
|
||||
+ set(WEBP_LIBRARIES webp webpdemux libwebpmux)
|
||||
+ set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src)
|
||||
endif()
|
||||
- else()
|
||||
- set(WEBP_FOUND ON)
|
||||
- set(WEBP_LIBRARIES webp webpdemux libwebpmux)
|
||||
- set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -31,7 +31,7 @@ if(NOT USE_SHARED_GIFLIB)
|
||||
add_subdirectory(giflib)
|
||||
endif()
|
||||
|
||||
-if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia")
|
||||
+if(ENABLE_WEBP AND NOT USE_SHARED_WEBP AND NOT LAF_BACKEND STREQUAL "skia")
|
||||
set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.")
|
||||
set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "Build animation utilities.")
|
||||
set(WEBP_BUILD_CWEBP OFF CACHE BOOL "Build the cwebp command line tool.")
|
||||
--
|
||||
2.51.2
|
||||
|
||||
Reference in New Issue
Block a user