diff options
-rw-r--r-- | .SRCINFO | 151 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | .nvchecker.toml | 4 | ||||
-rw-r--r-- | PKGBUILD | 351 | ||||
-rw-r--r-- | aseprite.desktop | 14 | ||||
-rw-r--r-- | desktop.patch | 25 | ||||
-rw-r--r-- | optional-pixman.patch | 23 | ||||
-rw-r--r-- | shared-fmt.patch | 71 | ||||
-rw-r--r-- | shared-libarchive.patch | 74 | ||||
-rw-r--r-- | shared-libwebp.patch | 59 | ||||
-rw-r--r-- | shared-skia-deps.patch | 21 |
11 files changed, 465 insertions, 333 deletions
@@ -1,129 +1,54 @@ pkgbase = aseprite pkgdesc = Create animated sprites and pixel art - pkgver = 1.2.25 + pkgver = 1.3.6 pkgrel = 1 - url = http://www.aseprite.org/ + url = https://www.aseprite.org/ arch = x86_64 - license = custom + license = LicenseRef-Aseprite-EULA makedepends = cmake makedepends = ninja makedepends = git - makedepends = python2 - makedepends = freeglut - makedepends = xorgproto + makedepends = python makedepends = libxi + makedepends = gn makedepends = harfbuzz-icu - makedepends = nettle + makedepends = clang depends = cmark - depends = curl - depends = giflib + depends = libcurl.so + depends = libgif.so + depends = libjpeg.so depends = zlib depends = libpng depends = tinyxml - depends = freetype2 - depends = fontconfig - depends = libxcursor + depends = libfreetype.so + depends = libarchive.so + depends = libfmt.so + depends = libwebp.so + depends = libwebpmux.so + depends = libwebpdemux.so depends = hicolor-icon-theme - conflicts = aseprite-git - conflicts = aseprite-gpl - conflicts = skia-git - noextract = aseprite-buildtools.tar.gz - noextract = aseprite-common.tar.gz - noextract = aseprite-angle2.tar.gz - noextract = aseprite-dawn.tar.gz - noextract = aseprite-dng_sdk.tar.gz - noextract = aseprite-egl-registry.tar.gz - noextract = aseprite-expat.tar.gz - noextract = aseprite-freetype.tar.gz - noextract = aseprite-harfbuzz.tar.gz - noextract = aseprite-icu.tar.gz - noextract = aseprite-imgui.tar.gz - noextract = aseprite-libgifcodec.tar.gz - noextract = aseprite-libjpeg-turbo.tar.gz - noextract = aseprite-libpng.tar.gz - noextract = aseprite-libwebp.tar.gz - noextract = aseprite-lua.tar.gz - noextract = aseprite-microhttpd.tar.gz - noextract = aseprite-opencl-lib.tar.gz - noextract = aseprite-opencl-registry.tar.gz - noextract = aseprite-opengl-registry.tar.gz - noextract = aseprite-piex.tar.gz - noextract = aseprite-sdl.tar.gz - noextract = aseprite-sfntly.tar.gz - noextract = aseprite-spirv-cross.tar.gz - noextract = aseprite-spirv-headers.tar.gz - noextract = aseprite-spirv-tools.tar.gz - noextract = aseprite-swiftshader.tar.gz - noextract = aseprite-wuffs.tar.gz - noextract = aseprite-zlib.tar.gz - source = https://github.com/aseprite/aseprite/releases/download/v1.2.25/Aseprite-v1.2.25-Source.zip - source = aseprite.desktop - source = git+https://chromium.googlesource.com/chromium/tools/depot_tools.git - source = git+https://github.com/aseprite/skia.git#branch=aseprite-m81 - source = aseprite-buildtools.tar.gz::https://chromium.googlesource.com/chromium/buildtools.git/+archive/505de88083136eefd056e5ee4ca0f01fe9b33de8.tar.gz - source = aseprite-common.tar.gz::https://skia.googlesource.com/common.git/+archive/9737551d7a52c3db3262db5856e6bcd62c462b92.tar.gz - source = aseprite-angle2.tar.gz::https://chromium.googlesource.com/angle/angle.git/+archive/ee07cb317579dfda40dabb5d6d9c209e0e9e0643.tar.gz - source = aseprite-dawn.tar.gz::https://dawn.googlesource.com/dawn.git/+archive/604072bc2ed01018eb03bcbbf9d94042f679af63.tar.gz - source = aseprite-dng_sdk.tar.gz::https://android.googlesource.com/platform/external/dng_sdk.git/+archive/c8d0c9b1d16bfda56f15165d39e0ffa360a11123.tar.gz - source = aseprite-egl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry/+archive/a0bca08de07c7d7651047bedc0b653cfaaa4f2ae.tar.gz - source = aseprite-expat.tar.gz::https://android.googlesource.com/platform/external/expat.git/+archive/e5aa0a2cb0a5f759ef31c0819dc67d9b14246a4a.tar.gz - source = aseprite-freetype.tar.gz::https://skia.googlesource.com/third_party/freetype2.git/+archive/0a3d2bb99b45b72e1d45185ab054efa993d97210.tar.gz - source = aseprite-harfbuzz.tar.gz::https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git/+archive/3a74ee528255cc027d84b204a87b5c25e47bff79.tar.gz - source = aseprite-icu.tar.gz::https://chromium.googlesource.com/chromium/deps/icu.git/+archive/dbd3825b31041d782c5b504c59dcfb5ac7dda08c.tar.gz - source = aseprite-imgui.tar.gz::https://skia.googlesource.com/external/github.com/ocornut/imgui.git/+archive/d38d7c6628bebd02692cfdd6fa76b4d992a35b75.tar.gz - source = aseprite-libgifcodec.tar.gz::https://skia.googlesource.com/libgifcodec/+archive/38d9c73f49b861bb4a9829371ac311544b120023.tar.gz - source = aseprite-libjpeg-turbo.tar.gz::https://skia.googlesource.com/external/github.com/libjpeg-turbo/libjpeg-turbo.git/+archive/574f3a772c96dc9db2c98ef24706feb3f6dbda9a.tar.gz - source = aseprite-libpng.tar.gz::https://skia.googlesource.com/third_party/libpng.git/+archive/386707c6d19b974ca2e3db7f5c61873813c6fe44.tar.gz - source = aseprite-libwebp.tar.gz::https://chromium.googlesource.com/webm/libwebp.git/+archive/0fe1a89dbf1930fc2554dbe76adad5d962054ead.tar.gz - source = aseprite-lua.tar.gz::https://skia.googlesource.com/external/github.com/lua/lua.git/+archive/e354c6355e7f48e087678ec49e340ca0696725b1.tar.gz - source = aseprite-microhttpd.tar.gz::https://android.googlesource.com/platform/external/libmicrohttpd/+archive/748945ec6f1c67b7efc934ab0808e1d32f2fb98d.tar.gz - source = aseprite-opencl-lib.tar.gz::https://skia.googlesource.com/external/github.com/GPUOpen-Tools/common-lib-amd-APPSDK-3.0/+archive/4e6d30e406d2e5a65e1d65e404fe6df5f772a32b.tar.gz - source = aseprite-opencl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/OpenCL-Registry/+archive/932ed55c85f887041291cef8019e54280c033c35.tar.gz - source = aseprite-opengl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry/+archive/14b80ebeab022b2c78f84a573f01028c96075553.tar.gz - source = aseprite-piex.tar.gz::https://android.googlesource.com/platform/external/piex.git/+archive/bb217acdca1cc0c16b704669dd6f91a1b509c406.tar.gz - source = aseprite-sdl.tar.gz::https://skia.googlesource.com/third_party/sdl/+archive/5d7cfcca344034aff9327f77fc181ae3754e7a90.tar.gz - source = aseprite-sfntly.tar.gz::https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git/+archive/b55ff303ea2f9e26702b514cf6a3196a2e3e2974.tar.gz - source = aseprite-spirv-cross.tar.gz::https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross/+archive/53ab2144b90abede33be5161aec5dfc94ddc3caf.tar.gz - source = aseprite-spirv-headers.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+archive/29c11140baaf9f7fdaa39a583672c556bf1795a1.tar.gz - source = aseprite-spirv-tools.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+archive/0c4feb643b89d1792b02f7cbef315e9d95633bd7.tar.gz - source = aseprite-swiftshader.tar.gz::https://swiftshader.googlesource.com/SwiftShader/+archive/430def835f9f85d52f4a96db9b715cd9a7403c9c.tar.gz - source = aseprite-wuffs.tar.gz::https://skia.googlesource.com/external/github.com/google/wuffs.git/+archive/4080840928c0b05a80cda0d14ac2e2615f679f1a.tar.gz - source = aseprite-zlib.tar.gz::https://chromium.googlesource.com/chromium/src/third_party/zlib/+archive/ea3ba903faac98b64b2bf8de5e98cd97b335a474.tar.gz - source = gn::https://chromium-gn.storage-download.googleapis.com/3523d50538357829725d4ed74b777a572ce0ac74 - sha256sums = c5496ad159454b44e9b6c0f872553a192a7d20feeb6337a799c3f7009cdda558 - sha256sums = deaf646a615c79a4672b087562a09c44beef37e7acfc6f5f66a437d4f3b97a25 - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = c8c2d617f1a33d6eb27f25ebcc30bd8ba1e6a0aa980cada21dda2ad1401fa4a2 + depends = libexpat.so=1-64 + depends = libharfbuzz.so=0-64 + depends = libgl + depends = libfontconfig.so + depends = libxcursor + noextract = Aseprite-v1.3.6-Source.zip + noextract = skia-m102.tar.gz + source = https://github.com/aseprite/aseprite/releases/download/v1.3.6/Aseprite-v1.3.6-Source.zip + source = skia-m102.tar.gz::https://github.com/aseprite/skia/archive/refs/tags/m102-861e4743af.tar.gz + source = desktop.patch + source = shared-fmt.patch + source = shared-libarchive.patch + source = shared-libwebp.patch + source = shared-skia-deps.patch + source = optional-pixman.patch + sha256sums = 5e974aa2786297981cd5ebe81f040a49b722bddfe33d70def207ad06cb0d34fc + sha256sums = 8d76c1ad3693e1fc019eb14d806082148eb4ed7d601474aeeaae601b05a9b3ad + sha256sums = 8b14e36939e930de581e95abf0591645aa0fcfd47161cf88b062917dbaaef7f9 + sha256sums = c3591d376180d99ff8001c3d549c0bd18ef5e4d95f1755ccaa8e2fd65dd5d2b3 + sha256sums = d7f2f8c43d24382453273ed17b1c0e05928980a36ad0b7c988da3aa0fe32de53 + sha256sums = 320ed456512fb26f30aa682d7d34529d6fc3372d76daba3812cecb8fc21d5f1d + sha256sums = eb9f544e68b41b5cb1a9ab7a6648db51587e67e94f1a452cb5a84f3d224bf5d0 + sha256sums = c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654 pkgname = aseprite - diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 91bec3194be6..000000000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -* -!.gitignore -!.SRCINFO -!aseprite.desktop -!PKGBUILD
\ No newline at end of file diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 000000000000..5097652e73fc --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[aseprite] +source = "regex" +regex = 'v(\d+\.\d+\.\d+)' +url = "https://github.com/aseprite/aseprite/tags" @@ -1,220 +1,169 @@ -# Maintainer: Fredrick Brennan <copypaste@kittens.ph> -# Maintainer: Andrew Bueide <abueide@protonmail.com> -# Maintainer: rouhannb <rouhannb@gmail.com> +# Maintainer: Imperator Storm <ImperatorStorm11@protonmail.com> +# Maintainer: Eldred Habert <me@eldred.fr> +# Contributor: Fredrick Brennan <copypaste@kittens.ph> +# Contributor: Andrew Bueide <abueide@protonmail.com> +# Contributor: rouhannb <rouhannb@protonmail.com> # Contributor: Wilson E. Alvarez <wilson.e.alvarez1@gmail.com> # Contributor: Benoit Favre <benoit.favre@gmail.com> # Contributor: Alexander Rødseth <rodseth@gmail.com> # Contributor: Kamil Biduś <kamil.bidus@gmail.com> pkgname=aseprite -pkgver=1.2.25 +pkgver=1.3.6 +_skiaver=m102 +_skiahash=861e4743af pkgrel=1 pkgdesc='Create animated sprites and pixel art' arch=('x86_64') -url="http://www.aseprite.org/" -license=('custom') -depends=('cmark' 'curl' 'giflib' 'zlib' 'libpng' 'tinyxml' 'freetype2' 'fontconfig' 'libxcursor' - 'hicolor-icon-theme') -makedepends=('cmake' 'ninja' 'git' 'python2' 'freeglut' 'xorgproto' 'libxi' 'harfbuzz-icu' - 'nettle') -conflicts=("aseprite-git" "aseprite-gpl" "skia-git") -source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname^}-\ -v${pkgver}-Source.zip" -"${pkgname}.desktop" -"git+https://chromium.googlesource.com/chromium/tools/depot_tools.git" -"git+https://github.com/${pkgname}/skia.git#branch=${pkgname}-m81" -"${pkgname}-buildtools.tar.gz::https://chromium.googlesource.com/chromium/buildtools.git/+archive/\ -505de88083136eefd056e5ee4ca0f01fe9b33de8.tar.gz" -"${pkgname}-common.tar.gz::https://skia.googlesource.com/common.git/+archive/\ -9737551d7a52c3db3262db5856e6bcd62c462b92.tar.gz" -"${pkgname}-angle2.tar.gz::https://chromium.googlesource.com/angle/angle.git/+archive/\ -ee07cb317579dfda40dabb5d6d9c209e0e9e0643.tar.gz" -"${pkgname}-dawn.tar.gz::https://dawn.googlesource.com/dawn.git/+archive/\ -604072bc2ed01018eb03bcbbf9d94042f679af63.tar.gz" -"${pkgname}-dng_sdk.tar.gz::https://android.googlesource.com/platform/external/dng_sdk.git/\ -+archive/c8d0c9b1d16bfda56f15165d39e0ffa360a11123.tar.gz" -"${pkgname}-egl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup\ -/EGL-Registry/+archive/a0bca08de07c7d7651047bedc0b653cfaaa4f2ae.tar.gz" -"${pkgname}-expat.tar.gz::https://android.googlesource.com/platform/external/expat.git/+archive/\ -e5aa0a2cb0a5f759ef31c0819dc67d9b14246a4a.tar.gz" -"${pkgname}-freetype.tar.gz::https://skia.googlesource.com/third_party/freetype2.git/+archive/\ -0a3d2bb99b45b72e1d45185ab054efa993d97210.tar.gz" -"${pkgname}-harfbuzz.tar.gz::https://chromium.googlesource.com/external/github.com/harfbuzz/\ -harfbuzz.git/+archive/3a74ee528255cc027d84b204a87b5c25e47bff79.tar.gz" -"${pkgname}-icu.tar.gz::https://chromium.googlesource.com/chromium/deps/icu.git/+archive/\ -dbd3825b31041d782c5b504c59dcfb5ac7dda08c.tar.gz" -"${pkgname}-imgui.tar.gz::https://skia.googlesource.com/external/github.com/ocornut/imgui.git\ -/+archive/d38d7c6628bebd02692cfdd6fa76b4d992a35b75.tar.gz" -"${pkgname}-libgifcodec.tar.gz::https://skia.googlesource.com/libgifcodec/+archive/\ -38d9c73f49b861bb4a9829371ac311544b120023.tar.gz" -"${pkgname}-libjpeg-turbo.tar.gz::https://skia.googlesource.com/external/github.com/libjpeg-turbo\ -/libjpeg-turbo.git/+archive/574f3a772c96dc9db2c98ef24706feb3f6dbda9a.tar.gz" -"${pkgname}-libpng.tar.gz::https://skia.googlesource.com/third_party/libpng.git/+archive/\ -386707c6d19b974ca2e3db7f5c61873813c6fe44.tar.gz" -"${pkgname}-libwebp.tar.gz::https://chromium.googlesource.com/webm/libwebp.git/+archive/\ -0fe1a89dbf1930fc2554dbe76adad5d962054ead.tar.gz" -"${pkgname}-lua.tar.gz::https://skia.googlesource.com/external/github.com/lua/lua.git/+archive/\ -e354c6355e7f48e087678ec49e340ca0696725b1.tar.gz" -"${pkgname}-microhttpd.tar.gz::https://android.googlesource.com/platform/external/libmicrohttpd\ -/+archive/748945ec6f1c67b7efc934ab0808e1d32f2fb98d.tar.gz" -"${pkgname}-opencl-lib.tar.gz::https://skia.googlesource.com/external/github.com/GPUOpen-Tools/\ -common-lib-amd-APPSDK-3.0/+archive/4e6d30e406d2e5a65e1d65e404fe6df5f772a32b.tar.gz" -"${pkgname}-opencl-registry.tar.gz::https://skia.googlesource.com/external/github.com/\ -KhronosGroup/OpenCL-Registry/+archive/932ed55c85f887041291cef8019e54280c033c35.tar.gz" -"${pkgname}-opengl-registry.tar.gz::https://skia.googlesource.com/external/github.com/\ -KhronosGroup/OpenGL-Registry/+archive/14b80ebeab022b2c78f84a573f01028c96075553.tar.gz" -"${pkgname}-piex.tar.gz::https://android.googlesource.com/platform/external/piex.git/+archive/\ -bb217acdca1cc0c16b704669dd6f91a1b509c406.tar.gz" -"${pkgname}-sdl.tar.gz::https://skia.googlesource.com/third_party/sdl/+archive/\ -5d7cfcca344034aff9327f77fc181ae3754e7a90.tar.gz" -"${pkgname}-sfntly.tar.gz::https://chromium.googlesource.com/external/github.com/googlei18n/\ -sfntly.git/+archive/b55ff303ea2f9e26702b514cf6a3196a2e3e2974.tar.gz" -"${pkgname}-spirv-cross.tar.gz::https://chromium.googlesource.com/external/github.com/\ -KhronosGroup/SPIRV-Cross/+archive/53ab2144b90abede33be5161aec5dfc94ddc3caf.tar.gz" -"${pkgname}-spirv-headers.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/\ -SPIRV-Headers.git/+archive/29c11140baaf9f7fdaa39a583672c556bf1795a1.tar.gz" -"${pkgname}-spirv-tools.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup\ -/SPIRV-Tools.git/+archive/0c4feb643b89d1792b02f7cbef315e9d95633bd7.tar.gz" -"${pkgname}-swiftshader.tar.gz::https://swiftshader.googlesource.com/SwiftShader/+archive/\ -430def835f9f85d52f4a96db9b715cd9a7403c9c.tar.gz" -"${pkgname}-wuffs.tar.gz::https://skia.googlesource.com/external/github.com/google/wuffs.git\ -/+archive/4080840928c0b05a80cda0d14ac2e2615f679f1a.tar.gz" -"${pkgname}-zlib.tar.gz::https://chromium.googlesource.com/chromium/src/third_party/zlib/+archive/\ -ea3ba903faac98b64b2bf8de5e98cd97b335a474.tar.gz" -"gn::https://chromium-gn.storage-download.googleapis.com/3523d50538357829725d4ed74b777a572ce0ac74" -) -_gitsrc=("${source[@]:4:29}") -noextract=("${_gitsrc[@]%%::*}") -sha256sums=('c5496ad159454b44e9b6c0f872553a192a7d20feeb6337a799c3f7009cdda558' - 'deaf646a615c79a4672b087562a09c44beef37e7acfc6f5f66a437d4f3b97a25' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'c8c2d617f1a33d6eb27f25ebcc30bd8ba1e6a0aa980cada21dda2ad1401fa4a2') +url="https://www.aseprite.org/" +license=('LicenseRef-Aseprite-EULA') +depends=(# ~ Aseprite's direct dependencies ~ + # pixman is not linked to because we use Skia instead + # harfbuzz is linked statically because Aseprite expects an older version + cmark libcurl.so libgif.so libjpeg.so zlib libpng tinyxml libfreetype.so libarchive.so libfmt.so + libwebp.so libwebpmux.so libwebpdemux.so + hicolor-icon-theme # For installing Aseprite's icons + # ~ Skia deps ~ + # (Skia links dynamically to HarfBuzz, only Aseprite itself doesn't. >_<) + libexpat.so=1-64 libharfbuzz.so=0-64 libgl + # Already required by Aseprite: libjpeg-turbo libpng zlib freetype2 + # These two are only reported by Namcap, but don't seem to be direct dependencies? + libfontconfig.so libxcursor) +makedepends=(# "Meta" dependencies + cmake ninja git python + # Aseprite (including e.g. LAF) + libxi + # Skia + gn harfbuzz-icu + # TODO: Benchmark clang v gcc + # Fuck it, compiling with GCC>=13 is broken and I'm not gonna write a patch to fix it + clang + ) +source=("https://github.com/aseprite/aseprite/releases/download/v$pkgver/Aseprite-v$pkgver-Source.zip" + # Which branch a given build of Aseprite requires is noted in its `INSTALL.md` + "skia-$_skiaver.tar.gz::https://github.com/aseprite/skia/archive/refs/tags/$_skiaver-$_skiahash.tar.gz" + desktop.patch + shared-fmt.patch + # Based on https://patch-diff.githubusercontent.com/raw/aseprite/aseprite/pull/2535.patch + shared-libarchive.patch + # Based on https://patch-diff.githubusercontent.com/raw/aseprite/aseprite/pull/2523.patch + shared-libwebp.patch + shared-skia-deps.patch + optional-pixman.patch) +noextract=("Aseprite-v$pkgver-Source.zip" + "skia-$_skiaver.tar.gz") # Don't extract Aseprite or skia sources at the root +sha256sums=('5e974aa2786297981cd5ebe81f040a49b722bddfe33d70def207ad06cb0d34fc' + '8d76c1ad3693e1fc019eb14d806082148eb4ed7d601474aeeaae601b05a9b3ad' + '8b14e36939e930de581e95abf0591645aa0fcfd47161cf88b062917dbaaef7f9' + 'c3591d376180d99ff8001c3d549c0bd18ef5e4d95f1755ccaa8e2fd65dd5d2b3' + 'd7f2f8c43d24382453273ed17b1c0e05928980a36ad0b7c988da3aa0fe32de53' + '320ed456512fb26f30aa682d7d34529d6fc3372d76daba3812cecb8fc21d5f1d' + 'eb9f544e68b41b5cb1a9ab7a6648db51587e67e94f1a452cb5a84f3d224bf5d0' + 'c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654') prepare() { - cd "${srcdir}" - - # Install skia deps (essentially runs git-sync-deps with the files already downloaded) - mkdir --parents --verbose skia/third_party/externals - - for _dep in buildtools common - do - mkdir --parents --verbose "skia/${_dep}" - tar --verbose --extract --file "${pkgname}-${_dep}.tar.gz" --directory "skia/${_dep}" - done - - for _dep in angle2 dawn dng_sdk egl-registry expat freetype harfbuzz icu imgui opencl-registry \ - libjpeg-turbo libpng libwebp lua microhttpd opencl-lib opengl-registry piex \ - sdl sfntly spirv-cross spirv-headers spirv-tools swiftshader zlib wuffs - do - mkdir --parents --verbose "skia/third_party/externals/${_dep}" - tar --verbose --extract --file "${pkgname}-${_dep}.tar.gz" --directory \ - "skia/third_party/externals/${_dep}" - done - - chmod u=rwx,g=rx,o=rx --verbose gn - mv --verbose gn skia/bin/gn - cp --verbose skia/bin/gn skia/buildtools/linux64/gn - - mkdir --parents --verbose binsub - ln --force --symbolic $(which python2) binsub/python + # Extract Aseprite's sources + mkdir -p aseprite + bsdtar -xf "${noextract[0]}" -C aseprite + # Extract Skia's sources + mkdir -p skia + bsdtar xf skia-$_skiaver.tar.gz --strip-components=1 -C skia + # Fix up Aseprite's desktop integration + env -C aseprite patch -tp1 <desktop.patch + # Allow using more shared libs + env -C aseprite patch -tp1 <shared-fmt.patch + env -C aseprite patch -tp1 <shared-libarchive.patch + env -C aseprite patch -tp1 <shared-libwebp.patch + env -C aseprite patch -tp1 <optional-pixman.patch + # Their "FindSkia" module forcefully tries to use Skia's FreeType and HarfBuzz, + # but we don't clone those because we use the shared ones. Avoid overwriting the settings instead. + env -C aseprite patch -tp1 <shared-skia-deps.patch } build() { - cd "${srcdir}" - - # Build skia - _skiapath="${srcdir}/binsub:${srcdir}/depot_tools:${PATH}" - cd skia - PATH="${_skiapath}" gn gen out/Release-x64 \ - --args="is_debug=false is_official_build=true skia_use_system_expat=false \ - skia_use_system_icu=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false \ - skia_use_system_libwebp=false skia_use_system_zlib=false" - PATH="${_skiapath}" ninja -C out/Release-x64 skia modules - - # Build aseprite - cd "${srcdir}" - mkdir --parents --verbose build && cd build - - cmake \ - -DWITH_WEBP_SUPPORT=ON \ - -DUSE_SHARED_CURL=ON \ - -DUSE_SHARED_GIFLIB=ON \ - -DUSE_SHARED_HARFBUZZ=ON \ - -DUSE_SHARED_ZLIB=ON \ - -DUSE_SHARED_LIBPNG=ON \ - -DUSE_SHARED_TINYXML=ON \ - -DUSE_SHARED_CMARK=ON \ - -DENABLE_UPDATER=OFF \ - -DUSE_SHARED_FREETYPE=ON \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release \ - -DLAF_BACKEND=skia \ - -DSKIA_DIR="${srcdir}/skia" \ - -DSKIA_LIBRARY_DIR="${srcdir}/skia/out/Release-x64" \ - -DSKIA_LIBRARY="${srcdir}/skia/out/Release-x64/libskia.a" \ - -G Ninja \ - .. + echo Building Skia... + local _skiadir="$PWD/skia/obj" + export CXX=clang++ + export CC=clang + export AR=ar + export NM=nm + # Flags can be found by running `gn args --list "$_skiadir"` from skia's directory. + # (Pipe the output somewhere, there's a LOT of args.) + # + # The flags are chosen to provide the API required by Aseprite and nothing else (if possible), + # so as to reduce the compilation time and final binary size. + # + # Individual rationales: + # is_official_build: Suggested by the build instructions. + # skia_build_fuzzers: We don't care about them. + # skia_enable_pdf: Not used by Aseprite. + # skia_enable_skottie: Not used by Aseprite. + # skia_enable_sksl: laf seems to want to use it... but no references are made anywhere. + # skia_enable_svg: Not used by Aseprite. It seems it has its own SVG exporter. + # skia_use_lib*_{encode,decode}: Aseprite only loads PNG assets, so only libpng is required. + # skia_use_expat: Only required for the Android font manager and SVGCanvas/SVGDevice. + # skia_use_piex: Not used by Aseprite. Only used for reading RAW files. + # skia_use_xps: Not used outside of Windows. + # skia_use_zlib: Only used for PDF and RAW files. + # skia_use_libgifcodec: Only used for GIFs, which Aseprite doesn't use. + # skia_enable_{particles,skparagraph,sktext}: Aseprite does not link against this library. + env -C skia gn gen "$_skiadir" --args="$(printf '%s ' \ +is_official_build=true skia_build_fuzzers=false \ +skia_enable_{pdf,skottie,sksl,svg}=false \ +skia_use_{libjpeg_turbo,libwebp}_{encode,decode}=false \ +skia_use_{expat,piex,xps,zlib,libgifcodec}=false \ +skia_enable_{particles,skparagraph,sktext}=false)" + ninja -C "$_skiadir" skia modules + + echo Building Aseprite... + # Suppress install messages since we install to a temporary area; `install -v` will do the job + cmake -S aseprite -B build -G Ninja -Wno-dev -DCMAKE_INSTALL_MESSAGE=NEVER -DCMAKE_BUILD_TYPE=None \ +-DENABLE_UPDATER=OFF -DENABLE_{SCRIPTING,WEBSOCKET}=ON \ +-DLAF_WITH_{EXAMPLES,TESTS}=OFF -DLAF_BACKEND=skia \ +-DSKIA_DIR="$PWD/skia" -DSKIA_LIBRARY_DIR="$_skiadir" \ +-DUSE_SHARED_{CMARK,CURL,FMT,GIFLIB,JPEGLIB,ZLIB,LIBPNG,TINYXML,PIXMAN,FREETYPE,HARFBUZZ,LIBARCHIVE,WEBP}=YES + cmake --build build +} - ninja aseprite +check() { + export CXX=clang++ + export CC=clang + export AR=ar + export NM=nm + env -C build ctest --output-on-failure } package() { - cd "${srcdir}"/build - - install -D --verbose "bin/${pkgname}" "${pkgdir}/usr/bin/${pkgname}" - - # Aseprite, by default, doesn't install a few files on its own. So, they are installed manually. - - install --directory --verbose "${pkgdir}/usr/share/${pkgname}/data" - cp --recursive --verbose 'bin/data' "${pkgdir}/usr/share/${pkgname}" - - install --directory --verbose "${pkgdir}/usr/share/doc/${pkgname}" - cp --recursive --verbose '../docs' "${pkgdir}/usr/share/doc/${pkgname}" - install --mode=644 --verbose 'bin/data/EULA.txt' "${pkgdir}/usr/share/doc/${pkgname}" - install --mode=644 --verbose '../README.md' "${pkgdir}/usr/share/doc/${pkgname}" - - install -D --mode=644 --verbose "../${pkgname}.desktop" \ - "${pkgdir}/usr/share/applications/${pkgname}.desktop" - - for _size in 32 48 64 - do - install -D --mode=644 --verbose "../data/icons/ase${_size}.png" \ - "${pkgdir}/usr/share/icons/hicolor/${_size}x${_size}/apps/${pkgname}.png" - done - - install -D --mode=644 --verbose --target-directory "${pkgdir}/usr/share/licenses/${pkgname}" \ - 'bin/data/EULA.txt' - install --mode=644 --verbose '../docs/LICENSES.md' "${pkgdir}/usr/share/licenses/${pkgname}" + export CXX=clang++ + export CC=clang + export AR=ar + export NM=nm + # Now the fun part: components of e.g. `libwebp` get installed as well, + # since we've had to compile it. But we don't want them. + # So, install normally, and then cherry-pick Aseprite's files out of that. + # Use a whitelist to prefer installing not enough (breakage goes noticed), + # instead of too much (cruft rarely goes noticed). Also hope that it doesn't break :) + cmake --install build --prefix=staging --strip + + # Install the binary and its `.desktop` file + install -vDm 755 staging/bin/aseprite "$pkgdir/usr/bin/aseprite" + install -vDm 644 aseprite/src/desktop/linux/aseprite.desktop "$pkgdir/usr/share/applications/$pkgname.desktop" + install -vDm 644 aseprite/src/desktop/linux/mime/aseprite.xml "$pkgdir/usr/share/mime/packages/$pkgname.xml" + # Thumbnailer + install -vDm 755 aseprite/src/desktop/linux/aseprite-thumbnailer "$pkgdir/usr/bin/aseprite-thumbnailer" + install -vDm 644 aseprite/src/desktop/linux/gnome/aseprite.thumbnailer "$pkgdir/usr/share/thumbnailers/aseprite.thumbnailer" + # Install the icons in the correct directory (which is not the default) + local _size + for _size in 16 32 48 64 128 256; do + # The installed icon's name is taken from the `.desktop` file + install -vDm 644 staging/share/aseprite/data/icons/ase$_size.png "$pkgdir/usr/share/icons/hicolor/${_size}x$_size/apps/aseprite.png" + done + # Delete the icons to avoid copying them in two places (they aren't used by Aseprite itself) + rm -rf staging/share/aseprite/data/icons + # Install all of the program's data + cp -vrt "$pkgdir/usr/share" staging/share/aseprite + # Also install the licenses + install -vDm 644 -t "$pkgdir/usr/share/licenses/$pkgname" aseprite/{EULA.txt,docs/LICENSES.md} + # Copy the font's license, but leave it in the font directory as well (probably doesn't hurt) + install -vm 644 aseprite/data/fonts/LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/font.txt" } - -# vim:set ts=2 sw=2 et: diff --git a/aseprite.desktop b/aseprite.desktop deleted file mode 100644 index 306b8df12c70..000000000000 --- a/aseprite.desktop +++ /dev/null @@ -1,14 +0,0 @@ -[Desktop Entry] -Type=Application -Encoding=UTF-8 -Name=Aseprite -GenericName=Sprite Editor -Comment=Animated sprite editor & pixel art tool -Icon=aseprite -Categories=Graphics;2DGraphics;RasterGraphics -Exec=aseprite %U -TryExec=aseprite -Terminal=false -StartupNotify=false -StartupWMClass=Aseprite -MimeType=image/bmp;image/gif;image/jpeg;image/png;image/x-pcx;image/x-tga;image/vnd.microsoft.icon;video/x-flic;image/webp;image/x-aseprite; diff --git a/desktop.patch b/desktop.patch new file mode 100644 index 000000000000..fcb047550f7b --- /dev/null +++ b/desktop.patch @@ -0,0 +1,25 @@ +diff --git a/src/desktop/linux/aseprite.desktop b/src/desktop/linux/aseprite.desktop +index e23999db8..803a1fc75 100644 +--- a/src/desktop/linux/aseprite.desktop ++++ b/src/desktop/linux/aseprite.desktop +@@ -5,7 +5,7 @@ GenericName=Sprite Editor + Comment=Animated sprite editor & pixel art tool + Icon=aseprite + Categories=Graphics;2DGraphics;RasterGraphics +-Exec=aseprite %U ++Exec=aseprite %F + TryExec=aseprite + Terminal=false + StartupNotify=false +diff --git a/src/desktop/linux/mime/aseprite.xml b/src/desktop/linux/mime/aseprite.xml +index 52b2adb92..a656cb3b1 100644 +--- a/src/desktop/linux/mime/aseprite.xml ++++ b/src/desktop/linux/mime/aseprite.xml +@@ -7,6 +7,6 @@ + </magic> + <glob pattern="*.ase"/> + <glob pattern="*.aseprite"/> +- <icon name="aseprite"/> ++ <icon name="image-x-aseprite"/> + </mime-type> + </mime-info> diff --git a/optional-pixman.patch b/optional-pixman.patch new file mode 100644 index 000000000000..bf65e2cf047d --- /dev/null +++ b/optional-pixman.patch @@ -0,0 +1,23 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f16f09660d..40065905d3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -271,16 +271,18 @@ + include_directories(${TINYXML_INCLUDE_DIR}) + + # pixman ++if(NOT LAF_BACKEND STREQUAL "skia") + if(USE_SHARED_PIXMAN) + find_library(PIXMAN_LIBRARY NAMES pixman pixman-1) + find_path(PIXMAN_INCLUDE_DIR NAMES pixman.h PATH_SUFFIXES pixman-1) + else() + set(PIXMAN_LIBRARY pixman) + set(PIXMAN_INCLUDE_DIR + ${PIXMAN_DIR}/pixman + ${CMAKE_BINARY_DIR}) # For pixman-version.h + endif() + include_directories(${PIXMAN_INCLUDE_DIR}) ++endif() + + # freetype + if(USE_SHARED_FREETYPE) diff --git a/shared-fmt.patch b/shared-fmt.patch new file mode 100644 index 000000000000..794d8a4adcc1 --- /dev/null +++ b/shared-fmt.patch @@ -0,0 +1,71 @@ +--- a/CMakeLists.txt 2022-01-08 00:37:08.165330523 +0100 ++++ b/CMakeLists.txt 2022-01-08 00:52:41.163585173 +0100 +@@ -54,6 +54,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_FMT "Use your installed copy of fmt" off) + option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off) + option(USE_SHARED_JPEGLIB "Use your installed copy of jpeglib" off) + option(USE_SHARED_ZLIB "Use your installed copy of zlib" off) +@@ -165,6 +165,7 @@ + set(SOURCE_DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data) + set(CMARK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cmark) + set(CURL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/curl) ++set(FMT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmt) + set(GIFLIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/giflib) + set(LIBJPEG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/jpeg) + set(LIBPNG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libpng) +@@ -204,6 +205,15 @@ + set(CURL_STATICLIB ON BOOL) + endif() + ++if(USE_SHARED_FMT) ++ find_package(FMT REQUIRED) ++ set(FMT_LIBRARIES fmt::fmt) ++else() ++ set(FMT_FOUND) ++ set(FMT_LIBRARIES fmt) ++ # No need to include extra directories, actually ++endif() ++ + # zlib + if(USE_SHARED_ZLIB) + find_package(ZLIB REQUIRED) +--- a/src/app/CMakeLists.txt 2022-01-08 00:37:07.378671200 +0100 ++++ b/src/app/CMakeLists.txt 2022-01-08 00:53:13.669969512 +0100 +@@ -741,7 +741,7 @@ target_link_libraries(app-lib + ${HARFBUZZ_LIBRARIES} + json11 + archive_static +- fmt ++ ${FMT_LIBRARIES} + tinyexpr + qoi) + + if(ENABLE_PSD) +--- a/src/dio/CMakeLists.txt 2022-01-08 00:41:50.712726972 +0100 ++++ b/src/dio/CMakeLists.txt 2022-01-08 00:53:39.936408022 +0100 +@@ -10,7 +10,7 @@ + + target_link_libraries(dio-lib + ${ZLIB_LIBRARIES} +- fmt ++ ${FMT_LIBRARIES} + flic-lib + laf-base + fixmath-lib +--- a/third_party/CMakeLists.txt 2022-01-08 00:37:08.165330523 +0100 ++++ b/third_party/CMakeLists.txt 2022-01-08 00:54:30.455969136 +0100 +@@ -106,7 +106,10 @@ + 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) diff --git a/shared-libarchive.patch b/shared-libarchive.patch new file mode 100644 index 000000000000..cc86185a7efe --- /dev/null +++ b/shared-libarchive.patch @@ -0,0 +1,74 @@ +From cf84155eb143d821963e8fdf18781dfa164eac9b Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Fri, 9 Oct 2020 02:18:36 +0300 +Subject: [PATCH] Make LibArchive as shared library dependency + +--- + CMakeLists.txt | 11 +++++++++++ + src/app/CMakeLists.txt | 2 +- + third_party/CMakeLists.txt | 22 ++++++++++++---------- + 3 files changed, 24 insertions(+), 11 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9cb5a2cdfb..9d95936f36 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -60,6 +60,7 @@ 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_JPEGLIB "Use your installed copy of jpeglib" 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_TINYXML "Use your installed copy of tinyxml" off) + option(USE_SHARED_PIXMAN "Use your installed copy of pixman" off) +@@ -200,6 +201,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) +diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt +index e1e3bc1ae3..4a37838e95 100644 +--- a/src/app/CMakeLists.txt ++++ b/src/app/CMakeLists.txt +@@ -651,8 +651,8 @@ target_link_libraries(app-lib + ${ZLIB_LIBRARIES} + ${FREETYPE_LIBRARIES} + ${HARFBUZZ_LIBRARIES} ++ ${LibArchive_LIBRARIES} + json11 +- archive_static + ${FMT_LIBRARIES} + tinyexpr) + +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index ffd1c0cfcd..4839d4097c 100644 +--- a/third_party/CMakeLists.txt.orig ++++ b/third_party/CMakeLists.txt +@@ -110,6 +110,7 @@ endif() + add_subdirectory(json11) + + # libarchive ++if(NOT USE_SHARED_LIBARCHIVE) + set(ENABLE_WERROR OFF CACHE BOOL "Treat warnings as errors - default is ON for Debug, OFF otherwise.") + set(ENABLE_TEST OFF CACHE BOOL "Enable unit and regression tests") + set(ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage (GCC only, automatically sets ENABLE_TEST to ON)") +@@ -123,6 +124,7 @@ set(ENABLE_CPIO OFF CACHE BOOL "Enable cpio building") + add_subdirectory(libarchive) + target_include_directories(archive_static INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/libarchive>) ++endif() + + # benchmark + if(ENABLE_BENCHMARKS) diff --git a/shared-libwebp.patch b/shared-libwebp.patch new file mode 100644 index 000000000000..bdeb0d032c5b --- /dev/null +++ b/shared-libwebp.patch @@ -0,0 +1,59 @@ +From ca9e20a87be6dcc8d9b97841535b2320d2eb2f91 Mon Sep 17 00:00:00 2001 +From: Drauthius <albert@diserholt.com> +Date: Sat, 26 Sep 2020 10:40:13 +0200 +Subject: [PATCH] Shared webp library + +Making optional linking with shared system webp library with +-DUSE_SHARED_WEBP option. +--- + CMakeLists.txt | 12 +++++++++--- + third_party/CMakeLists.txt | 2 +- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index af077f6..fed17ff 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,6 +58,7 @@ 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_FREETYPE "Use shared FreeType library" off) + option(USE_SHARED_HARFBUZZ "Use shared HarfBuzz library" off) ++option(USE_SHARED_WEBP "Use your installed copy of webp" off) + option(ENABLE_ASEPRITE_EXE "Compile main Aseprite executable" on) + option(ENABLE_MEMLEAK "Enable memory-leaks detector (only for developers)" off) + option(ENABLE_NEWS "Enable the news in Home tab" on) +@@ -328,14 +351,17 @@ add_subdirectory(laf) + # libwebp + if(ENABLE_WEBP) + # Use libwebp from Skia +- if(LAF_BACKEND STREQUAL "skia") ++ if(USE_SHARED_WEBP) ++ find_library(WEBP_LIBRARY NAMES webp) ++ find_library(WEBPDEMUX_LIBRARY NAMES webpdemux) ++ find_library(WEBPMUX_LIBRARY NAMES webpmux) ++ set(WEBP_LIBRARIES ${WEBP_LIBRARY} ${WEBPDEMUX_LIBRARY} ${WEBPMUX_LIBRARY}) ++ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp) ++ else() + 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") +- else() +- set(WEBP_LIBRARIES webp webpdemux libwebpmux) +- set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src) + endif() + include_directories(${WEBP_INCLUDE_DIR}) + endif() +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index 4839d4097c..e8c3e83cbc 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -32,7 +32,7 @@ if(NOT USE_SHARED_GIFLIB) + add_subdirectory(giflib) + endif() + +-if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia") ++if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia" AND NOT USE_SHARED_WEBP) + set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.") + add_subdirectory(libwebp) + endif() diff --git a/shared-skia-deps.patch b/shared-skia-deps.patch new file mode 100644 index 000000000000..77bdebc8b06d --- /dev/null +++ b/shared-skia-deps.patch @@ -0,0 +1,21 @@ +--- src/laf/cmake/FindSkia.cmake.orig 2022-01-08 02:15:13.417619266 +0100 ++++ src/laf/cmake/FindSkia.cmake 2022-01-08 02:15:43.603960491 +0100 +@@ -32,14 +32,18 @@ + # SkShaper module + freetype + harfbuzz + find_library(SKSHAPER_LIBRARY skshaper PATH "${SKIA_LIBRARY_DIR}") + ++if(NOT USE_SHARED_FREETYPE) + 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") ++endif() + ++if(NOT USE_SHARED_HARFBUZZ) + 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") ++endif() + + set(SKIA_LIBRARIES + ${SKIA_LIBRARY} |