about summary refs log tree commit diff
path: root/pkgs/development/libraries/libvpx/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/libvpx/default.nix')
-rw-r--r--pkgs/development/libraries/libvpx/default.nix219
1 files changed, 0 insertions, 219 deletions
diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix
deleted file mode 100644
index ef0929a841d8..000000000000
--- a/pkgs/development/libraries/libvpx/default.nix
+++ /dev/null
@@ -1,219 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, perl, yasm
-, vp8DecoderSupport ? true # VP8 decoder
-, vp8EncoderSupport ? true # VP8 encoder
-, vp9DecoderSupport ? true # VP9 decoder
-, vp9EncoderSupport ? true # VP9 encoder
-, extraWarningsSupport ? false # emit non-fatal warnings
-, werrorSupport ? false # treat warnings as errors (not available with all compilers)
-, debugSupport ? false # debug mode
-, gprofSupport ? false # gprof profiling instrumentation
-, gcovSupport ? false # gcov coverage instrumentation
-, sizeLimitSupport ? true # limit max size to allow in the decoder
-, optimizationsSupport ? true # compiler optimization flags
-, runtimeCpuDetectSupport ? true # detect cpu capabilities at runtime
-, thumbSupport ? false # build arm assembly in thumb mode
-, examplesSupport ? true # build examples (vpxdec & vpxenc are part of examples)
-, debugLibsSupport ? false # include debug version of each library
-, postprocSupport ? true # postprocessing
-, multithreadSupport ? true # multithreaded decoding & encoding
-, internalStatsSupport ? false # output of encoder internal stats for debug, if supported (encoders)
-, spatialResamplingSupport ? true # spatial sampling (scaling)
-, realtimeOnlySupport ? false # build for real-time encoding
-, ontheflyBitpackingSupport ? false # on-the-fly bitpacking in real-time encoding
-, errorConcealmentSupport ? false # decoder conceals losses
-, smallSupport ? false # favor smaller binary over speed
-, postprocVisualizerSupport ? false # macro block/block level visualizers
-, unitTestsSupport ? false, curl ? null, coreutils ? null # unit tests
-, webmIOSupport ? true # input from and output to webm container
-, libyuvSupport ? true # libyuv
-, decodePerfTestsSupport ? false # build decoder perf tests with unit tests
-, encodePerfTestsSupport ? false # build encoder perf tests with unit tests
-, multiResEncodingSupport ? false # multiple-resolution encoding
-, temporalDenoisingSupport ? true # use temporal denoising instead of spatial denoising
-, coefficientRangeCheckingSupport ? false # decoder checks if intermediate transform coefficients are in valid range
-, vp9HighbitdepthSupport ? true # 10/12 bit color support in VP9
-# Experimental features
-, experimentalSpatialSvcSupport ? false # Spatial scalable video coding
-, experimentalFpMbStatsSupport ? false
-, experimentalEmulateHardwareSupport ? false
-
-# for passthru.tests
-, ffmpeg
-, gst_all_1
-}:
-
-let
-  inherit (stdenv) is64bit isMips isDarwin isCygwin;
-  inherit (lib) enableFeature optional optionals;
-
-  # libvpx darwin targets include darwin version (ie. ARCH-darwinXX-gcc, XX being the darwin version)
-  # See all_platforms: https://github.com/webmproject/libvpx/blob/master/configure
-  # Darwin versions: 10.4=8, 10.5=9, 10.6=10, 10.7=11, 10.8=12, 10.9=13, 10.10=14
-  darwinVersion =
-    /**/ if stdenv.hostPlatform.osxMinVersion == "10.10" then "14"
-    else if stdenv.hostPlatform.osxMinVersion == "10.9"  then "13"
-    else if stdenv.hostPlatform.osxMinVersion == "10.8"  then "12"
-    else if stdenv.hostPlatform.osxMinVersion == "10.7"  then "11"
-    else if stdenv.hostPlatform.osxMinVersion == "10.6"  then "10"
-    else if stdenv.hostPlatform.osxMinVersion == "10.5"  then "9"
-    else "8";
-
-  cpu =
-    /**/ if stdenv.hostPlatform.isArmv7 then "armv7"
-    else if stdenv.hostPlatform.isAarch64 then "arm64"
-    else if stdenv.hostPlatform.isx86_32 then "x86"
-    else stdenv.hostPlatform.parsed.cpu.name;
-
-  kernel =
-    # Build system doesn't understand BSD, so pretend to be Linux.
-    /**/ if stdenv.isBSD then "linux"
-    else if stdenv.isDarwin then "darwin${darwinVersion}"
-    else stdenv.hostPlatform.parsed.kernel.name;
-
-  isGeneric =
-    /**/ (stdenv.hostPlatform.isPower && stdenv.hostPlatform.isLittleEndian)
-    || stdenv.hostPlatform.parsed.cpu.name == "armv6l"
-    || stdenv.hostPlatform.isRiscV;
-
-  target =
-    /**/ if (stdenv.isBSD || stdenv.hostPlatform != stdenv.buildPlatform) then
-      (if isGeneric then "generic-gnu" else "${cpu}-${kernel}-gcc")
-    else null;
-in
-
-assert vp8DecoderSupport || vp8EncoderSupport || vp9DecoderSupport || vp9EncoderSupport;
-assert internalStatsSupport && (vp9DecoderSupport || vp9EncoderSupport) -> postprocSupport;
-/* If spatialResamplingSupport not enabled, build will fail with undeclared variable errors.
-   Variables called in vpx_scale/generic/vpx_scale.c are declared by vpx_scale/vpx_scale_rtcd.pl,
-   but is only executed if spatialResamplingSupport is enabled */
-assert spatialResamplingSupport;
-assert postprocVisualizerSupport -> postprocSupport;
-assert unitTestsSupport -> curl != null && coreutils != null;
-assert vp9HighbitdepthSupport -> (vp9DecoderSupport || vp9EncoderSupport);
-assert isCygwin -> unitTestsSupport && webmIOSupport && libyuvSupport;
-
-stdenv.mkDerivation rec {
-  pname = "libvpx";
-  version = "1.14.1";
-
-  src = fetchFromGitHub {
-    owner = "webmproject";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-Pfg7g4y/dqn2VKDQU1LnTJQSj1Tont9/8Je6ShDb2GQ=";
-  };
-
-  postPatch = ''
-    patchShebangs --build \
-      build/make/*.sh \
-      build/make/*.pl \
-      build/make/*.pm \
-      test/*.sh \
-      configure
-
-    # When cross-compiling (for aarch64-multiplatform), the compiler errors out on these flags.
-    # Since they're 'just' warnings, it's fine to just remove them.
-    substituteInPlace configure \
-      --replace "check_add_cflags -Wparentheses-equality" "" \
-      --replace "check_add_cflags -Wunreachable-code-loop-increment" "" \
-      --replace "check_cflags -Wshorten-64-to-32 && add_cflags_only -Wshorten-64-to-32" ""
-  '';
-
-  outputs = [ "bin" "dev" "out" ];
-  setOutputFlags = false;
-
-  configurePlatforms = [];
-  configureFlags = [
-    (enableFeature (vp8EncoderSupport || vp8DecoderSupport) "vp8")
-    (enableFeature vp8EncoderSupport "vp8-encoder")
-    (enableFeature vp8DecoderSupport "vp8-decoder")
-    (enableFeature (vp9EncoderSupport || vp9DecoderSupport) "vp9")
-    (enableFeature vp9EncoderSupport "vp9-encoder")
-    (enableFeature vp9DecoderSupport "vp9-decoder")
-    (enableFeature extraWarningsSupport "extra-warnings")
-    (enableFeature werrorSupport "werror")
-    "--disable-install-docs"
-    (enableFeature examplesSupport "install-bins")
-    "--enable-install-libs"
-    "--disable-install-srcs"
-    (enableFeature debugSupport "debug")
-    (enableFeature gprofSupport "gprof")
-    (enableFeature gcovSupport "gcov")
-    # Required to build shared libraries
-    (enableFeature (!isCygwin) "pic")
-    (enableFeature optimizationsSupport "optimizations")
-    (enableFeature runtimeCpuDetectSupport "runtime-cpu-detect")
-    (enableFeature thumbSupport "thumb")
-    "--enable-libs"
-    (enableFeature examplesSupport "examples")
-    "--disable-docs"
-    "--as=yasm"
-    # Limit default decoder max to WHXGA
-    (if sizeLimitSupport then "--size-limit=5120x3200" else null)
-    "--disable-codec-srcs"
-    (enableFeature debugLibsSupport "debug-libs")
-    (enableFeature isMips "dequant-tokens")
-    (enableFeature isMips "dc-recon")
-    (enableFeature postprocSupport "postproc")
-    (enableFeature (postprocSupport && (vp9DecoderSupport || vp9EncoderSupport)) "vp9-postproc")
-    (enableFeature multithreadSupport "multithread")
-    (enableFeature internalStatsSupport "internal-stats")
-    (enableFeature spatialResamplingSupport "spatial-resampling")
-    (enableFeature realtimeOnlySupport "realtime-only")
-    (enableFeature ontheflyBitpackingSupport "onthefly-bitpacking")
-    (enableFeature errorConcealmentSupport "error-concealment")
-    # Shared libraries are only supported on ELF platforms
-    (if isDarwin || isCygwin then
-       "--enable-static --disable-shared"
-     else
-       "--enable-shared")
-    (enableFeature smallSupport "small")
-    (enableFeature postprocVisualizerSupport "postproc-visualizer")
-    (enableFeature unitTestsSupport "unit-tests")
-    (enableFeature webmIOSupport "webm-io")
-    (enableFeature libyuvSupport "libyuv")
-    (enableFeature decodePerfTestsSupport "decode-perf-tests")
-    (enableFeature encodePerfTestsSupport "encode-perf-tests")
-    (enableFeature multiResEncodingSupport "multi-res-encoding")
-    (enableFeature temporalDenoisingSupport "temporal-denoising")
-    (enableFeature (temporalDenoisingSupport && (vp9DecoderSupport || vp9EncoderSupport)) "vp9-temporal-denoising")
-    (enableFeature coefficientRangeCheckingSupport "coefficient-range-checking")
-    (enableFeature (vp9HighbitdepthSupport && is64bit) "vp9-highbitdepth")
-    (enableFeature (experimentalSpatialSvcSupport ||
-                    experimentalFpMbStatsSupport ||
-                    experimentalEmulateHardwareSupport) "experimental")
-  ] ++ optionals (target != null) [
-    "--target=${target}"
-    (lib.optionalString stdenv.hostPlatform.isCygwin "--enable-static-msvcrt")
-  ] # Experimental features
-    ++ optional experimentalSpatialSvcSupport "--enable-spatial-svc"
-    ++ optional experimentalFpMbStatsSupport "--enable-fp-mb-stats"
-    ++ optional experimentalEmulateHardwareSupport "--enable-emulate-hardware";
-
-  nativeBuildInputs = [ perl yasm ];
-
-  buildInputs = [ ]
-    ++ optionals unitTestsSupport [ coreutils curl ];
-
-  NIX_LDFLAGS = [
-    "-lpthread" # fixes linker errors
-  ];
-
-  enableParallelBuilding = true;
-
-  postInstall = ''moveToOutput bin "$bin" '';
-
-  passthru.tests = {
-    inherit (gst_all_1) gst-plugins-good;
-    ffmpeg = ffmpeg.override { withVpx = true; };
-  };
-
-  meta = with lib; {
-    description = "WebM VP8/VP9 codec SDK";
-    homepage    = "https://www.webmproject.org/";
-    changelog   = "https://github.com/webmproject/libvpx/raw/v${version}/CHANGELOG";
-    license     = licenses.bsd3;
-    maintainers = with maintainers; [ codyopel ];
-    platforms   = platforms.all;
-  };
-}