diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libyuv')
3 files changed, 72 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libyuv/default.nix b/nixpkgs/pkgs/development/libraries/libyuv/default.nix new file mode 100644 index 000000000000..77e32c09de8f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libyuv/default.nix @@ -0,0 +1,48 @@ +{ lib +, stdenv +, fetchgit +, cmake +, libjpeg +}: + +stdenv.mkDerivation rec { + pname = "libyuv"; + version = "1787"; # Defined in: include/libyuv/version.h + + src = fetchgit { + url = "https://chromium.googlesource.com/libyuv/libyuv.git"; + rev = "eb6e7bb63738e29efd82ea3cf2a115238a89fa51"; # refs/heads/stable + sha256 = "sha256-DtRYoaAXb9ZD2OLiKbzKzH5vzuu+Lzu4eHaDgPB9hjU="; + }; + + nativeBuildInputs = [ + cmake + ]; + + # NEON does not work on aarch64, we disable it + cmakeFlags = lib.optionals stdenv.isAarch64 ["-DCMAKE_CXX_FLAGS=-DLIBYUV_DISABLE_NEON"]; + + buildInputs = [ libjpeg ]; + + patches = [ + ./link-library-against-libjpeg.patch + ]; + + postPatch = '' + mkdir -p $out/lib/pkgconfig + cp ${./yuv.pc} $out/lib/pkgconfig/libyuv.pc + + substituteInPlace $out/lib/pkgconfig/libyuv.pc \ + --replace "@PREFIX@" "$out" \ + --replace "@VERSION@" "$version" + ''; + + meta = with lib; { + homepage = "https://chromium.googlesource.com/libyuv/libyuv"; + description = "Open source project that includes YUV scaling and conversion functionality"; + mainProgram = "yuvconvert"; + platforms = platforms.unix; + maintainers = with maintainers; [ leixb ]; + license = licenses.bsd3; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libyuv/link-library-against-libjpeg.patch b/nixpkgs/pkgs/development/libraries/libyuv/link-library-against-libjpeg.patch new file mode 100644 index 000000000000..d0f3d2968462 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libyuv/link-library-against-libjpeg.patch @@ -0,0 +1,11 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 636531ee..af1b0e4e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,6 +39,7 @@ INCLUDE ( FindJPEG ) + if (JPEG_FOUND) + include_directories( ${JPEG_INCLUDE_DIR} ) + target_link_libraries( yuvconvert ${JPEG_LIBRARY} ) ++ target_link_libraries( ${ly_lib_shared} ${JPEG_LIBRARY} ) + add_definitions( -DHAVE_JPEG ) + endif() diff --git a/nixpkgs/pkgs/development/libraries/libyuv/yuv.pc b/nixpkgs/pkgs/development/libraries/libyuv/yuv.pc new file mode 100644 index 000000000000..ecce62ed0efd --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libyuv/yuv.pc @@ -0,0 +1,13 @@ +prefix=@PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: yuv +Description: WebM Project Yuv codec implementation +Version: @VERSION@ +Requires: +Conflicts: +Libs: -L${libdir} -lyuv -lm +Libs.private: -lm -lpthread +Cflags: -I${includedir} |