summaryrefslogtreecommitdiff
path: root/media-libs/libaom
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-02 05:44:58 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-02 05:44:58 +0000
commitcc4bdc5d184af171efd67a1b32de966071ee18d3 (patch)
tree99813a24b6b194fb3987dff98bcc0bbbf8eda9de /media-libs/libaom
parentc641f12d6bd92a8ea812f9b0e68a9a525a9c9ecc (diff)
gentoo auto-resync : 02:02:2024 - 05:44:58
Diffstat (limited to 'media-libs/libaom')
-rw-r--r--media-libs/libaom/Manifest7
-rw-r--r--media-libs/libaom/files/libaom-3.8.1-tests-parallel.patch21
-rw-r--r--media-libs/libaom/libaom-3.8.0-r1.ebuild148
-rw-r--r--media-libs/libaom/libaom-3.8.1.ebuild155
-rw-r--r--media-libs/libaom/libaom-9999.ebuild17
5 files changed, 344 insertions, 4 deletions
diff --git a/media-libs/libaom/Manifest b/media-libs/libaom/Manifest
index 2be4420cec05..13e0382b57e7 100644
--- a/media-libs/libaom/Manifest
+++ b/media-libs/libaom/Manifest
@@ -2,6 +2,7 @@ AUX libaom-3.4.0-posix-c-source-ftello.patch 429 BLAKE2B 3e6ff2b95dbf39d2d90a46c
AUX libaom-3.7.0-allow-fortify-source.patch 467 BLAKE2B 405f87a6467daae59823eedc9fd7cac959909d5c07df6b4930b55af129750bfd0ed2749b41c6a4fbdb2a8dd49a6881e9de0af526972d27c8c731ce29ab34d1af SHA512 ab69882b8652cb61bdfa14b5fbf5e5cef3344df3aee852f42192af1e935299be1029947a3cb80527362b2db57c93197b889fb45dc562123353b7a3871feaa811
AUX libaom-3.7.0-big-endian-tests.patch 1611 BLAKE2B 9c0ab0a6a5788fdbc87f30ef5f2a6524521dcf1ec1911544827acb912551c08fcf370c369abfde1567d691a8b814ec897d90819431d7ad091dc247dc7e7396e0 SHA512 299f511b45ba9f1511ab508159f7341ff6ca433118feefd66e96266131588203fc651b4b88be79487b1cbb688c7946dddeeba1b07d88c471da95465e6782fb87
AUX libaom-3.7.0-big-endian.patch 4168 BLAKE2B 6c9a9ac0933b29b3ee8111d8068dfff144385ae68ebf693a335672c3138cc31ef346486af44b0b0fff9bad58ad72d2335962b78bc82e40b1a7f4a4c9b5d3ca28 SHA512 aebd3f9d16f0cc6a6a0b7a240d5d8cb55d28fc8fe4a00444b26c4b54fed0536ff3577aab5aa624cd9900858770dfdad50f9429d91ee0638058d4be34873e8be6
+AUX libaom-3.8.1-tests-parallel.patch 907 BLAKE2B 3c969182fed047b6075ebd0d19f50dfe19028658da42eefc991eaf4ed15736ac95219f5562dc8c04e34849c615fe74a5c940701e274ed7485387092d8d46fb50 SHA512 293924e8732640977c706dcf7fe811f76f093402faa3db8e61d35e32552df889dc63073f004dce4bc4230ceb647f78d0085c9a0099b597b148b9a29fc38f2544
DIST libaom-3.5.0.tar.gz 5206715 BLAKE2B d47ddb864c909c972f692667177417daef0350124a096547eacc83ab3630227fe7a23e95f3988a2109c580f9a87ba30a58bcc58be1a2e24fe694eb01655a4861 SHA512 370c529a84d54c95f05c5a3b3edadd1cca95eeccd5a6b5454e574211c6dd9bf5bd33ab67b43587c6de37688fe546ea9e16de0ab2d721e965143b7e8c85db6fd4
DIST libaom-3.7.0-testdata.tar.xz 374076136 BLAKE2B 17036f37fbb04d59b50e13e5e2258215e99cab4b6f64ac558213009477bc22f43267b60bcbb30ec10325de2aed48b22237b12cd6220f4330e300b62bafedac0b SHA512 c08ef4c9c45f1a27e6c31b8cc9799d8e65d895663a79d7be51da1733be6d8013adaad3a8f1d7491f555a2eea58aead44b9ce935c3e9bb957cb8bbb93f6f4fd98
DIST libaom-3.7.0.tar.gz 5347924 BLAKE2B 2693d60f5afa810e00ab6aadcf8ca763e328bc64e47b3678eeba9993db89b25cfa0380beeff5a5938f19da74410ce83068c318cff2aea30e5fe39680ac67e937 SHA512 b763a877db26dcaddea5513825900917e55bc131bf78a83f941f1e74b534a514cb599fb64c3ac18a8202ac0a72c511dfef6eeff21dfbe59ed9816887ca3ec5f3
@@ -9,9 +10,13 @@ DIST libaom-3.7.1-testdata.tar.xz 373814716 BLAKE2B 2aecab88d36998d72ccbd1704004
DIST libaom-3.7.1.tar.gz 5349727 BLAKE2B a5bc8aaa538353fa405520fc096459d0009348c590dc585377e53971df252bac0b5bea40b6483c8be54caa7a0e8fccd761c5b3ec0db4144becec3cc12a91a5e9 SHA512 2ac90997065fcbdfa028e09945c10cbdad405569b98e03592a46971aebb189014ebd59553589804ba0a03c386af41bfbc37dd0a12320eb0fc6c9fd03e2149ee3
DIST libaom-3.8.0-testdata.tar.xz 426384840 BLAKE2B a195f44aa8f55e869ea613f587a101162723be643d272c08b5ac50afc9c55e2240d84f63489402482699f6c306d96116f7808f47f529ce4d0ec8149495b72b49 SHA512 18ba3468e770e274e8a1556160c8524d309d6ea80e3cca971d6858cccc5ba4f2d3764f484e19d23df83ebc50e047aa1ef6fb1a92aad90668cfee7daa95447db2
DIST libaom-3.8.0.tar.gz 5448720 BLAKE2B 276e50c134a5a5925591cbc5c76a11383d288854bc5f4db79d97f1e4e41e74f5739ee916df127112cb678673f09aeb5dfa91f1d8696b0894923837cea991bd73 SHA512 201a3ef00c0de3f90ed2486b306b836ec3e5c891c0ea05cb4607523f084f957849d38cd1e2684c05af2a93180a1b151ccc7a99ba8d5d52a84d8cb17cb25b0e8a
+DIST libaom-3.8.1-testdata.tar.xz 426372276 BLAKE2B 4d6194a98612045023f4d35ca851a37ffc69cbfbfd015d5c1f4e3aebb6789096d7b7f82b9641c545e4203b44fe8a9243de83bb23a8c53aced30ec26aed0376e0 SHA512 03bf5d521c613728dd12fd33bb76fc64a20798e276dbdc2501446e1fb9891552e88adb25f0e4ff65d6c8aad301a550aec195498ab1f1a506bce3fe384e24cc0e
+DIST libaom-3.8.1.tar.gz 5450909 BLAKE2B fec3123f8ee68b1027a1a2019969c098b730da72be2902274659b983857f2d8f62dae5b563543b3f144ae8bc51b6d6fdd4fcd6aadf2ca04d5a4dd5be987fbbac SHA512 f9ee918a37699cfaf2bcb5aa16a4d8b077feb1fc577d8c5437ed3fa1a1c0a5d734c9564e3c8c0f0b1baf43dc5abb7ff0196a77607b10d926c0be7858778ac1e3
EBUILD libaom-3.5.0.ebuild 3315 BLAKE2B afdd6a434aef5df50c5994bbb9354e41f695a3f91b2a7d68ee37e567d9bd0bea178f1612ff40917b6d56b3446a0e69dbec07b2ba4c2fbe80d62b0d2e859ff65f SHA512 1d3ac1927aace364c0d2e68ac060cf1ecc7af3c9544ac00e8910d940f38221548ec831ff3596498e0c40308a49d24104861603bb204fd8c7db2546466627e9f7
EBUILD libaom-3.7.0-r2.ebuild 4406 BLAKE2B af21096b90e2d22986715e2399ed37879ea36fe0b7e8bc082a27da285745a8baa6b6485e780cd4062c255268d5c3885dbcc43c7231c2aa446478872ebf390b14 SHA512 e4cf9710930b9979dd5672a776189ce6f7e2f11913621cde8e5a919bb2eaa62f2cca227bf90fd6c1e4e1af65cd4ad3b89e3a63bb69ce2abcb2467406472eb151
EBUILD libaom-3.7.1.ebuild 4424 BLAKE2B 27cd85e96fb5f742e2e5e2d2c357dc6933078f3e081c07759408a0fb2e57bd03d2a5976f7e872d0b6ae575c19c844346443b5e0ca659f689d2417a099c6d60b4 SHA512 2fafb54f79b1547b99d9226e80c08cb86ae65fc923b6f9ac46e398f86c89c89386becaafde8dd2d55c964446252c035cafa00c0827c0fb5a1810dc91330fa63c
+EBUILD libaom-3.8.0-r1.ebuild 4674 BLAKE2B 91313c4b6dc82e2473f46dc672f92dfb6a8ecd4628b155b6c8e82cc76e9f5599ae8230205933a7bf29b1ae3a44eb11dad7ca401d1293c6d902f3d255d88e1c93 SHA512 2e71635cdb31012b0ddc84e2a8373f0bcc6926c930dc8329ad3ca193da8273219b1d9ab6ec32d3b1f54e6faac37a9e7bcb98de78b6d4cf620d57dae8165163d6
EBUILD libaom-3.8.0.ebuild 4488 BLAKE2B 19eb7ed010ecd5ad0470700111a8625cc61a5fd0ddfaae587ab120daeb1aafb116732a09c96c2089d40827bd358fa815e71facbb8b22f25862c403143d1d5999 SHA512 67f03711966f111421e0022e7d800d550e69d492d7dedced36fc2385893e5c7ce2b29a141bfcf7e0ff23682ce81e2e9fb7ba526cbea2bbff8d3ebff59c81e592
-EBUILD libaom-9999.ebuild 4488 BLAKE2B 19eb7ed010ecd5ad0470700111a8625cc61a5fd0ddfaae587ab120daeb1aafb116732a09c96c2089d40827bd358fa815e71facbb8b22f25862c403143d1d5999 SHA512 67f03711966f111421e0022e7d800d550e69d492d7dedced36fc2385893e5c7ce2b29a141bfcf7e0ff23682ce81e2e9fb7ba526cbea2bbff8d3ebff59c81e592
+EBUILD libaom-3.8.1.ebuild 5044 BLAKE2B 3dae69c761955553fb028649655a5e11be43cf0d04d78646e5f2edc7f5fa8cf657e992eede7453d43494826c63744984059fee35ebcad87b48f381793680cc01 SHA512 88032345724411d6cf0761052a8f2d46e62e255736dc3740d5ca367b0bdeabe5296b79763f7c6672a0c2f92975158bdaf3fb0365e2e30c4afa042e70eed66679
+EBUILD libaom-9999.ebuild 5044 BLAKE2B 3dae69c761955553fb028649655a5e11be43cf0d04d78646e5f2edc7f5fa8cf657e992eede7453d43494826c63744984059fee35ebcad87b48f381793680cc01 SHA512 88032345724411d6cf0761052a8f2d46e62e255736dc3740d5ca367b0bdeabe5296b79763f7c6672a0c2f92975158bdaf3fb0365e2e30c4afa042e70eed66679
MISC metadata.xml 224 BLAKE2B a8fa831654345ddf74b54f53fdc27d128ff6896378c8aa2dcb27139a4382f63efd0cac17f94ee420932e2855042c94e32fe534c99a977698953aaab4c51c31d0 SHA512 0b59f17151d352f25e3b073a3ee388d0189e1caddf0d97142851a19df433d082e3eead9f5aae07f4beb247861d90f02ae217514d02445703b95ee6ff62d967b8
diff --git a/media-libs/libaom/files/libaom-3.8.1-tests-parallel.patch b/media-libs/libaom/files/libaom-3.8.1-tests-parallel.patch
new file mode 100644
index 000000000000..8c090764681c
--- /dev/null
+++ b/media-libs/libaom/files/libaom-3.8.1-tests-parallel.patch
@@ -0,0 +1,21 @@
+--- a/test/test.cmake
++++ b/test/test.cmake
+@@ -573,10 +573,14 @@ function(setup_aom_test_targets)
+ if(((NOT MSVC) AND (NOT XCODE)) OR ENABLE_IDE_TEST_HOSTING)
+
+ # Pick a reasonable number of targets (this controls parallelization).
+- processorcount(num_test_targets)
+- if(num_test_targets EQUAL 0) # Just default to 10 targets when there's no
+- # processor count available.
+- set(num_test_targets 10)
++ if(DEFINED ENV{LIBAOM_TEST_PROCS})
++ set(num_test_targets $ENV{LIBAOM_TEST_PROCS})
++ else()
++ processorcount(num_test_targets)
++ if(num_test_targets EQUAL 0) # Just default to 10 targets when there's no
++ # processor count available.
++ set(num_test_targets 10)
++ endif()
+ endif()
+
+ math(EXPR max_shard_index "${num_test_targets} - 1")
diff --git a/media-libs/libaom/libaom-3.8.0-r1.ebuild b/media-libs/libaom/libaom-3.8.0-r1.ebuild
new file mode 100644
index 000000000000..19cc803b77f6
--- /dev/null
+++ b/media-libs/libaom/libaom-3.8.0-r1.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cmake-multilib flag-o-matic python-any-r1
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://aomedia.googlesource.com/aom"
+else
+ # To update test data tarball, follow these steps:
+ # 1. Clone the upstream repo and check out the relevant tag,
+ # or download the release tarball
+ # 2. Regular cmake configure (options don't matter here):
+ # cd build && cmake ..
+ # 3. Set LIBAOM_TEST_DATA_PATH to the directory you want and
+ # run the "make testdata" target:
+ # LIBAOM_TEST_DATA_PATH=../libaom-3.7.1-testdata make testdata
+ # This will download the test data from the internet.
+ # 4. Create a tarball out of that directory.
+ # cd .. && tar cvaf libaom-3.7.1-testdata.tar.xz libaom-3.7.1-testdata
+ SRC_URI="
+ https://storage.googleapis.com/aom-releases/${P}.tar.gz
+ test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-testdata.tar.xz )
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Alliance for Open Media AV1 Codec SDK"
+HOMEPAGE="https://aomedia.org https://aomedia.googlesource.com/aom/"
+
+LICENSE="BSD-2"
+SLOT="0/3"
+IUSE="big-endian debug doc +examples test"
+IUSE="${IUSE} cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3"
+IUSE="${IUSE} cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2"
+IUSE="${IUSE} cpu_flags_arm_crc32 cpu_flags_arm_neon cpu_flags_ppc_vsx"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ cpu_flags_x86_sse2? ( cpu_flags_x86_mmx )
+ cpu_flags_x86_ssse3? ( cpu_flags_x86_sse2 )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ abi_x86_32? ( dev-lang/yasm )
+ abi_x86_64? ( dev-lang/yasm )
+ abi_x86_x32? ( dev-lang/yasm )
+ doc? ( app-text/doxygen )
+"
+
+# The PATENTS file is required to be distributed with this package, bug #682214
+DOCS=( PATENTS )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.4.0-posix-c-source-ftello.patch
+ "${FILESDIR}"/${PN}-3.7.0-allow-fortify-source.patch
+)
+
+multilib_src_configure() {
+ # Follow upstream recommendations in README (bug #921438) and avoid
+ # asserts during common use (bug #914614).
+ append-cppflags $(usex debug '-UNDEBUG' '-DNDEBUG')
+
+ local mycmakeargs=(
+ -DENABLE_CCACHE=OFF
+ -DENABLE_DOCS=$(multilib_native_usex doc ON OFF)
+ -DENABLE_EXAMPLES=$(multilib_native_usex examples ON OFF)
+ -DENABLE_NASM=OFF
+ -DENABLE_TESTS=$(usex test)
+ -DENABLE_TOOLS=ON
+ -DENABLE_WERROR=OFF
+ # https://bugs.chromium.org/p/aomedia/issues/detail?id=3487 shows
+ # that big endian detection doesn't really work otherwise.
+ -DCONFIG_BIG_ENDIAN=$(usex big-endian 1 0)
+
+ # Needs libjxl, currently unpackaged.
+ -DCONFIG_TUNE_BUTTERAUGLI=0
+
+ # arm
+ -DENABLE_NEON=$(usex cpu_flags_arm_neon ON OFF)
+ -DENABLE_ARM_CRC32=$(usex cpu_flags_arm_crc32 ON OFF)
+ # bug #917277
+ -DENABLE_NEON_DOTPROD=OFF
+ # bug #917278
+ -DENABLE_NEON_I8MM=OFF
+ # bug #920474
+ -DENABLE_SVE=OFF
+
+ # mips
+ # ENABLE_DSPR2 / ENABLE_MSA for mips
+
+ # amd64
+ -DENABLE_MMX=$(usex cpu_flags_x86_mmx ON OFF)
+ -DENABLE_SSE=$(usex cpu_flags_x86_sse ON OFF)
+ -DENABLE_SSE2=$(usex cpu_flags_x86_sse2 ON OFF)
+ -DENABLE_SSE3=$(usex cpu_flags_x86_sse3 ON OFF)
+ -DENABLE_SSSE3=$(usex cpu_flags_x86_ssse3 ON OFF)
+ -DENABLE_SSE4_1=$(usex cpu_flags_x86_sse4_1 ON OFF)
+ -DENABLE_SSE4_2=$(usex cpu_flags_x86_sse4_2 ON OFF)
+ -DENABLE_AVX=$(usex cpu_flags_x86_avx ON OFF)
+ -DENABLE_AVX2=$(usex cpu_flags_x86_avx2 ON OFF)
+
+ # ppc
+ -DENABLE_VSX=$(usex cpu_flags_ppc_vsx ON OFF)
+ )
+
+ # For 32-bit multilib builds, force some intrinsics on to work around
+ # bug #816027. libaom seems to do runtime detection for some targets
+ # at least, so this isn't an issue.
+ if ! multilib_is_native_abi && use amd64 ; then
+ mycmakeargs+=(
+ -DENABLE_SSE3=ON
+ -DENABLE_SSSE3=ON
+ )
+ fi
+
+ # On ARM32-on-ARM64, things end up failing if NEON is off, bug #835456
+ # Just force generic, given it's a niche situation.
+ # TODO: could try forcing armv7 or similar?
+ if use arm && ! use cpu_flags_arm_neon && [[ $(uname -p) == "aarch64" ]] ; then
+ ewarn "Forcing generic for arm32-on-arm64 build (bug #835456)"
+ mycmakeargs+=(
+ -DAOM_TARGET_CPU=generic
+ )
+ fi
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ LIBAOM_TEST_DATA_PATH="${WORKDIR}/${P}-testdata" "${BUILD_DIR}"/test_libaom || die
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi && use doc ; then
+ local HTML_DOCS=( "${BUILD_DIR}"/docs/html/. )
+ fi
+
+ cmake_src_install
+}
+
+multilib_src_install_all() {
+ find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
+}
diff --git a/media-libs/libaom/libaom-3.8.1.ebuild b/media-libs/libaom/libaom-3.8.1.ebuild
new file mode 100644
index 000000000000..9ea4cca0ff7e
--- /dev/null
+++ b/media-libs/libaom/libaom-3.8.1.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cmake-multilib flag-o-matic multiprocessing python-any-r1
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://aomedia.googlesource.com/aom"
+else
+ # To update test data tarball, follow these steps:
+ # 1. Clone the upstream repo and check out the relevant tag,
+ # or download the release tarball
+ # 2. Regular cmake configure (options don't matter here):
+ # cd build && cmake ..
+ # 3. Set LIBAOM_TEST_DATA_PATH to the directory you want and
+ # run the "make testdata" target:
+ # LIBAOM_TEST_DATA_PATH=../libaom-3.7.1-testdata make testdata
+ # This will download the test data from the internet.
+ # 4. Create a tarball out of that directory.
+ # cd .. && tar cvaf libaom-3.7.1-testdata.tar.xz libaom-3.7.1-testdata
+ SRC_URI="
+ https://storage.googleapis.com/aom-releases/${P}.tar.gz
+ test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-testdata.tar.xz )
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Alliance for Open Media AV1 Codec SDK"
+HOMEPAGE="https://aomedia.org https://aomedia.googlesource.com/aom/"
+
+LICENSE="BSD-2"
+SLOT="0/3"
+IUSE="big-endian debug doc +examples test"
+IUSE="${IUSE} cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3"
+IUSE="${IUSE} cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2"
+IUSE="${IUSE} cpu_flags_arm_crc32 cpu_flags_arm_neon cpu_flags_ppc_vsx"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ cpu_flags_x86_sse2? ( cpu_flags_x86_mmx )
+ cpu_flags_x86_ssse3? ( cpu_flags_x86_sse2 )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ abi_x86_32? ( dev-lang/yasm )
+ abi_x86_64? ( dev-lang/yasm )
+ abi_x86_x32? ( dev-lang/yasm )
+ doc? ( app-text/doxygen )
+"
+
+# The PATENTS file is required to be distributed with this package, bug #682214
+DOCS=( PATENTS )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.4.0-posix-c-source-ftello.patch
+ "${FILESDIR}"/${PN}-3.7.0-allow-fortify-source.patch
+ "${FILESDIR}"/${PN}-3.8.1-tests-parallel.patch
+)
+
+multilib_src_configure() {
+ # Follow upstream recommendations in README (bug #921438) and avoid
+ # asserts during common use (bug #914614).
+ append-cppflags $(usex debug '-UNDEBUG' '-DNDEBUG')
+
+ local mycmakeargs=(
+ -DENABLE_CCACHE=OFF
+ -DENABLE_DOCS=$(multilib_native_usex doc ON OFF)
+ -DENABLE_EXAMPLES=$(multilib_native_usex examples ON OFF)
+ -DENABLE_NASM=OFF
+ -DENABLE_TESTS=$(usex test)
+ -DENABLE_TOOLS=ON
+ -DENABLE_WERROR=OFF
+ # https://bugs.chromium.org/p/aomedia/issues/detail?id=3487 shows
+ # that big endian detection doesn't really work otherwise.
+ -DCONFIG_BIG_ENDIAN=$(usex big-endian 1 0)
+
+ # Needs libjxl, currently unpackaged.
+ -DCONFIG_TUNE_BUTTERAUGLI=0
+
+ # arm
+ -DENABLE_NEON=$(usex cpu_flags_arm_neon ON OFF)
+ -DENABLE_ARM_CRC32=$(usex cpu_flags_arm_crc32 ON OFF)
+ # bug #917277
+ -DENABLE_NEON_DOTPROD=OFF
+ # bug #917278
+ -DENABLE_NEON_I8MM=OFF
+ # bug #920474
+ -DENABLE_SVE=OFF
+
+ # mips
+ # ENABLE_DSPR2 / ENABLE_MSA for mips
+
+ # amd64
+ -DENABLE_MMX=$(usex cpu_flags_x86_mmx ON OFF)
+ -DENABLE_SSE=$(usex cpu_flags_x86_sse ON OFF)
+ -DENABLE_SSE2=$(usex cpu_flags_x86_sse2 ON OFF)
+ -DENABLE_SSE3=$(usex cpu_flags_x86_sse3 ON OFF)
+ -DENABLE_SSSE3=$(usex cpu_flags_x86_ssse3 ON OFF)
+ -DENABLE_SSE4_1=$(usex cpu_flags_x86_sse4_1 ON OFF)
+ -DENABLE_SSE4_2=$(usex cpu_flags_x86_sse4_2 ON OFF)
+ -DENABLE_AVX=$(usex cpu_flags_x86_avx ON OFF)
+ -DENABLE_AVX2=$(usex cpu_flags_x86_avx2 ON OFF)
+
+ # ppc
+ -DENABLE_VSX=$(usex cpu_flags_ppc_vsx ON OFF)
+ )
+
+ # For 32-bit multilib builds, force some intrinsics on to work around
+ # bug #816027. libaom seems to do runtime detection for some targets
+ # at least, so this isn't an issue.
+ if ! multilib_is_native_abi && use amd64 ; then
+ mycmakeargs+=(
+ -DENABLE_SSE3=ON
+ -DENABLE_SSSE3=ON
+ )
+ fi
+
+ # On ARM32-on-ARM64, things end up failing if NEON is off, bug #835456
+ # Just force generic, given it's a niche situation.
+ # TODO: could try forcing armv7 or similar?
+ if use arm && ! use cpu_flags_arm_neon && [[ $(uname -p) == "aarch64" ]] ; then
+ ewarn "Forcing generic for arm32-on-arm64 build (bug #835456)"
+ mycmakeargs+=(
+ -DAOM_TARGET_CPU=generic
+ )
+ fi
+
+ # LIBAOM_TEST_PROCS is added by our tests-parallel.patch
+ export LIBAOM_TEST_PROCS="$(makeopts_jobs)"
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ einfo "Running quiet tests which take hours."
+ # We use ninja rather than test_libaom directly so we can run it in parallel
+ # with sharding, see https://aomedia.googlesource.com/aom/#sharded-testing.
+ LIBAOM_TEST_DATA_PATH="${WORKDIR}/${P}-testdata" eninja -C "${BUILD_DIR}" runtests
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi && use doc ; then
+ local HTML_DOCS=( "${BUILD_DIR}"/docs/html/. )
+ fi
+
+ cmake_src_install
+}
+
+multilib_src_install_all() {
+ find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
+}
diff --git a/media-libs/libaom/libaom-9999.ebuild b/media-libs/libaom/libaom-9999.ebuild
index 9316ed29f90d..9ea4cca0ff7e 100644
--- a/media-libs/libaom/libaom-9999.ebuild
+++ b/media-libs/libaom/libaom-9999.ebuild
@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
-inherit cmake-multilib python-any-r1
+inherit cmake-multilib flag-o-matic multiprocessing python-any-r1
if [[ ${PV} == *9999* ]]; then
inherit git-r3
@@ -33,7 +33,7 @@ HOMEPAGE="https://aomedia.org https://aomedia.googlesource.com/aom/"
LICENSE="BSD-2"
SLOT="0/3"
-IUSE="big-endian doc +examples test"
+IUSE="big-endian debug doc +examples test"
IUSE="${IUSE} cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3"
IUSE="${IUSE} cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2"
IUSE="${IUSE} cpu_flags_arm_crc32 cpu_flags_arm_neon cpu_flags_ppc_vsx"
@@ -58,9 +58,14 @@ DOCS=( PATENTS )
PATCHES=(
"${FILESDIR}"/${PN}-3.4.0-posix-c-source-ftello.patch
"${FILESDIR}"/${PN}-3.7.0-allow-fortify-source.patch
+ "${FILESDIR}"/${PN}-3.8.1-tests-parallel.patch
)
multilib_src_configure() {
+ # Follow upstream recommendations in README (bug #921438) and avoid
+ # asserts during common use (bug #914614).
+ append-cppflags $(usex debug '-UNDEBUG' '-DNDEBUG')
+
local mycmakeargs=(
-DENABLE_CCACHE=OFF
-DENABLE_DOCS=$(multilib_native_usex doc ON OFF)
@@ -124,11 +129,17 @@ multilib_src_configure() {
)
fi
+ # LIBAOM_TEST_PROCS is added by our tests-parallel.patch
+ export LIBAOM_TEST_PROCS="$(makeopts_jobs)"
+
cmake_src_configure
}
multilib_src_test() {
- LIBAOM_TEST_DATA_PATH="${WORKDIR}/${P}-testdata" "${BUILD_DIR}"/test_libaom || die
+ einfo "Running quiet tests which take hours."
+ # We use ninja rather than test_libaom directly so we can run it in parallel
+ # with sharding, see https://aomedia.googlesource.com/aom/#sharded-testing.
+ LIBAOM_TEST_DATA_PATH="${WORKDIR}/${P}-testdata" eninja -C "${BUILD_DIR}" runtests
}
multilib_src_install() {