From cc4bdc5d184af171efd67a1b32de966071ee18d3 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 2 Feb 2024 05:44:58 +0000 Subject: gentoo auto-resync : 02:02:2024 - 05:44:58 --- media-libs/libaom/Manifest | 7 +- .../libaom/files/libaom-3.8.1-tests-parallel.patch | 21 +++ media-libs/libaom/libaom-3.8.0-r1.ebuild | 148 ++++++++++++++++++++ media-libs/libaom/libaom-3.8.1.ebuild | 155 +++++++++++++++++++++ media-libs/libaom/libaom-9999.ebuild | 17 ++- 5 files changed, 344 insertions(+), 4 deletions(-) create mode 100644 media-libs/libaom/files/libaom-3.8.1-tests-parallel.patch create mode 100644 media-libs/libaom/libaom-3.8.0-r1.ebuild create mode 100644 media-libs/libaom/libaom-3.8.1.ebuild (limited to 'media-libs/libaom') 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() { -- cgit v1.2.3