aseprite 1.3.17.2

Animated sprite editor & pixel art tool

Не проверено
  1name=aseprite
  2version=1.3.17.2
  3release=1
  4summary="Animated sprite editor & pixel art tool"
  5group="Graphics"
  6desc="$summary."
  7maintainer="Maxim Slipenko <maks1ms@alt-gnome.ru>"
  8architectures=(
  9	"amd64"
 10	"arm64"
 11)
 12homepage="https://www.aseprite.org"
 13license=("custom")
 14nonfree=1
 15nonfree_msgfile="EULA.txt"
 16nonfree_url="https://github.com/aseprite/aseprite/tree/v1.3.17.2#license"
 17
 18provides=()
 19conflicts=()
 20
 21sources=(
 22	"https://github.com/aseprite/aseprite/releases/download/v${version}/Aseprite-v${version}-Source.zip"
 23	# from laf/misc/skia-url.sh
 24	"https://github.com/aseprite/skia/releases/download/m124-08a5439a6b/Skia-Linux-Release-x64.zip?~archive=false"
 25)
 26
 27checksums=(
 28	sha256:3895afca60608e86ffbba20c32af95a6e59f8d7ebe6d2617236f159b42176bfe
 29	sha256:a327e89b244f24cecaa34eb37544bae00d447b96c583d26ed29d6a3ad2e8a8b8
 30)
 31
 32build_deps=(
 33	'gcc-c++'
 34	'clang'
 35	'libcxx-devel'
 36	'cmake'
 37	'ninja-build'
 38	'libX11-devel'
 39	'libXcursor-devel'
 40	'libXi-devel'
 41	'libXrandr-devel'
 42	'libGL-devel'
 43	'fontconfig-devel'
 44
 45	'unzip'
 46)
 47
 48auto_reqprov_method=dirty
 49auto_req=1
 50auto_prov=1
 51
 52disable_network=1
 53
 54prepare() {
 55	mkdir -p "$HOME/deps/skia"
 56	unzip -n -d "$HOME/deps/skia" "Skia-Linux-Release-x64.zip"
 57}
 58
 59build() {
 60	mkdir build
 61	cd build
 62	export CC=clang
 63	export CXX=clang++
 64	cmake \
 65		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
 66		-DCMAKE_CXX_FLAGS:STRING=-stdlib=libstdc++ \
 67		-DCMAKE_EXE_LINKER_FLAGS:STRING=-stdlib=libstdc++ \
 68		-DLAF_BACKEND=skia \
 69		-DSKIA_DIR="$HOME/deps/skia" \
 70		-DSKIA_LIBRARY_DIR="$HOME/deps/skia/out/Release-x64" \
 71		-DSKIA_LIBRARY="$HOME/deps/skia/out/Release-x64/libskia.a" \
 72		-DENABLE_DESKTOP_INTEGRATION=on \
 73		-DCMAKE_INSTALL_PREFIX="/opt/$name" \
 74		-G Ninja \
 75		..
 76	ninja "$name"
 77}
 78
 79package() {
 80	cd "${srcdir}/build"
 81	DESTDIR="${pkgdir}" ninja install
 82
 83	install -dm755 \
 84		"$pkgdir/usr/bin" \
 85		"$pkgdir/usr/share/applications" \
 86		"$pkgdir/usr/share/mime/packages" \
 87		"$pkgdir/usr/share/thumbnailers"
 88
 89	_optdir="/opt/$name"
 90
 91	ln -sf "$_optdir/bin/$name" "$pkgdir/usr/bin/$name"
 92
 93	_links=(
 94		"applications/$name.desktop"
 95		"thumbnailers/$name.thumbnailer"
 96		"mime/packages/$name.xml"
 97	)
 98	for file in "${_links[@]}"; do
 99		ln -sf "$_optdir/share/$file" "$pkgdir/usr/share/$file"
100	done
101
102	cd "$srcdir"
103
104	for i in {16,32,48,64,128,256}; do
105		install -Dm644 "data/icons/ase${i}.png" "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${name}.png"
106		install -Dm644 "data/icons/doc${i}.png" "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/mimetypes/image-x-${name}.png"
107	done
108	install-license EULA.txt "${name}/EULA"
109	install-license docs/LICENSES.md "${name}/LICENSES"
110
111	rm -f "${_optdir}"/usr/lib/pkgconfig/libarchive.pc
112
113	rm -f "${_optdir}"/usr/lib/libwebp*
114	rm -f "${_optdir}"/usr/lib/pkgconfig/libwebp*
115	rm -fr "${_optdir}"/usr/include/webp/
116	rm -fr "${_optdir}"/usr/share/WebP/
117
118	rm -f "${_optdir}"/usr/lib/libjson11.a
119	rm -f "${_optdir}"/usr/lib/pkgconfig/json11.pc
120	rm -f "${_optdir}"/usr/include/json11.hpp
121
122	rm -fr "${_optdir}"/usr/lib/cmake/cmark
123	rm -f "${_optdir}"/usr/lib/pkgconfig/libcmark.pc
124	rm -f "${_optdir}"/usr/lib/libcmark*
125	rm -f "${_optdir}"/usr/include/cmark*
126	rm -f "${_optdir}"/usr/share/man/man1/cmark.1
127	rm -f "${_optdir}"/usr/share/man/man3/cmark.3
128
129	rm -f "${_optdir}"/usr/lib/libtga-lib.a
130	rm -f "${_optdir}"/usr/include/tga.h
131
132	rm -f "${_optdir}"/usr/lib/libcurl.a
133	rm -f "${_optdir}"/usr/lib/pkgconfig/*
134	rm -f "${_optdir}"/usr/lib/cmake/CURL/*
135	rm -f "${_optdir}"/usr/include/curl/*
136	rm -f "${_optdir}"/usr/bin/curl-config
137
138	rm -f "${_optdir}"/usr/include/fmt/*
139	rm -f "${_optdir}"/usr/lib/cmake/fmt/*
140	rm -f "${_optdir}"/usr/lib/libfmt.a
141
142	rm -f "${_optdir}"/usr/include/tinyxml2.h
143	rm -f "${_optdir}"/usr/lib/cmake/tinyxml2/*
144
145	rm -rf "${_optdir}"/usr/share/man
146	rm -f "${_optdir}"/usr/lib/libarchive.a
147	rm -f "${_optdir}"/usr/lib/libTinyEXIF.a
148	rm -f "${_optdir}"/usr/lib/libtinyxml2.a
149	rm -f "${_optdir}"/usr/include/archive.h
150	rm -f "${_optdir}"/usr/include/archive_entry.h
151	rm -f "${_optdir}"/usr/include/TinyEXIF.h
152	rm -f "${_optdir}"/usr/bin/bsdunzip
153}
154
155files() {
156	files-find-binary aseprite
157	files-find-desktop aseprite.desktop
158	files-find-license "$name"
159
160	files-find \
161		"/usr/share/thumbnailers/$name.thumbnailer" \
162		"/usr/share/mime/packages/$name.xml" \
163		"/usr/share/icons/hicolor/**/apps/$name.png" \
164		"/usr/share/icons/hicolor/**/mimetypes/image-x-$name.png" \
165		"/opt/$name" \
166		"/opt/$name/**/*"
167}