homebrew-core/Formula/openimageio.rb
Nibbles 2bits 61013ef691 openimageio: Update to 1.0.3
Updates openimageio to version 1.0.3.
Fix compilation against glew.
Fix compilation against qt.
Fix building of iv.
Add all deps to maximize the filetypes oiio can open.
Add a dep on a new formula, field3d.
Add a dep on a new formula, opencolorio.
Build iv & the python bindings.
Run the official testsuite if the user options it.

This compiles without error using llvm-2335.9, clang-2.0.139,
and gcc-4.2.1.5666 from XCode-4.0.2 on 64bit Snow Leopard.
It compiles without error using llvm-2336.9 and clang-3.1.318
on Lion 10.7.3 using XCode-4.3.1.

As of 1.0.3 all tests pass make test.

EDIT: add an include for zlib.h on Lion.
EDIT: switches tarball to 0.10.4, compiles on Lion, same xfails
      in the testsuite (that only exists as a master on github).
EDIT: change the oiio-images url to a fixed commit tarball not
      the master trunk tarball.
EDIT: add def initialize to oiio-images subformula to trigger
      Homebrew's cache naming scheme, gets us oiioimages-1.0.0.tgz
EDIT: Change version to 0.10.5.  Remove patch for boost-mt naming
      because it works now.  Still needs zlib patch, been reported.
      Both previous test fails are fixed.  There is a new one.
EDIT: Inline the d variable.
EDIT: Remove HR, shorten option.
EDIT: Move inline patch to a DATA block.
EDIT: Change to version 0.10.6.
EDIT: Change to version 1.0.0.  Add devel block.
EDIT: Remove patch merged upstream.
EDIT: Fix python bindings to mimic vtk.rb.
EDIT: Add a dep on new formula OpenColorIO (ocio).
EDIT: Add a dep on webp.
EDIT: Remove illogical `which python-config` test.
EDIT: Add a fixed commit from branch RB-1.0 as the devel block url.
EDIT: Remove hard coded path to openjpeg.  Determine it instead.
EDIT: Upgrade to 1.0.2.  Shorten some comments.
EDIT: Remove code to find OpenJpeg.  It just works now.
EDIT: Add head url.  Remove Doxygen dep.  It already makes a pdf.
EDIT: Remove python option.  Just let it build that (10sec extra).
EDIT: Upgrade stable to 1.0.3, devel to 1.0.3a (bugfxes).
EDIT: Add back the oiio alias I clobbered.

Closes Homebrew/homebrew#8458.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-04-20 10:56:03 -05:00

146 lines
5.2 KiB
Ruby

