media-libs/x265: Fix automagic on numactl. Bug #555012.
authorAlexis Ballier <aballier@gentoo.org>
Thu, 15 Oct 2015 14:40:34 +0000 (16:40 +0200)
committerAlexis Ballier <aballier@gentoo.org>
Thu, 15 Oct 2015 14:40:34 +0000 (16:40 +0200)
Package-Manager: portage-2.2.23

media-libs/x265/metadata.xml
media-libs/x265/x265-1.8-r1.ebuild [new file with mode: 0644]
media-libs/x265/x265-9999.ebuild

index 5178f6fafcb6e2586dabbaaf46145905b4f6c8c2..bfc9f5c4ff2fa385cafbef9fe3b2732481067785 100644 (file)
@@ -7,6 +7,7 @@
   </maintainer>
   <use>
          <flag name="10bit">Set output bit depth to 10</flag>
+         <flag name="numa">Build with support for NUMA nodes.</flag>
          <flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
   </use>
 </pkgmetadata>
diff --git a/media-libs/x265/x265-1.8-r1.ebuild b/media-libs/x265/x265-1.8-r1.ebuild
new file mode 100644 (file)
index 0000000..00f7e5a
--- /dev/null
@@ -0,0 +1,95 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-multilib multilib flag-o-matic
+
+if [[ ${PV} = 9999* ]]; then
+       inherit mercurial
+       EHG_REPO_URI="https://bitbucket.org/multicoreware/x265"
+else
+       SRC_URI="
+               https://bitbucket.org/multicoreware/x265/downloads/${PN}_${PV}.tar.gz
+               http://ftp.videolan.org/pub/videolan/x265/${PN}_${PV}.tar.gz"
+       KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Library for encoding video streams into the H.265/HEVC format"
+HOMEPAGE="http://x265.org/"
+
+LICENSE="GPL-2"
+# subslot = libx265 soname
+SLOT="0/68"
+IUSE="+10bit numa pic test"
+
+ASM_DEPEND=">=dev-lang/yasm-1.2.0"
+RDEPEND="numa? ( >=sys-process/numactl-2.0.10-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+       abi_x86_32? ( ${ASM_DEPEND} )
+       abi_x86_64? ( ${ASM_DEPEND} )"
+
+src_unpack() {
+       if [[ ${PV} = 9999* ]]; then
+               mercurial_src_unpack
+               # Can't set it at global scope due to mercurial.eclass limitations...
+               export S=${WORKDIR}/${P}/source
+       else
+               unpack ${A}
+               export S="$(echo "${WORKDIR}/${PN}_"*"/source")"
+       fi
+}
+
+src_prepare() {
+       epatch "${FILESDIR}/${PV}-build-Disable-march-selection-from-CMakeLists.txt.patch"      # bug #510890
+}
+
+multilib_src_configure() {
+       append-cflags -fPIC
+       append-cxxflags -fPIC
+       local mycmakeargs=(
+               $(cmake-utils_use_enable test TESTS)
+               $(multilib_is_native_abi || echo "-DENABLE_CLI=OFF")
+               -DCMAKE_DISABLE_FIND_PACKAGE_Numa=$(usex numa OFF ON)
+               -DHIGH_BIT_DEPTH=$(usex 10bit "ON" "OFF")
+               -DLIB_INSTALL_DIR="$(get_libdir)"
+       )
+
+       if [[ ${ABI} = x86 ]] ; then
+               use 10bit && ewarn "Disabling 10bit support on x86 as it does not build (or requires to disable assembly optimizations)"
+               mycmakeargs+=( -DHIGH_BIT_DEPTH=OFF )
+               # Bug #528202
+               if use pic ; then
+                       ewarn "PIC has been requested but x86 asm is not PIC-safe, disabling it."
+                       mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+               fi
+       elif [[ ${ABI} = x32 ]] ; then
+               # bug #510890
+               mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+       fi
+
+       cmake-utils_src_configure
+}
+
+src_configure() {
+       multilib_parallel_foreach_abi multilib_src_configure
+}
+
+multilib_src_test() {
+       if [ -x "${BUILD_DIR}/test/TestBench" ] ; then
+               "${BUILD_DIR}/test/TestBench" || die
+       else
+               einfo "Unit tests check only assembly, and you do not seem to have any."
+               einfo "Skipping tests."
+       fi
+}
+
+src_test() {
+       multilib_foreach_abi multilib_src_test
+}
+
+src_install() {
+       cmake-multilib_src_install
+       dodoc -r "${S}/../doc/"*
+}
index 0d77b713795672745cc54811f43975f7bb31997a..fbb609d1c3897dcbc59019e22f7f25030b280b5b 100644 (file)
@@ -22,10 +22,10 @@ HOMEPAGE="http://x265.org/"
 LICENSE="GPL-2"
 # subslot = libx265 soname
 SLOT="0/75"
-IUSE="+10bit pic test"
+IUSE="+10bit numa pic test"
 
 ASM_DEPEND=">=dev-lang/yasm-1.2.0"
-RDEPEND=""
+RDEPEND="numa? ( >=sys-process/numactl-2.0.10-r1[${MULTILIB_USEDEP}] )"
 DEPEND="${RDEPEND}
        abi_x86_32? ( ${ASM_DEPEND} )
        abi_x86_64? ( ${ASM_DEPEND} )"
@@ -47,6 +47,7 @@ multilib_src_configure() {
        local mycmakeargs=(
                $(cmake-utils_use_enable test TESTS)
                $(multilib_is_native_abi || echo "-DENABLE_CLI=OFF")
+               -DCMAKE_DISABLE_FIND_PACKAGE_Numa=$(usex numa OFF ON)
                -DHIGH_BIT_DEPTH=$(usex 10bit "ON" "OFF")
                -DLIB_INSTALL_DIR="$(get_libdir)"
        )