libyuv
需要があるとは思えない、libyuvの自家製Homebrewスクリプトです。私はlibvpxに組み込むつもりですが、他に用途があるのでしょうか?
コピペして、"libyuv.rb"という名前で保存してお使い下さい。
The following script installs libyuv on OSX with Homebrew.
class Libyuv < Formula desc "YUV scaling and conversion functionality" homepage "https://bugs.chromium.org/p/libyuv/adminIntro" url "https://chromium.googlesource.com/libyuv/libyuv.git", :revision => "311add63c2e73cf50cc0e89cf94ebf3fc5632560" head "https://chromium.googlesource.com/libyuv/libyuv.git" version "0.0.0" depends_on "cmake" => :build depends_on "jpeg-turbo" def install ENV.deparallelize ENV["LDDLFLAGS"] = "-L/usr/lib -L#{Formula["jpeg-turbo"].opt_lib}" ENV.append "LDFLAGS","-ljpeg" ENV.append "CPPFLAGS","-I#{Formula["jpeg-turbo"].opt_include}" args = std_cmake_args args << "-DJPEG_LIBRARY=#{Formula["jpeg-turbo"].opt_lib}/libjpeg.dylib" system "cmake", ".", *args system "make", "install" end test do system "#{Formula["libyuv"].opt_bin}/yuvconvert", "--help" end end
libyuvのcmakeが勝手にlibjpegのライブラリを見つけて、mpegのデコーダーに利用しようとするもリンクエラーとなるため、探せなくしてあります。
基本、"version 0.0.0" とかいう不安定版に対するスクリプトはHomebrewには採用されません。
追記
上記のlibjpegの件、libyuvのサイトに「libjpegとのリンクが上手く行かない」という旨のBug reportを発見。それに対して「libturbojpeg を使用するように」との返答がなされています。
$ nm -o /usr/local/Cellar/jpeg-turbo/1.5.2/lib/libturbojpeg.dylib | grep "_jpeg_CreateDecompress" /usr/local/Cellar/jpeg-turbo/1.5.2/lib/libturbojpeg.dylib: 00000000000113d0 T _jpeg_CreateDecompress
なるほど、リンクできなかったオブジェクトは確かにlibturbojpegの中にあります。
jpeg-turboへのリンクに成功しました。
$ otool -L /usr/local/Cellar/libyuv/0.0.0/lib/libyuv.dylib /usr/local/Cellar/libyuv/0.0.0/lib/libyuv.dylib: /usr/local/opt/libyuv/lib/libyuv.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/opt/jpeg-turbo/lib/libjpeg.8.dylib (compatibility version 10.0.0, current version 10.2.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)