require 'formula'
class J2kp4files < Formula
url 'http://pkgs.fedoraproject.org/repo/pkgs/openjpeg/j2kp4files_v1_5.zip/27780ed3254e6eb763ebd718a8ccc340/j2kp4files_v1_5.zip'
md5 '27780ed3254e6eb763ebd718a8ccc340'
end
class Tiffpic < Formula
url 'ftp://ftp.remotesensing.org/pub/libtiff/pics-3.8.0.tar.gz'
sha1 'f50e14335fd98f73c6a235d3ff4d83cf4767ab37'
end
class Bmpsuite < Formula
url 'http://entropymine.com/jason/bmpsuite/bmpsuite.zip'
sha1 '2e43ec4d8e6f628f71a554c327433914000db7ba'
version '1.0.0'
end
class Tgautils < Formula
url 'http://makseq.com/materials/lib/Code/FileFormats/BitMap/TARGA/TGAUTILS.ZIP'
sha1 '0902c51e7b00ae70a460250f60d6adc41c8095df'
version '1.0.0'
end
class OpenexrImages < Formula
url 'http://download.savannah.nongnu.org/releases/openexr/openexr-images-1.5.0.tar.gz'
sha1 '22bb1a3d37841a88647045353f732ceac652fd3f'
end
class OiioImages < Formula
url 'https://github.com/OpenImageIO/oiio-images/tarball/9bf43561f5'
sha1 '8f12a86098120fd10ceb294a0d3aa1c95a0d3f80'
version '1.0.0'
def initialize; super "oiioimages"; end
end
class Openimageio < Formula
homepage 'http://openimageio.org'
url 'https://github.com/OpenImageIO/oiio/tarball/Release-1.0.3'
sha1 '69919017a9fbc716d593eb508d04ea46626e96ed'
head 'https://github.com/OpenImageIO/oiio.git'
depends_on 'cmake' => :build
depends_on 'pkg-config' => :build
depends_on 'opencolorio'
depends_on 'ilmbase'
depends_on 'openexr'
depends_on 'boost'
depends_on 'libtiff'
depends_on 'jpeg'
depends_on 'openjpeg'
depends_on 'cfitsio'
depends_on 'hdf5'
depends_on 'field3d'
depends_on 'webp'
depends_on 'glew'
depends_on 'qt'
def options
[['--with-tests', 'Dowload 95MB of test images and verify Oiio (~2 min).']]
end
def install
# Oiio is designed to have its testsuite images extracted one directory
# above the source. That's not a safe place for HB. Do the opposite,
# and move the entire source down into a subdirectory if --with-tests.
if ARGV.include? '--with-tests' then
(buildpath+'localpub').install Dir['*']
chdir 'localpub'
end
ENV.append 'MY_CMAKE_FLAGS', "-Wno-dev" # stops a warning.
args = ["USE_TBB=1", "EMBEDPLUGINS=1"]
python_prefix = `python-config --prefix`.strip
# Python is actually a library. The libpythonX.Y.dylib points to this lib, too.
if File.exist? "#{python_prefix}/Python"
# Python was compiled with --framework:
ENV.append 'MY_CMAKE_FLAGS', "-DPYTHON_LIBRARY='#{python_prefix}/Python'"
ENV.append 'MY_CMAKE_FLAGS', "-DPYTHON_INCLUDE_DIR='#{python_prefix}/Headers'"
else
python_version = `python-config --libs`.match('-lpython(\d+\.\d+)').captures.at(0)
python_lib = "#{python_prefix}/lib/libpython#{python_version}"
ENV.append 'MY_CMAKE_FLAGS', "-DPYTHON_INCLUDE_DIR='#{python_prefix}/include/python#{python_version}'"
if File.exists? "#{python_lib}.a"
ENV.append 'MY_CMAKE_FLAGS', "-DPYTHON_LIBRARY='#{python_lib}.a'"
else
ENV.append 'MY_CMAKE_FLAGS', "-DPYTHON_LIBRARY='#{python_lib}.dylib'"
end
end
# Download standardized test images if the user throws --with-tests.
# 90% of the images are in tarballs, so they are cached normally.
# The webp and fits images are loose. Curl them each install.
if ARGV.include? '--with-tests' then
d = buildpath
mkdir d+'webp-images' do
curl "http://www.gstatic.com/webp/gallery/[1-5].webp", "-O"
end
mkdir d+'fits-images'
mkdir d+'fits-images/pg93' do
curl "http://www.cv.nrao.edu/fits/data/tests/pg93/tst000[1-3].fits", "-O"
curl "http://www.cv.nrao.edu/fits/data/tests/pg93/tst000[5-9].fits", "-O"
curl "http://www.cv.nrao.edu/fits/data/tests/pg93/tst0013.fits", "-O"
end
mkdir d+'fits-images/ftt4b' do
curl "http://www.cv.nrao.edu/fits/data/tests/ftt4b/file00[1-3].fits", "-O"
curl "http://www.cv.nrao.edu/fits/data/tests/ftt4b/file0{09,12}.fits", "-O"
end
J2kp4files.new.brew { (d+'j2kp4files_v1_5').install Dir['J2KP4files/*'] }
Tiffpic.new.brew { (d+'libtiffpic').install Dir['*'] }
Bmpsuite.new.brew { (d+'bmpsuite').install Dir['*'] }
Tgautils.new.brew { (d+'TGAUTILS').install Dir['*'] }
OpenexrImages.new.brew { (d+'openexr-images-1.5.0').install Dir['*'] }
OiioImages.new.brew { (d+'oiio-images').install Dir['*'] }
end
# make is a shell wrapper for cmake crafted by the devs (who have Lion).
system "make", *args
system "make test" if ARGV.include? '--with-tests'
# There is no working make install in 1.0.2, devel or HEAD.
Dir.chdir 'dist/macosx' do
(lib + which_python ).install 'lib/python/site-packages'
prefix.install %w[ bin include ]
lib.install Dir[ 'lib/lib*' ]
doc.install 'share/doc/openimageio/openimageio.pdf'
prefix.install Dir['share/doc/openimageio/*']
end
end
def caveats; <<-EOS.undent
If OpenImageIO is brewed using non-homebrew Python, then you need to amend
your PYTHONPATH like so:
export PYTHONPATH=#{HOMEBREW_PREFIX}/lib/#{which_python}/site-packages:$PYTHONPATH
EOS
end
def which_python
"python" + `python -c 'import sys;print(sys.version[:3])'`.strip
end
end