summaryrefslogtreecommitdiff
path: root/media-libs/zimg
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-06-02 21:45:28 +0100
committerV3n3RiX <venerix@redcorelinux.org>2019-06-02 21:45:28 +0100
commit2018227e9344edb9da15fc6a4a8298086cc2aa77 (patch)
treec18e1c09e605e94e2a1e93345ad25746cc9e14b9 /media-libs/zimg
parent6f8038813c460b4f0572d5ef595cdfa94af3a94d (diff)
gentoo resync : 02.06.2019
Diffstat (limited to 'media-libs/zimg')
-rw-r--r--media-libs/zimg/Manifest7
-rw-r--r--media-libs/zimg/files/zimg-2.7.5-sse2.patch231
-rw-r--r--media-libs/zimg/zimg-2.7.5.ebuild35
-rw-r--r--media-libs/zimg/zimg-2.8.ebuild31
-rw-r--r--media-libs/zimg/zimg-9999.ebuild35
5 files changed, 298 insertions, 41 deletions
diff --git a/media-libs/zimg/Manifest b/media-libs/zimg/Manifest
index 9e6353aecb31..7d70a1c35e97 100644
--- a/media-libs/zimg/Manifest
+++ b/media-libs/zimg/Manifest
@@ -1,8 +1,11 @@
+AUX zimg-2.7.5-sse2.patch 9349 BLAKE2B 2b1220d747919074d400dc35d5a23d53be800071d386801c737faeeebf3694925c20de6e0198ef8cbb143580da46e136b24ad39831167440e6ad7415adb76a04 SHA512 c8f27676c441a76dac56b1d8e11229b6b5b9d515a99082d15af9a173b7570becb03961384c64ad62c908e1d64a4427e2b838836c65c1fd687773e6a2da5d6e38
DIST zimg-2.5.tar.gz 213054 BLAKE2B 0532693c11c1b2bcc0d5bde3a0bc16bf4f736ceff5fcda5d9bf491fcebe7e8be538041cc536e40bc110e438370c8599ce0be35f71cea00429b16c6eeb680cb86 SHA512 7fc48c704b434d837c36d4bafc51b35789eaf90fc81a68dcd7ec546f1e82a3e41c53263f8d381541d5c0ce58e25dddf0adaf1c3575512842ae633b5581778938
DIST zimg-2.7.4.tar.gz 246376 BLAKE2B b6a21a1f7ca5106810485a69bb4e8f1d59d67fe3a619fd0ac412b1e441fe2d8892f64826666fbdfa48ae441fa5a21512b5ba0977eeaca7dcb7e0fcc43447f6e4 SHA512 adbb525b2611ef5267a4c0d4e8c6dd164c2814241c4d58d5356545b23dcf0cbeabb140141ae6ff0e70ef8e0741e351cbfadbadd60923061ddd693a2c3d9e5fde
DIST zimg-2.7.5.tar.gz 246416 BLAKE2B a0ce1497356238aee5d3965a7ec57f1591d51c5df2475fb05d208a07f1431f073f8caaac110775fb17c6df8f887ed974b53f262e01f5532de13dc4c539958c1b SHA512 600139f86b074f2ed9614daa58d969465fa3d1578d8165bd2f841193f7b793c4b36389064dd4eee8e01e66a745d1c71c62e5bdb0b5283e54c435ed4a130a5b3b
+DIST zimg-2.8.tar.gz 265363 BLAKE2B a8982c64325e0089617136fcd5d6ee429ab861e3b9445b9cc0292bd3bbd3abb5783e94983e3e802fd9e59c2c7089eeea176d1eda4f3a850379cfc4fb36cbc408 SHA512 1e89087a756798a7ae3bfae3bc8244b29ae8ae7f04f53bdf6c4d4de3cb11412dc1eecd95a4a121bb9077437e633f8fbb665522ff8112ade806d9191ea4b5f7bf
EBUILD zimg-2.5.ebuild 825 BLAKE2B a44868a6c09dde69f9a14d88e292816982efe3d2a710be81eba6d6ec5879c23b2ffb24ca55015550854e10956efcb9642257889867e0d206302cf1897d472e3f SHA512 5630c26971ac2075b4ceb82f615b818d6c2a53a273258ad4a08bf154239ff552220bfdb7104f94e6a1c69e0e4ff17d0be7dda56c98fcb5fb99cbe44509efa42f
EBUILD zimg-2.7.4.ebuild 841 BLAKE2B b4db5d33a6bb06230ffe472d9286828bb65972c230a89de9b5e32d3e862a3e5b090ba4e1b153c8282e7a570771904fafedf5a7411c3beed8d0634bc51f4e76c5 SHA512 e1ac5be82ea15245df6f1922b38422cf9162b05a6ab27e3a79290c0aebc51b4bcb7a379f38a5235ddc1f02a412142bd5b68ddbf6c4fa3a773d265cb52845ff81
-EBUILD zimg-2.7.5.ebuild 839 BLAKE2B eba010daef304ddef00bb8b47ee26e717fb0dcc55bf4368d0af1452cc918ef1e79ac7a55c1b39cdbf1d5a3fe69d845b530fef45e1ed93ab4cd82b176b0d09be3 SHA512 4886609730700a7776882df463c66b80ca8cc5bd9b1304454afb29173e4c382f61e11bb2f74b8e8c7df3960ac6bac40f6d472544eef9a39bf731ca0546e64c0e
-EBUILD zimg-9999.ebuild 838 BLAKE2B cf992d8f8f0260970a7733ac91b73727b4a93755461f7143fa3c459f8a784de812c2d4be13d7b8495ae9968f8fbe605809364a66fdfa95489652b2f39669e0f4 SHA512 c8dd9475806bd117ba55989f72c7b7bf0fdc051009f6c395d4d3717c62dff7dd1a110926cdc5b4e06fe9a69d623ad6ec6872aaadd31e87767d56f414fde2414f
+EBUILD zimg-2.7.5.ebuild 819 BLAKE2B 971193910a769767c6793d576a7c15a1f39c9dc86609e3c5f6ef61716aabbfcf5b7cc8837c383d3d36a8f6fdfc504337e29bffa13b0810d270aba16d264d1655 SHA512 4bfeecc8a61a0c158397a4f84403ec2ced106573df74c7cd7b8518dfb934e4932646760a9ec56d7f91b38b7ec01087d8f9b400e468231b36b580835203e1d4bc
+EBUILD zimg-2.8.ebuild 778 BLAKE2B c272141d31c5e83e6a467c93804a25c78a40bfce9f0ebb57fe4205d049d1cab1216428a012a46f4a05010901236668c6c8441228345acb1cab7102a98b035f77 SHA512 d13477c97f3c807ea8ef7f3aa88d007dc818b851f9affc81ff204e96d07caa5953169b6bcb5f0ffca9466cb9eade87d5cd544ca298faf406173751a817c9d017
+EBUILD zimg-9999.ebuild 778 BLAKE2B c272141d31c5e83e6a467c93804a25c78a40bfce9f0ebb57fe4205d049d1cab1216428a012a46f4a05010901236668c6c8441228345acb1cab7102a98b035f77 SHA512 d13477c97f3c807ea8ef7f3aa88d007dc818b851f9affc81ff204e96d07caa5953169b6bcb5f0ffca9466cb9eade87d5cd544ca298faf406173751a817c9d017
MISC metadata.xml 311 BLAKE2B 35db707f7a5c1e20c662525b306a018a6cc2a5cfec6e6f316c5d532566e85710d8223f9a7478569e78c476dce30f357986a66ffde04112113c389b6198de59f3 SHA512 a46022cde358c89be1d423501630b15ea56d2012e022ba8e91800d834bae267bff5a79c115e0fcfd632da6b9031d3c68948f1cd83e3f27699895b7de548f95b2
diff --git a/media-libs/zimg/files/zimg-2.7.5-sse2.patch b/media-libs/zimg/files/zimg-2.7.5-sse2.patch
new file mode 100644
index 000000000000..77483ab59e73
--- /dev/null
+++ b/media-libs/zimg/files/zimg-2.7.5-sse2.patch
@@ -0,0 +1,231 @@
+From e30112df0ca703be82ed2c852511916fc46defbd Mon Sep 17 00:00:00 2001
+From: sekrit-twc <noreply@example.com>
+Date: Fri, 22 Mar 2019 18:51:14 -0700
+Subject: [PATCH] colorspace: use bfloat16 for SSE2 linear-to-gamma LUT
+
+On Skylake, processing 512 pixel array:
+
+direction cycles/sample cycles/pxvector
+ g->l 2.35 9.43
+ l->g 2.49 9.97
+---
+ .../colorspace/x86/operation_impl_avx2.cpp | 3 +-
+ .../colorspace/x86/operation_impl_sse2.cpp | 104 ++++++++++++++++--
+ test/colorspace/x86/colorspace_sse2_test.cpp | 14 +--
+ 3 files changed, 100 insertions(+), 21 deletions(-)
+
+diff --git a/src/zimg/colorspace/x86/operation_impl_avx2.cpp b/src/zimg/colorspace/x86/operation_impl_avx2.cpp
+index bbbbf896..f0e7f792 100644
+--- a/src/zimg/colorspace/x86/operation_impl_avx2.cpp
++++ b/src/zimg/colorspace/x86/operation_impl_avx2.cpp
+@@ -114,8 +114,7 @@ class ToGammaLutOperationAVX2 final : public Operation {
+ {
+ EnsureSinglePrecision x87;
+
+- // Allocate an extra LUT entry so that indexing can be done by multipying by a power of 2.
+- for (unsigned long i = 0; i <= UINT16_MAX; ++i) {
++ for (size_t i = 0; i <= UINT16_MAX; ++i) {
+ uint16_t half = static_cast<uint16_t>(i);
+ float x = _mm_cvtss_f32(_mm_cvtph_ps(_mm_set1_epi16(half)));
+ m_lut[i] = func(x * prescale);
+diff --git a/src/zimg/colorspace/x86/operation_impl_sse2.cpp b/src/zimg/colorspace/x86/operation_impl_sse2.cpp
+index 48645031..da9d4dbc 100644
+--- a/src/zimg/colorspace/x86/operation_impl_sse2.cpp
++++ b/src/zimg/colorspace/x86/operation_impl_sse2.cpp
+@@ -3,11 +3,13 @@
+ #include <algorithm>
+ #include <cstddef>
+ #include <cstdint>
++#include <type_traits>
+ #include <vector>
+ #include <emmintrin.h>
+ #include "common/align.h"
+ #include "common/ccdep.h"
+ #include "common/make_unique.h"
++#include "common/x86/sse2_util.h"
+ #include "colorspace/gamma.h"
+ #include "colorspace/operation.h"
+ #include "colorspace/operation_impl.h"
+@@ -20,14 +22,25 @@ namespace {
+
+ constexpr unsigned LUT_DEPTH = 16;
+
+-void lut_filter_line(const float *RESTRICT lut, unsigned lut_depth, float prescale, const float *src, float *dst, unsigned left, unsigned right)
++template <class T, class U>
++T bit_cast(const U &x) noexcept
++{
++ static_assert(sizeof(T) == sizeof(U), "object sizes must match");
++ static_assert(std::is_pod<T>::value && std::is_pod<U>::value, "object types must be POD");
++
++ T ret;
++ std::copy_n(reinterpret_cast<const char *>(&x), sizeof(x), reinterpret_cast<char *>(&ret));
++ return ret;
++}
++
++void to_linear_lut_filter_line(const float *RESTRICT lut, unsigned lut_depth, const float *src, float *dst, unsigned left, unsigned right)
+ {
+ unsigned vec_left = ceil_n(left, 4);
+ unsigned vec_right = floor_n(right, 4);
+
+ const int32_t lut_limit = static_cast<int32_t>(1) << lut_depth;
+
+- const __m128 scale = _mm_set_ps1(0.5f * prescale * lut_limit);
++ const __m128 scale = _mm_set_ps1(0.5f * lut_limit);
+ const __m128 offset = _mm_set_ps1(0.25f * lut_limit);
+ const __m128i limit = _mm_set1_epi16(std::min(lut_limit + INT16_MIN, static_cast<int32_t>(INT16_MAX)));
+ const __m128i bias_epi16 = _mm_set1_epi16(INT16_MIN);
+@@ -73,16 +86,61 @@ void lut_filter_line(const float *RESTRICT lut, unsigned lut_depth, float presca
+ }
+ }
+
++void to_gamma_lut_filter_line(const float *RESTRICT lut, const float *src, float *dst, unsigned left, unsigned right)
++{
++ unsigned vec_left = ceil_n(left, 4);
++ unsigned vec_right = floor_n(right, 4);
++
++ for (unsigned j = left; j < vec_left; ++j) {
++ __m128i x = _mm_castps_si128(_mm_load_ss(src + j));
++ __m128i msb = _mm_srli_epi32(x, 16);
++ __m128i lsb = _mm_and_si128(_mm_srli_epi32(x, 15), _mm_set1_epi32(1));
++ x = mm_packus_epi32(msb, lsb);
++ x = _mm_adds_epi16(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2)));
++
++ dst[j] = lut[_mm_cvtsi128_si32(x)];
++ }
++ for (unsigned j = vec_left; j < vec_right; j += 4) {
++ __m128i x = _mm_castps_si128(_mm_load_ps(src + j));
++ __m128i msb = _mm_srli_epi32(x, 16);
++ __m128i lsb = _mm_and_si128(_mm_srli_epi32(x, 15), _mm_set1_epi32(1));
++ x = mm_packus_epi32(msb, lsb);
++ x = _mm_adds_epi16(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2)));
++
++#if SIZE_MAX >= UINT64_MAX
++ uint64_t tmp = _mm_cvtsi128_si64(x);
++ dst[j + 0] = lut[tmp & 0xFFFFU];
++ dst[j + 1] = lut[(tmp >> 16) & 0xFFFFU];
++ dst[j + 2] = lut[(tmp >> 32) & 0xFFFFU];
++ dst[j + 3] = lut[tmp >> 48];
++#else
++ uint32_t tmp0 = _mm_cvtsi128_si32(x);
++ uint32_t tmp1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(x, _MM_SHUFFLE(3, 2, 0, 1)));
++ dst[j + 0] = lut[tmp0 & 0xFFFFU];
++ dst[j + 1] = lut[tmp0 >> 16];
++ dst[j + 2] = lut[tmp1 & 0xFFFFU];
++ dst[j + 3] = lut[tmp1 >> 16];
++#endif
++ }
++ for (unsigned j = vec_right; j < right; ++j) {
++ __m128i x = _mm_castps_si128(_mm_load_ss(src + j));
++ __m128i msb = _mm_srli_epi32(x, 16);
++ __m128i lsb = _mm_and_si128(_mm_srli_epi32(x, 15), _mm_set1_epi32(1));
++ x = mm_packus_epi32(msb, lsb);
++ x = _mm_adds_epi16(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2)));
++
++ dst[j] = lut[_mm_cvtsi128_si32(x)];
++ }
++}
++
+
+-class LutOperationSSE2 final : public Operation {
++class ToLinearLutOperationSSE2 final : public Operation {
+ std::vector<float> m_lut;
+ unsigned m_lut_depth;
+- float m_prescale;
+ public:
+- LutOperationSSE2(gamma_func func, unsigned lut_depth, float prescale, float postscale) :
++ ToLinearLutOperationSSE2(gamma_func func, unsigned lut_depth, float postscale) :
+ m_lut((1UL << lut_depth) + 1),
+- m_lut_depth{ lut_depth },
+- m_prescale{ static_cast<float>(prescale) }
++ m_lut_depth{ lut_depth }
+ {
+ EnsureSinglePrecision x87;
+
+@@ -95,9 +153,31 @@ class LutOperationSSE2 final : public Operation {
+
+ void process(const float * const *src, float * const *dst, unsigned left, unsigned right) const override
+ {
+- lut_filter_line(m_lut.data(), m_lut_depth, m_prescale, src[0], dst[0], left, right);
+- lut_filter_line(m_lut.data(), m_lut_depth, m_prescale, src[1], dst[1], left, right);
+- lut_filter_line(m_lut.data(), m_lut_depth, m_prescale, src[2], dst[2], left, right);
++ to_linear_lut_filter_line(m_lut.data(), m_lut_depth, src[0], dst[0], left, right);
++ to_linear_lut_filter_line(m_lut.data(), m_lut_depth, src[1], dst[1], left, right);
++ to_linear_lut_filter_line(m_lut.data(), m_lut_depth, src[2], dst[2], left, right);
++ }
++};
++
++class ToGammaLutOperationSSE2 final : public Operation {
++ std::vector<float> m_lut;
++public:
++ ToGammaLutOperationSSE2(gamma_func func, float prescale) :
++ m_lut(static_cast<uint32_t>(UINT16_MAX) + 1)
++ {
++ EnsureSinglePrecision x87;
++
++ for (size_t i = 0; i <= UINT16_MAX; ++i) {
++ float x = bit_cast<float>(static_cast<uint32_t>(i << 16));
++ m_lut[i] = func(x * prescale);
++ }
++ }
++
++ void process(const float * const *src, float * const *dst, unsigned left, unsigned right) const override
++ {
++ to_gamma_lut_filter_line(m_lut.data(), src[0], dst[0], left, right);
++ to_gamma_lut_filter_line(m_lut.data(), src[1], dst[1], left, right);
++ to_gamma_lut_filter_line(m_lut.data(), src[2], dst[2], left, right);
+ }
+ };
+
+@@ -109,7 +189,7 @@ std::unique_ptr<Operation> create_gamma_operation_sse2(const TransferFunction &t
+ if (!params.approximate_gamma)
+ return nullptr;
+
+- return ztd::make_unique<LutOperationSSE2>(transfer.to_gamma, LUT_DEPTH, transfer.to_gamma_scale, 1.0f);
++ return ztd::make_unique<ToGammaLutOperationSSE2>(transfer.to_gamma, transfer.to_gamma_scale);
+ }
+
+ std::unique_ptr<Operation> create_inverse_gamma_operation_sse2(const TransferFunction &transfer, const OperationParams &params)
+@@ -117,7 +197,7 @@ std::unique_ptr<Operation> create_inverse_gamma_operation_sse2(const TransferFun
+ if (!params.approximate_gamma)
+ return nullptr;
+
+- return ztd::make_unique<LutOperationSSE2>(transfer.to_linear, LUT_DEPTH, 1.0f, transfer.to_linear_scale);
++ return ztd::make_unique<ToLinearLutOperationSSE2>(transfer.to_linear, LUT_DEPTH, transfer.to_linear_scale);
+ }
+
+ } // namespace colorspace
+diff --git a/test/colorspace/x86/colorspace_sse2_test.cpp b/test/colorspace/x86/colorspace_sse2_test.cpp
+index d5130868..ecaa05e7 100644
+--- a/test/colorspace/x86/colorspace_sse2_test.cpp
++++ b/test/colorspace/x86/colorspace_sse2_test.cpp
+@@ -53,9 +53,9 @@ TEST(ColorspaceConversionSSE2Test, test_transfer_lut)
+ "162687e701627cdc17283a32c36ea711d28a953e"
+ },
+ {
+- "492587e7ed75b7e3ab868bead6ade7a4137c6ea1",
+- "3b0694e9fbce61466cb5a575f300d784089b6cad",
+- "b68f103f52ccafae867d664d7f27fe56ae9208af"
++ "95f2715bd0d417028bebd5c5377180fcd5b01119",
++ "76f7c88b198f1ab08167f8162c1237b54f22007a",
++ "1099c3ae187c0a9f79acb9445761b6056218c779"
+ },
+ {
+ "4c0b5ffe768a7812d1ef102b4d8d52614838bc8e",
+@@ -63,13 +63,13 @@ TEST(ColorspaceConversionSSE2Test, test_transfer_lut)
+ "85a277a80dfca2e21789cedd76aaee307dbc4562"
+ },
+ {
+- "df546ce0ad6f859499a96d2d697d896067e60e38",
+- "f0041b8a008ab45f0ea1319090ac7e8be0990d92",
+- "06880efb598e41f96fa79e04dbdfcccd50d6dc6f"
++ "5e35786d313e936566d9873ba7a08a8d6005b2ee",
++ "829fa88acfbbb26801871bf3cadf5cc2eb6830c9",
++ "f82fcad18a19b548d419a1952b6a7a423a684b62"
+ },
+ };
+ const double expected_tolinear_snr = 80.0;
+- const double expected_togamma_snr = 40.0;
++ const double expected_togamma_snr = 60.0;
+
+ SCOPED_TRACE("tolinear 709");
+ test_case({ MatrixCoefficients::RGB, TransferCharacteristics::REC_709, ColorPrimaries::UNSPECIFIED },
diff --git a/media-libs/zimg/zimg-2.7.5.ebuild b/media-libs/zimg/zimg-2.7.5.ebuild
index 1775f6b60bbb..7bac59befc36 100644
--- a/media-libs/zimg/zimg-2.7.5.ebuild
+++ b/media-libs/zimg/zimg-2.7.5.ebuild
@@ -1,36 +1,33 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
-AUTOTOOLS_AUTORECONF=yes
-
-SCM=""
-
-if [ "${PV#9999}" != "${PV}" ] ; then
- SCM="git-r3"
+if [[ ${PV} = *9999* ]] ; then
EGIT_REPO_URI="https://github.com/sekrit-twc/zimg"
-fi
-
-inherit autotools-multilib ${SCM}
-
-DESCRIPTION="Scaling, colorspace conversion, and dithering library"
-HOMEPAGE="https://github.com/sekrit-twc/zimg"
-
-if [ "${PV#9999}" = "${PV}" ] ; then
+ inherit git-r3
+else
SRC_URI="https://github.com/sekrit-twc/zimg/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
S="${WORKDIR}/${PN}-release-${PV}/"
fi
+inherit autotools multilib-minimal
+
+DESCRIPTION="Scaling, colorspace conversion, and dithering library"
+HOMEPAGE="https://github.com/sekrit-twc/zimg"
LICENSE="WTFPL-2"
SLOT="0"
IUSE="static-libs cpu_flags_x86_sse"
-DEPEND=""
-RDEPEND="${DEPEND}"
+PATCHES=( "${FILESDIR}/${P}-sse2.patch" )
+
+src_prepare() {
+ default
+ eautoreconf
+}
-src_configure() {
- autotools-multilib_src_configure \
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" econf \
$(use_enable cpu_flags_x86_sse x86simd)
}
diff --git a/media-libs/zimg/zimg-2.8.ebuild b/media-libs/zimg/zimg-2.8.ebuild
new file mode 100644
index 000000000000..d20d4bf58406
--- /dev/null
+++ b/media-libs/zimg/zimg-2.8.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} = *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/sekrit-twc/zimg"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/sekrit-twc/zimg/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+ S="${WORKDIR}/${PN}-release-${PV}/"
+fi
+inherit autotools multilib-minimal
+
+DESCRIPTION="Scaling, colorspace conversion, and dithering library"
+HOMEPAGE="https://github.com/sekrit-twc/zimg"
+
+LICENSE="WTFPL-2"
+SLOT="0"
+IUSE="static-libs cpu_flags_x86_sse"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" econf \
+ $(use_enable cpu_flags_x86_sse x86simd)
+}
diff --git a/media-libs/zimg/zimg-9999.ebuild b/media-libs/zimg/zimg-9999.ebuild
index fe1991fc9e05..d20d4bf58406 100644
--- a/media-libs/zimg/zimg-9999.ebuild
+++ b/media-libs/zimg/zimg-9999.ebuild
@@ -1,36 +1,31 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
-AUTOTOOLS_AUTORECONF=yes
-
-SCM=""
-
-if [ "${PV#9999}" != "${PV}" ] ; then
- SCM="git-r3"
+if [[ ${PV} = *9999* ]] ; then
EGIT_REPO_URI="https://github.com/sekrit-twc/zimg"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/sekrit-twc/zimg/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+ S="${WORKDIR}/${PN}-release-${PV}/"
fi
-
-inherit autotools-multilib ${SCM}
+inherit autotools multilib-minimal
DESCRIPTION="Scaling, colorspace conversion, and dithering library"
HOMEPAGE="https://github.com/sekrit-twc/zimg"
-if [ "${PV#9999}" = "${PV}" ] ; then
- SRC_URI="https://github.com/sekrit-twc/zimg/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
- S="${WORKDIR}/${PN}-release-${PV}/"
-fi
-
LICENSE="WTFPL-2"
SLOT="0"
IUSE="static-libs cpu_flags_x86_sse"
-DEPEND=""
-RDEPEND="${DEPEND}"
+src_prepare() {
+ default
+ eautoreconf
+}
-src_configure() {
- autotools-multilib_src_configure \
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" econf \
$(use_enable cpu_flags_x86_sse x86simd)
}