diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/x264')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/x264/default.nix | 49 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/x264/disable-arm-neon-default.patch | 13 |
2 files changed, 62 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/x264/default.nix b/nixpkgs/pkgs/development/libraries/x264/default.nix new file mode 100644 index 000000000000..57d0c0a4d632 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/x264/default.nix @@ -0,0 +1,49 @@ +{ stdenv, lib, fetchFromGitLab, nasm +, enableShared ? !stdenv.hostPlatform.isStatic + }: + +stdenv.mkDerivation rec { + pname = "x264"; + version = "unstable-2021-06-13"; + + src = fetchFromGitLab { + domain = "code.videolan.org"; + owner = "videolan"; + repo = pname; + rev = "5db6aa6cab1b146e07b60cc1736a01f21da01154"; + sha256 = "0swyrkz6nvajivxvrr08py0jrfcsjvpxw78xm1k5gd9xbdrxvknh"; + }; + + # Upstream ./configure greps for (-mcpu|-march|-mfpu) in CFLAGS, which in nix + # is put in the cc wrapper anyway. + patches = [ ./disable-arm-neon-default.patch ]; + + postPatch = '' + patchShebangs . + ''; + + enableParallelBuilding = true; + + outputs = [ "out" "lib" "dev" ]; + + preConfigure = lib.optionalString (stdenv.buildPlatform.isx86_64 || stdenv.hostPlatform.isi686) '' + # `AS' is set to the binutils assembler, but we need nasm + unset AS + '' + lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) '' + export AS=$CC + ''; + + configureFlags = lib.optional enableShared "--enable-shared" + ++ lib.optional (!stdenv.isi686) "--enable-pic" + ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--cross-prefix=${stdenv.cc.targetPrefix}"; + + nativeBuildInputs = lib.optional (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isi686) nasm; + + meta = with lib; { + description = "Library for encoding H264/AVC video streams"; + homepage = "http://www.videolan.org/developers/x264.html"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ spwhitt tadeokondrak ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/x264/disable-arm-neon-default.patch b/nixpkgs/pkgs/development/libraries/x264/disable-arm-neon-default.patch new file mode 100644 index 000000000000..6971944abb4f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/x264/disable-arm-neon-default.patch @@ -0,0 +1,13 @@ +diff -Naur x264-snapshot-20190517-2245-stable-orig/configure x264-snapshot-20190517-2245-stable/configure +--- x264-snapshot-20190517-2245-stable-orig/configure 2020-01-03 19:51:03.041037657 -0500 ++++ x264-snapshot-20190517-2245-stable/configure 2020-01-03 19:52:15.075034609 -0500 +@@ -930,9 +930,6 @@ + fi + + if [ $asm = auto -a $ARCH = ARM ] ; then +- # set flags so neon is built by default +- [ $compiler == CL ] || echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon" +- + cc_check '' '' '__asm__("add r0, r1, r2");' && define HAVE_ARM_INLINE_ASM + if [ $compiler = CL ] && cpp_check '' '' 'defined(_M_ARM) && _M_ARM >= 7' ; then + define HAVE_ARMV6 |